1.跟前两关一样使用空格尝试隔开参数,结果失败
查看后端源码后才知道是对拼接进行了改写,提交的参数无法跳出src
2. 27个英文字母都不认的齐的我去翻译了下主界面的单词意思
说什么未定义不兼容,对于 .swf文件不熟悉的我去查了下这种格式是怎么回事
swf文件百度百科信息,反正就是看的不太明白
3.然后得知这玩意是可以反编译的,于是从网上下载了相关的反编译工具 JPEXS,从服务器找到 xsf03.swf这个文件,直接拖入反编译程序中。
然后在文件的脚本那里找到了出错的sIFR,点击打开后发现了我们页面显示的报错信息,是赋值给了 "VERSION_WARNING"这个变量,中文意思就是“版本警告”,难不成说什么不兼容是版本问题?
使用查找功能查找一下 VERSION_WARNING 变量在哪应用了,
这里先把VERSION.WARNING以%s打散成数组,然后再以version的方式组合成字符串。搜索了一圈,并没有version,哎,对flash太不熟悉了,只通过p-code发现了这样的一个东西
4.回到我们的level 19,url中同样是get了两个参数,并且拼接到了 src里面
在新标签页中打开,这url怎么有点眼熟,像是我们之前一直做的php传进参数
难不成swf文件也能传入参数?带着这个疑问我去百度了下,还真的可以
这一下就有思路了,前面的提示信息不是说什么未定义不兼容吗,然后逆向追踪到了输出信息version,难不成是version没有定义?那我们就给它定义一个version
xsf03.swf?version=1
提交后发现提示内容发生了改变,“undefined”变成了“1”,也就是我们定义的version
5.回到 level19提交也一样
那既然有回显信息,我们可以构造一个标签看能不能插进去
可以看到有了效果
点击后可以触发JavaScript命令
至于这种xss的具体原理我也不懂,感兴趣的同学可以自行去翻阅资料
[…] xss-labs level 19 […]
1
1