题目:
提交说明:提交前14个字符即可过关
writeup:
- 点击进去后
_点击之后怎么没反应呢?说好的弹窗呢?__
是一个链接,点击后确实没啥反应。。可能源代码中有提示<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script> function alert(a){ return false; } document.write=function(){ return false; } function prompt(a){ return false; } var a=function (){ var b=function(p,a,c,k,e,r){e=function(c).....//省略了一部分代码 var d=eval(b); alert("key is first 14 chars"+d); } </script> </head> <body> <a href="javascript:a();">_点击之后怎么没反应呢?说好的弹窗呢?__</a> </body> </html>
代码审计。发现alert(),prompt()和write()函数都被新函数覆盖掉了。 - 可以发现key在a()函数中,只要把a()的代码复制下来,然后换一个页面打开web控制台粘贴进去执行就可以得到key
var a=function (){ var b=function(p,a,c,k,e,r){e=function(c){return(c<a?'':.....//省略了一部分代码
alert("key is first 14 chars"+d.substr(0,14));//由于只要前14个,这里只取d的前14 }()var d=eval(b);
说一下,我改了一下代码,代码中注释上有。为什么要换一个页面是因为在当前页面,那三个函数已经被覆盖了。