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)
与服务器交互,但是交互的数据一般不会被存放在数据库中,一次性,所见即所得,一般出现在查询类页面上等。
- 存储型:(持久型 xss)
交互的数据会被存放在数据库中,永久性存储,一般出现在留言板,注册等页面。
3.DOM 型:
不与后台服务器产生数据交互,是一种通过 DOM 操作前端代码输出的时候产生的漏洞,大部分属于反射型,少部分属于存储型。
xss 可能存在的漏洞:
有用户输入输出的地方,用户交互等一些地方,都可能存在 xss 漏洞。
PHP 转义函数:
htmlspecialchars($String, $quote_style, $charset)
$string :转换对象字符串
$quote_style:转换方法。
转换前 转换后 ENT_NOQUOTES ENT_COMPAT ENT_QUOTES
< <; 支持 支持 支持
>; 支持 支持 支持
& &; 支持 支持 支持
" "; 不支持 支持 支持
’ '; 不支持 不支持 支持
一般使用最后一种即可: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