level 19 flash xss
查看前端代码,发现访问swf
的时候在传参
接下来直接访问这个链接。
这里可以看到flash
里面提示sifr.js
是没有定义的,这不仅仅是个图片。。。
需要对flash
进行反编译查看源码,使用的是jpexs,没想到有一天我也会干这样的事了,羞耻啊。。。
通过sifr
找到了对应的脚本位置,比较长,就一点点说明过程了。
在此脚本中找到了flash
显示的信息,关键在%s
这里。
接着去定位%s
,
这里先把VERSION.WARNING
以%s
打散成数组,然后再以version
的方式组合成字符串。搜索了一圈,并没有version
,哎,对flash
太不熟悉了,只通过p-code
发现了这样的一个东西。。。
感觉是通过url
里面获取变量的,于是构造了一个尝试arg01=version&arg02=123
,原因是php
里面是这样传参的,必须是两个值。
<?php
ini_set("display_errors", 0);
echo '<embed src="xsf03.swf?'.htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"]).'" width=100% heigth=100%>';
?>
结果和预期一样,123
出现了。
尝试了大量xss
语句发现,只有<a>
这种可以,如果是img
或者svg
后面都会不完整,所以就构造了语句arg01=version&arg02=<a href="javascript:alert(/xss/)">xss</a>
点击xss
就可以进入下一关了。
花了3
小时,第一次干这种事,刺激、蛋疼、掉头发、成就感,哈哈。不过中间还是有不少函数没搞得太懂,暂时就不深究了,慢慢积累,改天回来看就能看懂,不急。。。