XSS漏洞解析(二)


上篇我們講了XSS的一些相關的內容,這篇我們就直接上代碼demo解決實際問題吧。

主要的問題是xssfilter的編寫,我們直接去網上找一下框架,一般有js,php,java等語言都有相關的XSS的相關支持框架,小編自己就用擅長的java來解決.

 

一、首先我下載了lucy-xss這個jar

 

二、demo例子如下:

import com.nhncorp.lucy.security.xss.XssFilter;
import com.nhncorp.lucy.security.xss.XssPreventer;
import com.nhncorp.lucy.security.xss.XssSaxFilter;

/**
 * XSS漏洞測試
 * @author mingge
 *
 */
public class TestXSS {
    
    public static void main(String[] args) {
        
        String dirty22= "\"><script>alert('xss');</script>";// XSS漏洞
        String clean22 = XssPreventer.escape(dirty22);// 被轉碼后的數據
        System.out.println(clean22);
        System.out.println(XssPreventer.unescape(clean22));
        XssSaxFilter filter22 = XssSaxFilter.getInstance("lucy-xss-superset-sax.xml");
        String clean1 = "<TABLE class=\"NHN_Layout_Main\" style=\"TABLE-LAYOUT: fixed\" cellSpacing=\"0\" cellPadding=\"0\" width=\"743\">"
                + "</TABLE>" + "<SPAN style=\"COLOR: #66cc99\"></SPAN>";
        String filtered = filter22.doFilter(clean1);
        System.out.println(clean1);
        System.out.println(filtered);
        
        XssFilter filter = XssFilter.getInstance("lucy-xss-superset.xml");
        String dirty = "<img src=\"<img src=1\\ onerror=alert(1234)>\" onerror=\"alert('XSS')\">";
        String expected = "<img src=\"\"><!-- Not Allowed Attribute Filtered ( onerror=alert(1234)) --><img src=1\\>\" onerror=\"alert('XSS')\"&gt;";
        String clean = filter.doFilter(dirty);
        System.out.println(expected);
        System.out.println(clean);

        dirty = "<img src='<img src=1\\ onerror=alert(1234)>\" onerror=\"alert('XSS')\">";
        expected = "<img src=''><!-- Not Allowed Attribute Filtered ( onerror=alert(1234)) --><img src=1\\>\" onerror=\"alert('XSS')\"&gt;";
        clean = filter.doFilter(dirty);
        System.out.println(expected);
        System.out.println(clean);
    }
}

這個demo很容易轉碼,是復合我們需求的。

 

這個框架的web配置如下:

<filter>
    <filter-name>xssEscapeServletFilter</filter-name>
    <filter-class>com.navercorp.lucy.security.xss.servletfilter.XssEscapeServletFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>xssEscapeServletFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

是不是很簡單.

 

如果你想看源碼,請參考:https://github.com/naver/lucy-xss-filter

 

day day up。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM