<p id="main-toc"><strong>目录</strong></p>
<p id="-toc" style="margin-left:0px;"></p>
<p id="%E5%89%8D%E8%A8%80%EF%BC%9A-toc" style="margin-left:0px;">前言:</p>
<p id="%E6%80%9D%E8%B7%AF%E6%80%BB%E7%BB%93-toc" style="margin-left:0px;">思路总结</p>
<p id="%E4%B8%80%E3%80%81%E6%97%A0%E4%BB%BB%E4%BD%95%E9%AA%8C%E8%AF%81%E6%8E%AA%E6%96%BD-toc" style="margin-left:40px;">一、无任何验证措施</p>
<p id="%E4%BA%8C%E3%80%81%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%AA%8C%E8%AF%81-toc" style="margin-left:40px;">二、客户端验证</p>
<p id="%E4%B8%89%E3%80%81User-Agent%E9%AA%8C%E8%AF%81-toc" style="margin-left:40px;">三、User-Agent验证</p>
<p id="%E5%9B%9B%E3%80%81Cookie%E9%AA%8C%E8%AF%81-toc" style="margin-left:40px;">四、Cookie验证</p>
<p id="%E4%BA%94%E3%80%81IP%E9%AA%8C%E8%AF%81-toc" style="margin-left:40px;">五、IP验证</p>
<p id="%E5%85%AD%E4%B8%B6%E5%BD%93%E6%8A%95%E7%A5%A8%E9%87%8F%E5%A4%A7%E4%BA%8E%E9%98%85%E8%AF%BB%E9%87%8F%E6%97%B6%E5%B0%B1%E6%98%AF%E5%88%B7%E7%A5%A8%E8%A1%8C%E4%B8%BA-toc" style="margin-left:40px;">六丶当投票量大于阅读量时就是刷票行为</p>
<p id="%E4%B8%83%E3%80%81%E7%BB%84%E5%90%88%E6%8B%B31%EF%BC%9ACsrf%E5%88%B7%E7%A5%A8-toc" style="margin-left:40px;">七、组合拳1:Csrf刷票</p>
<p id="%E5%85%AB%E3%80%81%E7%BB%84%E5%90%88%E6%8B%B32%EF%BC%9AXss%E6%89%93Cookie%E5%88%B7%E7%A5%A8-toc" style="margin-left:40px;">八、组合拳2:Xss打Cookie刷票</p>
<p id="%E4%B9%9D%E3%80%81%E8%A7%82%E5%AF%9F%E6%95%B0%E6%8D%AE%E5%8C%85%E8%AF%B7%E6%B1%82%EF%BC%88%E9%AA%8C%E8%AF%81%E5%8F%82%E6%95%B0%E7%AD%89%E7%AD%89%EF%BC%89-toc" style="margin-left:40px;">九、观察数据包请求(验证参数等等)</p>
<p id="%E5%8D%81%E3%80%81%E5%B9%B6%E5%8F%91%E7%BA%BF%E7%A8%8B%EF%BC%88%E6%9D%A1%E4%BB%B6%E7%AB%9E%E4%BA%89%EF%BC%89-toc" style="margin-left:40px;">十、并发线程(条件竞争)</p>
<p id="%E5%8D%81%E4%B8%80%E3%80%81%E5%90%AC%E8%AF%B4%E7%82%B9%E5%87%BB%E6%8A%95%E7%A5%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E9%AA%8C%E8%AF%81%E7%A0%81%EF%BC%9F-toc" style="margin-left:40px;">十一、听说点击投票时出现验证码?</p>
<p id="(%E4%B8%80)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E4%BD%BF%E7%94%A8%E5%90%8E%E4%B8%8D%E4%BC%9A%E9%94%80%E6%AF%81-toc" style="margin-left:80px;">(一)、验证码使用后不会销毁</p>
<p id="(%E4%BA%8C)%E3%80%81%E7%94%9F%E6%88%90%E9%AA%8C%E8%AF%81%E7%A0%81%E5%AD%97%E7%AC%A6%E9%9B%86%E5%8F%AF%E6%8E%A7-toc" style="margin-left:80px;">(二)、生成验证码字符集可控</p>
<p id="(%E4%B8%89)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E5%AD%98%E6%94%BE%E5%9C%A8%E6%9A%B4%E9%9C%B2%E4%BD%8D%E7%BD%AE-toc" style="margin-left:80px;">(三)、验证码存放在暴露位置</p>
<p id="(%E5%9B%9B)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E4%B8%BA%E7%A9%BA%EF%BC%8C%E6%88%968888%2C0000%E7%AD%89%E5%8F%AF%E7%BB%95%E8%BF%87-toc" style="margin-left:80px;">(四)、验证码为空,或8888,0000等可绕过</p>
<p id="(%E4%BA%94)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E5%B0%BA%E5%AF%B8%E5%8F%AF%E6%8E%A7-toc" style="margin-left:80px;">(五)、验证码尺寸可控</p>
<p id="(%E5%85%AD)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E8%BF%87%E4%BA%8E%E7%AE%80%E5%8D%95%2C%E5%8F%AF%E8%BD%BB%E6%98%93%E6%9C%BA%E5%99%A8%E8%AF%86%E5%88%AB-toc" style="margin-left:80px;">(六)、验证码过于简单,可轻易机器识别</p>
<p id="(%E4%B8%83)%E3%80%81%E4%BC%9A%E8%AF%9D%E7%BB%95%E8%BF%87-toc" style="margin-left:80px;">(七)、会话绕过</p>
<p id="%E5%8D%81%E4%BA%8C%E3%80%81%E5%90%AC%E8%AF%B4%E8%BF%98%E6%9C%89%E6%89%8B%E6%9C%BA%E5%8F%B7%E9%AA%8C%E8%AF%81%E7%A0%81%E6%8A%95%E7%A5%A8%EF%BC%9F-toc" style="margin-left:40px;">十二、听说还有手机号验证码投票?</p>
<p id="%E6%A1%88%E4%BE%8B1%EF%BC%9A%E8%AE%B0%E4%B8%80%E6%AC%A1**%E5%88%B7%E7%A5%A8-toc" style="margin-left:0px;">案例1:记一次**刷票</p>
<p id="%E6%A1%88%E4%BE%8B2%EF%BC%9A%E8%AE%B0%E4%B8%80%E6%AC%A1%E4%B8%BA%E5%AD%A6%E6%A0%A1%E6%8E%92%E8%A1%8C%E5%88%B7%E7%A5%A8-toc" style="margin-left:0px;">案例2:记一次为学校排行刷票</p>
<p id="%E7%BB%93%E6%9D%9F%E8%AF%AD-toc" style="margin-left:0px;">结束语</p>
<hr id="hr-toc" />
<p></p>
<h2 id="%E5%89%8D%E8%A8%80%EF%BC%9A">前言:</h2>
<p>说起刷票,可能大家都经常听到这个词,但是网上这种相关的漏洞文章却少之又少,本文将总结个人案例以及生活中碰到的情况汇总成本篇文章,刷票的行为通常是利用逻辑漏洞来实现的,比如通过伪造投票请求、绕过验证等手段来增加投票数量,从而拿到名次奖励,文章仅发表思路,这些思路不仅限于刷票。</p>
<h2 id="%E6%80%9D%E8%B7%AF%E6%80%BB%E7%BB%93">思路总结</h2>
<h3 id="%E4%B8%80%E3%80%81%E6%97%A0%E4%BB%BB%E4%BD%95%E9%AA%8C%E8%AF%81%E6%8E%AA%E6%96%BD">一、无任何验证措施</h3>
<p>程序开发问题,单一投票功能,用户可点击直接进行投票,且无任何限制,没有上限<br /> 利用pyton写个简单的exp:</p>
- import requests
- url='http://www.domain.com/comment.php?aid=123&who=1&t=1385710179528'
- while 1:
- requests.get(url)
复制代码
<h3 id="%E4%BA%8C%E3%80%81%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%AA%8C%E8%AF%81">二、客户端验证</h3>
<p>一切来自客户端的数据都是不可信的,因为这些数据全部都是在前端<br /> 1) 弹框提示,仅仅是弹框,并没有阻断后面代码执行,刷新页面继续投票,票数照常增加</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/ad30777e5adde1fdc2cd2b9e1ba61bce.png" />
</p>
<p><br /> 2) 排除第一种情况,换个浏览器即可重新投票,或者清理下缓存即可重新投票</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/8b0f7b917fa7811c6a459e918bd4040f.png" />
</p>
<p><br /> 3) 有时候你可能也会碰到投票后按钮变为灰色,只需删除前端控制代码即可,或者直接往服务端进行发包,因为是客户端限制</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/281d89e16f2a3cc1fe7a7efb8b6f2ebb.png" />
</p>
<h3 id="%E4%B8%89%E3%80%81User-Agent%E9%AA%8C%E8%AF%81">三、User-Agent验证</h3>
<p>有的会用user-agent进行验证,毕竟打开页面,他也许就判断你的浏览器,觉得你只经常用这个浏览器,修改user-agent即可绕过</p>
- Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A5297c Safari/602.1
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52
- Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- Mozilla/5.0 (Linux; Android 10; V1914A Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045410 Mobile Safari/537.36
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
- Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
- Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
- Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
- Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
- Mozilla/5.0 (compatible; SeznamBot/3.2; +http://napoveda.seznam.cz/en/seznambot-intro/)
- Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
- Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 QIHU 360SE; 360Spider
- Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
- Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
- Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0
- Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
- Mozilla/5.0 Dalvik/2 ( Linux; U; NEM-AL10 Build/HONORNEM-AL10;Youku;7.1.4;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Safari/537.36 (Baidu; P1 6.0) iPhone/7.1 Android/8.0
- Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html\x09
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.55
- Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 SP-engine/2.25.0 main%2F1.0 baiduboxapp/12.4.0.13 (Baidu; P2 14.0.1) NABar/1.0
- Mozilla/5.0 (Linux; Android 10; CDY-TN00 Build/HUAWEICDY-TN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36
- Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D)
- Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
- Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36; 360Spider
- Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/012.002; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4(KHTML, like Gecko) NokiaBrowser/7.3.0Mobile Safari/533.4 3gpp-gba
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36
- Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
- Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.27 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/601.1.27
- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
- Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363
- Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; https://zhanzhang.toutiao.com/)
- Mozilla/5.0 (Linux; Android 9; ANE-AL00 Build/HUAWEIANE-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69
- Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36
- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE
- Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
- Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/75.0.3770.90 Chrome/75.0.3770.90 Safari/537.36
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15
复制代码
<h3 id="%E5%9B%9B%E3%80%81Cookie%E9%AA%8C%E8%AF%81">四、Cookie验证</h3>
<p>有时候会用绑定cookie来进行验证,一个cookie为一个用户,修改cookie即可绕过限制,有时候并不一定需要用户的cookie,可以随意修改两个字符尝试,也许会有意想不到的效果</p>
<h3 id="%E4%BA%94%E3%80%81IP%E9%AA%8C%E8%AF%81">五、IP验证</h3>
<p>有时候系统会根据ip来进行判断,一个ip投票一次,可尝试修改X-Forwarded-For,Clien-IP,可进行绕过</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/8243bd23110dfa3710dd37d93d17613b.png" />
</p>
<p><br /> 排除上面情况,还是使用ip进行验证,可使用ip代理池进行绕过</p>
- import requests
- from random import choice
- # 代理池列表
- proxy_list = ['http://ip1:port1', 'http://ip2:port2', 'http://ip3:port3']
- # 随机选择一个代理
- proxy = choice(proxy_list)
- # 构造请求头
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
- # 发送请求
- try:
- response = requests.get('http://www.example.com', headers=headers, proxies={'http': proxy})
- print(response.text)
- except:
- print('请求失败')
复制代码
<p>tips:路由器每次重启ip不一样,手机开飞行模式也一样,代理ip也可以</p>
<h3 id="%E5%85%AD%E4%B8%B6%E5%BD%93%E6%8A%95%E7%A5%A8%E9%87%8F%E5%A4%A7%E4%BA%8E%E9%98%85%E8%AF%BB%E9%87%8F%E6%97%B6%E5%B0%B1%E6%98%AF%E5%88%B7%E7%A5%A8%E8%A1%8C%E4%B8%BA">六丶当投票量大于阅读量时就是刷票行为</h3>
<p>测试刷票漏洞时可以观察下阅读量,如果票数大于阅读量肯定就是刷票,假设根据前面的姿势刷票投到了第二,但某产商说我们统计结果会有人工判断,如果发现会进行漏洞降级,此时需要你的投票数量一定要符合阅读范围之内,如果绕过了限制进行刷票时,持续了一段时间失败了,请看浏览量,也许在此处做了判断</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/22855e9a2da74d51d553fa296949fe9a.png" />
</p>
<h3 id="%E4%B8%83%E3%80%81%E7%BB%84%E5%90%88%E6%8B%B31%EF%BC%9ACsrf%E5%88%B7%E7%A5%A8">七、组合拳1:Csrf刷票</h3>
<p>Csrf简介:攻击者利用用户已经登录的身份,在用户不知情的情况下向服务器发送恶意请求,从而实现攻击目的。攻击者通常会在第三方网站上植入恶意代码,当用户访问该网站时,代码就会自动向目标网站发送伪造的请求,从而欺骗服务器执行非法操作</p>
<p>Burp的Engagement tools功能可直接生成CSRF_PoC</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/c5a6e1bf981e314c95d134db80f4480c.png" />
</p>
<h3 id="%E5%85%AB%E3%80%81%E7%BB%84%E5%90%88%E6%8B%B32%EF%BC%9AXss%E6%89%93Cookie%E5%88%B7%E7%A5%A8">八、组合拳2:Xss打Cookie刷票</h3>
<p>如果站点存在xss,储存Xss就不用说了,配合Csrf直接自动化刷票了,即使是反射Xss也可以进行利用,比如"看这个人的票数好高,大家看看他是不是刷票:http://domain.com" 同时网址缩短后做上跳转收集用户的Cookie,接着遍历Cookie批量发包即可实现刷票,如有Csrf也可以利用Csrf实现自动化刷票,相对没有储存Xss利用方便</p>
<h3 id="%E4%B9%9D%E3%80%81%E8%A7%82%E5%AF%9F%E6%95%B0%E6%8D%AE%E5%8C%85%E8%AF%B7%E6%B1%82%EF%BC%88%E9%AA%8C%E8%AF%81%E5%8F%82%E6%95%B0%E7%AD%89%E7%AD%89%EF%BC%89">九、观察数据包请求(验证参数等等)</h3>
<p>有的候系统在点击投票时会生成一个验证值,可能在Get,Post,Cookie,修改他们给的判断值即可实现刷票</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/d9b54ee1e5f178ec1e538ba1fda1400b.png" />
</p>
<h3 id="%E5%8D%81%E3%80%81%E5%B9%B6%E5%8F%91%E7%BA%BF%E7%A8%8B%EF%BC%88%E6%9D%A1%E4%BB%B6%E7%AB%9E%E4%BA%89%EF%BC%89">十、并发线程(条件竞争)</h3>
<p>利用前面方法我们无法进行刷票了,都被限制了,这时我们可以利用并发线程,简单来说就是让服务器处理跟不上请求速度,线程还没有达到需要验证的地方已经发出去了很多请求,用Fiddler批量发包,导致服务器没有跟上处理,导致刷票,出现问题的几率比较高</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/cb03526239d6cde794e905a3beb07188.png" />
</p>
<h3 id="%E5%8D%81%E4%B8%80%E3%80%81%E5%90%AC%E8%AF%B4%E7%82%B9%E5%87%BB%E6%8A%95%E7%A5%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E9%AA%8C%E8%AF%81%E7%A0%81%EF%BC%9F">十一、听说点击投票时出现验证码?</h3>
<h4 id="(%E4%B8%80)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E4%BD%BF%E7%94%A8%E5%90%8E%E4%B8%8D%E4%BC%9A%E9%94%80%E6%AF%81">(一)、验证码使用后不会销毁</h4>
<p>验证码可重复使用,不提示验证码错误</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/81b01c4d6f298ec7e6e623e59e39d5fe.png" />
</p>
<h4 id="(%E4%BA%8C)%E3%80%81%E7%94%9F%E6%88%90%E9%AA%8C%E8%AF%81%E7%A0%81%E5%AD%97%E7%AC%A6%E9%9B%86%E5%8F%AF%E6%8E%A7">(二)、生成验证码字符集可控</h4>
<p>验证码可控,可自行选择验证码(案例:ThinkCMF 1.X-2.X)</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/db963136fd629225a43a6c644dd6e615.png" />
</p>
<h4 id="(%E4%B8%89)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E5%AD%98%E6%94%BE%E5%9C%A8%E6%9A%B4%E9%9C%B2%E4%BD%8D%E7%BD%AE">(三)、验证码存放在暴露位置</h4>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/f256ceeac0a40644c25b351d246aa56b.png" />
</p>
<h4 id="(%E5%9B%9B)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E4%B8%BA%E7%A9%BA%EF%BC%8C%E6%88%968888%2C0000%E7%AD%89%E5%8F%AF%E7%BB%95%E8%BF%87">(四)、验证码为空,或8888,0000等可绕过</h4>
<p>验证码为空,是因为程序逻辑错误,验证码验证一次之后本该退出此次验证码,生成新的,由于没有生成新的继续验证密码是否正确,8888,0000等为开发程序时设置的万能密码,方便测试,有时候会忘记删除</p>
- 1111
- 2222
- 3333
- 4444
- 5555
- 6666
- 7777
- 8888
- 9999
复制代码
<h4 id="(%E4%BA%94)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E5%B0%BA%E5%AF%B8%E5%8F%AF%E6%8E%A7">(五)、验证码尺寸可控</h4>
<p>我们的主题是绕过验证码去投票,那么可以尺寸改为很小,仅有一个数字或者字母,这样很好去识别,从而进行绕过刷票</p>
<p>点缀一下其他的知识:如1.png?width=100 修改width控制大小,首先可造成Ddos<br /> 该问题被人们广为关注源于PHPcms早期版本的后台登录验证码尺寸可控,可用于DDoS</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/0e4a8cf3ce789e9aec9fd9fa259b2f24.png" />
</p>
<h4 id="(%E5%85%AD)%E3%80%81%E9%AA%8C%E8%AF%81%E7%A0%81%E8%BF%87%E4%BA%8E%E7%AE%80%E5%8D%95%2C%E5%8F%AF%E8%BD%BB%E6%98%93%E6%9C%BA%E5%99%A8%E8%AF%86%E5%88%AB">(六)、验证码过于简单,可轻易机器识别</h4>
<p>验证码过于简单,可轻易机器识别,同样可实现绕过刷票</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/c9f657f6e2f52298a443b5f02955ae49.png" />
</p>
<p></p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/6898133bb6e5b822c81ea8380edf0be0.png" />
</p>
<h4 id="(%E4%B8%83)%E3%80%81%E4%BC%9A%E8%AF%9D%E7%BB%95%E8%BF%87">(七)、会话绕过</h4>
<p>当投票前几次没有验证码,而后又出现了验证码可能是因为一个会话的尝试次数比较多,可以尝试修改会话,直接清空缓存或打开隐私窗口</p>
<h3 id="%E5%8D%81%E4%BA%8C%E3%80%81%E5%90%AC%E8%AF%B4%E8%BF%98%E6%9C%89%E6%89%8B%E6%9C%BA%E5%8F%B7%E9%AA%8C%E8%AF%81%E7%A0%81%E6%8A%95%E7%A5%A8%EF%BC%9F">十二、听说还有手机号验证码投票?</h3>
<p>这个就更简单了,可以利用在线接码平台,这里分享几个,网上有很多,挖洞注册也一样可以用<br /> 1)https://jiemahao.com/ (免费)<br /> 2)https://bestsms.xyz/ (免费)<br /> 3)https://sms-activate.org/cn (付费)</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/c15df6d7c55179c024f8f0f43cb24fa3.png" />
</p>
<h2 id="%E6%A1%88%E4%BE%8B1%EF%BC%9A%E8%AE%B0%E4%B8%80%E6%AC%A1**%E5%88%B7%E7%A5%A8">案例1:记一次**刷票</h2>
<p>某天,早晨醒来,刚醒看到朋友发个投票的,让我投一下</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/c93907cc1869a5c996d22abf5df8cf2d.png" />
</p>
<p><br /> 先是正常投了一下,想着刚好看看测试一下,起床刷个牙,开开电脑,先抓包,分析一下,提示让用**投票</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/4b2091e2d8f593983841ee65bce66b2a.png" />
</p>
<p>此时我再用客户端的**进行登陆抓包,发现提示还是一样</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/a1b4a80040ec4e6d72b29e5e4ef13d98.png" />
</p>
<p><br /> 思考一下,他是如何判断我是否用的**?<br /> 我明明用的**,而提示没用**,猜测肯定是User-Agent搞的鬼</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/9d4f4685c0c6234e2eb35fe0443351ae.png" />
</p>
<p><br /> 因为是客户端的**,所以User-Agent还是根据系统的显示,替换个手机的User-Agent,提示如下:</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/3db33dd1735ce1c862c943c1232c54b0.png" />
</p>
<p><br /> 可以看到,可以进行投票了,不过提示投票过多,明天再试<br /> 此时分析Post数据包看到有个token值,猜测token来进行判断的,因为token也属于表示用户身份的特征<br /> 测试随便修改一位数,发现投票成功</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/0e03ff9e83072df53b090ae1e6515a01.png" />
</p>
<p>遍历投票</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/0ff36144d540886acf0f9fe9dfbd1379.png" />
</p>
<p><br /> 1:</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/7f720cfc2c9ba330d7f040ad3235af91.png" />
</p>
<p><br /> 2:</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/6bb52086e8358c6b8293bcc018950de7.png" />
</p>
<h2 id="%E6%A1%88%E4%BE%8B2%EF%BC%9A%E8%AE%B0%E4%B8%80%E6%AC%A1%E4%B8%BA%E5%AD%A6%E6%A0%A1%E6%8E%92%E8%A1%8C%E5%88%B7%E7%A5%A8">案例2:记一次为学校排行刷票</h2>
<p>一个漆黑的夜晚,接近十一点,辅导员在群里发了一个高校排行投票</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/3d5b2ae0c24cea5fce225e0998b350bc.png" />
</p>
<p><br /> 打开看了下,我们学校才第三,1000+票,第一名 2W+(xxx信息工程xx)<br /> 相信他们是刷的票,搞信息的学校,肯定有大师傅<br /> 首先分析了一下,Cookie 不会验证用户:</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/5cfe755a1b58cbf9aa5c93bec9be1f7f.png" />
</p>
<p><br /> ip 也不会验证用户:</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/9e0c68644299dc87070ed1a64cfdce6c.png" />
</p>
<p><br /> 发现上面有两个参数,一个vid 是指学校<br /> id测试发现投票成功为4,但是投票到达一定次数就会换另一个值,Bp遍历一下</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/e7f9a2b9c93cfd665100e0b6fd062ee5.png" />
</p>
<p><br /> 持续几十票,id就不可以用了,发现增加1位即可投票成功,既然知道了规律,那还等什么!</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/449e86a63aac529475dc21b77675972d.png" />
</p>
<p><br /> 刷之后,稳定排名第二</p>
<p></p>
<p class="img-center">
<img alt="图片" src="https://i-blog.csdnimg.cn/blog_migrate/f45db94f4239ec0302e85da576849c49.png" />
</p>
<h2 id="%E7%BB%93%E6%9D%9F%E8%AF%AD">结束语</h2>
<p>针对投票这方面产商可以加强验证机制、如随机token+服务端验证,在提交表单处再次增加随机校验码等等,上面思路仅是在刷票途中用到的一些思路,最重要的是师傅们要学到技巧,用到其他情况上面,并不单单指投票,就比如看到某个功能点就会考虑存在哪些漏洞,漏洞应该在什么点会触发!</p>
- 来源:https://xz.aliyun.com/t/12970
复制代码
<p>声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。<strong>所有渗透都需获取授权</strong>!</p>
<p>@<strong>学习更多渗透技能!体验靶场实战练习</strong></p>
<h2 style="background-color:transparent;margin-left:0pt;text-align:left;"><strong>免费领取安全学习资料包!</strong>
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/a340b94d361ce67d01270e8f147b2c5d.png" />
</h2>
<p style="margin-left:0;text-align:left;"></p>
<p style="margin-left:0;text-align:left;"></p>
<p style="margin-left:0;text-align:center;">渗透工具</p>
<p style="margin-left:0;text-align:center;">
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/98cb94f5ae7c43ed863cfdd2c8542da9.png" />
</p>
<p style="margin-left:0;text-align:center;">技术文档、书籍</p>
<p style="margin-left:0;text-align:center;">
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/02d763f935dae0ec4dbb7c50ce01104e.png" />
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/2ded94b8aad7ddcdaad6711bc5d966d8.png" />
</p>
<p style="margin-left:0;text-align:left;">
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/1389e25bc919b92de84665473ecac216.png" />
</p>
<p style="margin-left:0;text-align:center;">面试题</p>
<p style="margin-left:0;text-align:center;">帮助你在面试中脱颖而出</p>
<p style="margin-left:0;text-align:center;">
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/1335d14b18f428c564121557c5b74722.png" />
</p>
<p style="margin-left:0;text-align:center;">视频</p>
<p style="margin-left:0;text-align:center;">基础到进阶</p>
<p style="margin-left:0;text-align:center;">环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等</p>
<p style="margin-left:0;text-align:left;">
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/e6573e09dcef90db7d669effbfe1d8b5.png" />
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/f9fa667d6283877b6f481461196e82d2.png" />
</p>
<p style="margin-left:0;text-align:center;">
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/9fb6c5aed95f79539f02500f0066d5a7.png" />
</p>
<p style="margin-left:0;text-align:center;">应急响应笔记</p>
<p style="margin-left:0;text-align:center;">
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/fdbceee4e3d598e53edc0ae48d2c0f2d.png" />
</p>
<p style="margin-left:0;text-align:center;">学习路线</p>
<p style="margin-left:0;text-align:left;">
<img alt="" src="https://i-blog.csdnimg.cn/blog_migrate/f8f6c32011c137e4d3bf96ac1d7d0b3d.png" />
</p>