这次的XSS不在username上,而是在PHP_SELF这个参数上。
$_SERVER[’PHP_SELF’]在开发的时候常会用到,一般用来引用当前网页地址,并且它是系统自动生成的全局变量。
在源码中:
echo sprintf('', $_SERVER['PHP_SELF']).PHP_EOL;
这句话的意思是,将这个表格提交给“自身”(当前php文件)。
而在这里,对于$_SERVER['PHP_SELF']
没做过滤。使得我们可以通过人为闭合form语句,然后再构造XSS来达成目的。
">alert(1);
上面的就是我们使用的Payload。
将其添加在网址后面:
http://www.wechall.net/challenge/yourself_php/index.php/">alert(1);
就可以了。
可能需要URLencode一下。
文章评论