<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>验证码 &#8211; ChaBug安全</title>
	<atom:link href="/tags/%E9%AA%8C%E8%AF%81%E7%A0%81/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>一个分享知识、结识伙伴、资源共享的博客</description>
	<lastBuildDate>Mon, 13 Aug 2018 15:37:47 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.5</generator>
	<item>
		<title>一张验证码引发对DOS的思考</title>
		<link>/web/533.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Mon, 13 Aug 2018 14:38:58 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[验证码]]></category>
		<guid isPermaLink="false">/?p=533</guid>

					<description><![CDATA[DDOS攻击在互联网上是比较常见的一种攻击方式。 他的目的就是为了让攻击目标网站或者在线服务失去相应，或者因为大量流量和IP一时间如洪水般涌入服务器，导致服务器拒绝服务，甚至宕机。...]]></description>
										<content:encoded><![CDATA[<blockquote><p>DDOS攻击在互联网上是比较常见的一种攻击方式。</p></blockquote>
<p>他的目的就是为了让攻击目标网站或者在线服务失去相应，或者因为大量流量和IP一时间如洪水般涌入服务器，导致服务器拒绝服务，甚至宕机。</p>
<p>在《<a href="https://blog.dyboy.cn/websecurity/53.html" target="_blank" rel="noopener">白帽子讲WEB安全</a>》笔记一文中，我有写到各类常见 <code>DDOS</code> 攻击,以及简单的防御方式。</p>
<p>本次实验主要是在某次挖洞的过程，以及正好看到<code>黑家小无常</code>刚发布的文章给我的启示，然后顺便做了一下验证。</p>
<h3 id="h3-0x01-"><a class="reference-link" name="0x01 线上测试"></a>0x01 线上测试</h3>
<p>访问某网站后台，存在<span class="wpcom_tag_link"><a href="/tags/%e9%aa%8c%e8%af%81%e7%a0%81" title="验证码" target="_blank">验证码</a></span>登陆验证的操作，点击可刷新验证码，发现在请求头中有对验证码参数可控的操作。</p>
<p><a class="swipebox" href="https://upload-images.jianshu.io/upload_images/6661013-b07550bf50c94e70.png" target="_blank" rel="noopener"><img src="https://upload-images.jianshu.io/upload_images/6661013-b07550bf50c94e70.png" alt="参数可控" /></a></p>
<h4 id="h4-u590Du73B0"><a class="reference-link" name="复现"></a>复现</h4>
<p>放到<code>BurpSuite</code>中复现测试如下：</p>
<p><a class="swipebox" href="https://upload-images.jianshu.io/upload_images/6661013-fef368327a73c30d.png" target="_blank" rel="noopener"><img src="https://upload-images.jianshu.io/upload_images/6661013-fef368327a73c30d.png" alt="正常请求" /></a></p>
<h4 id="h4-u8C03u6574u53C2u6570"><a class="reference-link" name="调整参数"></a>调整参数</h4>
<p><code>font_size</code> <code>width</code> 以及 <code>height</code> 参数：</p>
<p><a class="swipebox" href="https://upload-images.jianshu.io/upload_images/6661013-8e72cf79df5953b3.png" target="_blank" rel="noopener"><img src="https://upload-images.jianshu.io/upload_images/6661013-8e72cf79df5953b3.png" alt="扩大值" /></a></p>
<h4 id="h4-u7136u540Eu518Du653Eu5927"><a class="reference-link" name="然后再放大"></a>然后再放大</h4>
<p><a class="swipebox" href="https://upload-images.jianshu.io/upload_images/6661013-83928c6a4c8f4df4.png" target="_blank" rel="noopener"><img src="https://upload-images.jianshu.io/upload_images/6661013-83928c6a4c8f4df4.png" alt="Boom！" /></a></p>
<p>所以如果我们无限制放大下去，那么服务器真的就得<code>GG</code>了，图片的渲染绘制，面积越大绘制时间越长，返回的数据包越大，当大量僵尸网络访问这样的放大链接时，服务器就会猛地消耗资源！</p>
<h3 id="h3-0x02-ddos"><a class="reference-link" name="0x02 资源耗尽型DDOS"></a>0x02 资源耗尽型DDOS</h3>
<p>这其实就是一种资源耗尽类型的<code>DOS攻击</code></p>
<p>之前有说过程序正则匹配导致<code>DOS</code>的问题</p>
<p>这里想到一个，比如数值型的参数，传参过去，我们可以改成算式类型，在后台一般会计算这个值</p>
<p><a class="swipebox" href="https://upload-images.jianshu.io/upload_images/6661013-3a8173b2b5eb94d7.png" target="_blank" rel="noopener"><img src="https://upload-images.jianshu.io/upload_images/6661013-3a8173b2b5eb94d7.png" alt="计算型DOS" /></a></p>
<h3 id="h3-0x03-dos"><a class="reference-link" name="0x03 数据库连接DOS"></a>0x03 数据库连接DOS</h3>
<p>有的程序在编写的过程中，只有连接数据库，但是查询完毕之后并没有断开与数据库的链接，因此，当一个页面调用数据库太多，或者数据库数据内容本身较大时（例如搜索功能或者程序本身一些数据查询修改等操作）导致数据库连接高并发，从而出现<code>数据库2002</code>（连接失败）的错误。</p>
<h3 id="h3-0x04-"><a class="reference-link" name="0X04 总结"></a>0X04 总结</h3>
<p>还有很多类型的 <code>DOS攻击</code> ，主要从程序本身入手！因此在 <code>SDL</code> 中应当注意这种问题，原理虽然不变，但是此次利用验证码也是一种新的思路！</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>磨人的小妖精——初识验证码</title>
		<link>/web/421.html</link>
		
		<dc:creator><![CDATA[Y4er]]></dc:creator>
		<pubDate>Fri, 25 May 2018 09:21:33 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[验证码]]></category>
		<guid isPermaLink="false">/?p=249</guid>

					<description><![CDATA[提到验证码，我想每个人都体验过被验证码支配的恐惧，比如这样的： 还有这样的： 更有这样的： 老铁，是不是扎心了。在验证码面前，我们就仿佛摇篮里无知的孩子。 今天我们就来说说这个磨人...]]></description>
										<content:encoded><![CDATA[<div>
<p>提到<span class="wpcom_tag_link"><a href="/tags/%e9%aa%8c%e8%af%81%e7%a0%81" title="验证码" target="_blank">验证码</a></span>，我想每个人都体验过被验证码支配的恐惧，比如这样的：</p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view" data-width="432" data-height="256"><img loading="lazy" class="alignnone size-medium" src="https://upload-images.jianshu.io/upload_images/5902915-f1d76e5e8c407c3c.png" width="432" height="256" /></div>
</div>
<div class="image-caption"></div>
</div>
<p>还有这样的：</p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view" data-width="373" data-height="346"><img class="" src="//upload-images.jianshu.io/upload_images/5902915-05ddc1a67be45eef.png" data-original-src="//upload-images.jianshu.io/upload_images/5902915-05ddc1a67be45eef.png" data-original-width="373" data-original-height="346" data-original-format="image/png" data-original-filesize="69991" /></div>
</div>
<div class="image-caption"></div>
</div>
<p>更有这样的：</p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view" data-width="441" data-height="401"><img class="" src="//upload-images.jianshu.io/upload_images/5902915-a540c58fb0867c78.png" data-original-src="//upload-images.jianshu.io/upload_images/5902915-a540c58fb0867c78.png" data-original-width="441" data-original-height="401" data-original-format="image/png" data-original-filesize="89829" /></div>
</div>
<div class="image-caption"></div>
</div>
<p>老铁，是不是扎心了。在验证码面前，我们就仿佛摇篮里无知的孩子。</p>
<p>今天我们就来说说这个<b>磨人的小妖精——验证码</b>。</p>
<p>验证码（CAPTCHA）是“Completely Automated Public Turing test to tell Computers and Humans Apart”的缩写，是一种区分用户是计算机还是人的公共全自动程序。验证码发明者正是路易斯·冯·安，这位天才在21岁时就创造出人类第一个验证码，其本质是针对“黑客”的绝地反击。“黑客”通过编写恶意的计算机程序，让电脑伪装成用户，按照他们的意图大量地对外散布垃圾信息，例如在论坛里大量“灌水”、打广告。这种恶意的垃圾信息发布严重影响了人类利用网络的效率，而验证码的出现，成功抵御了这种恶意的攻击。在这场“反黑客”战役中，验证码取得了完胜。</p>
<p>随着近几年的发展，验证码家族日益壮大，充斥在人们日常生活中的方方面面。下面就用我们安全人员的一天，来告诉大家，这个小妖精到底有多磨人。</p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view" data-width="271" data-height="271"><img class="" src="//upload-images.jianshu.io/upload_images/5902915-b3ba008382a8b295.png" data-original-src="//upload-images.jianshu.io/upload_images/5902915-b3ba008382a8b295.png" data-original-width="271" data-original-height="271" data-original-format="image/png" data-original-filesize="63018" /></div>
</div>
<div class="image-caption"></div>
</div>
<h4>没有一点点防备，你就这样出现，一长串语音验证码</h4>
<p>阳光明媚的清晨，准时在班车停靠点等待班车，迎面走来一个手拿诺基亚的阿姨，略显焦急地问我：“小伙子，能不能帮我听个验证码啊，我岁数大了，记不住”。我很清楚，二十多岁的我，一直是中老年妇女的偶像，有粉丝求助，偶像怎能袖手旁观？况且作为一名合格的研究生，区区语音验证码，能奈我何？顺手拿起电话，按下了接听键：您的验证码是1,5,8,7,4,3……我说程序员兄弟啊，验证码设置多少位是多啊，这么长一串，你确定是给人听的？吓得我赶紧拿出了手机，又听了一次语音验证码，边听边记，最后发现一共有12位，可怕可怕。</p>
<p>由此可见，语音验证码确实够安全，只会给唯一的手机号发送唯一的语音验证码，能够有效防止脚本程序的自动化攻击，抵御过于频繁的请求，而且能够保证高到达率，特别是在偏远地区，语音验证码因其高到达率特性更是不可替代。同时呢，如果验证码位数少一点，用户体验还是很不错的。</p>
<h4>盗刷、绕过、爆破，验证码被我们玩坏了</h4>
<p>俗话说，道高一尺，魔高一丈，验证码既然出现了，我们安全人员绝不能退缩，就要想破脑袋，尝试破解验证码。大家放心，我们是白帽子，之所以寻找验证码的漏洞，就是怕被其他别有用心的人利用了，我们要及时发现问题、修复问题，做新时代的优秀公民。</p>
<p>一整天的工作拉开了序幕，当然，每次新接触一个系统的安全测试项目，最先关注的就是验证码。首先，注册一个新用户，需要填写手机号，发送短信验证码，进行身份确认。此处“咔”一下，既然系统想发短信验证码，我就一次让你发个够，随手丢给系统一个python脚本，同一个手机号，先发送20回短信验证码，看看系统听不听话。果然，系统按部就班地发了20条短信验证码，系统居然对手机号、对接口频率没有任何限制，那岂不任人宰割，几万个短信验证码，分分钟就全给你浪费了，这一大笔钱，我都替项目组感到心疼。</p>
<p>接着呢，用注册过的用户进行登录，故意输错登录密码，看看系统是否有防护措施。呦吼，连续输错5次，系统提示需要输入图形验证码，看来还是有防范意识的嘛。但防不防得住，还得另说。还是刚才的脚本，引入开放的OCR图片识别接口，智能识别图形验证码，嘿嘿嘿，我得意的笑了，可以对用户密码进行无休止的暴力破解喽。</p>
<p>最后呢，咱们再来看看“忘记密码”功能。假装自己忘记密码的样子，点击“忘记密码”，系统会给我的手机号发送一条短信验证码，当我多次尝试输入错误的验证码数字，再次输入正确的验证码，结果发现仍然能够成功重置密码。这就好办了，只有四位的短信验证码，写个脚本，从1到9999进行遍历，唰唰唰，转眼就爆破成功，只要是系统的注册用户，不用知道短信验证码的内容，便可随意修改他们的登录密码。</p>
<p>至此，验证码彻底被我们玩坏了，盗刷短信验证码、破解其他用户密码甚至是修改其他用户密码，你说可怕不可怕。所以说，开发人员，针对验证码，一定要保证：</p>
<p>短信验证码接口频率进行限制，或者添加图形化验证码，防止机器盗刷</p>
<p>图形验证码一定要保证复杂度，不能够被OCR技术轻易识别。（脑袋里马上浮现出12306的验证码，即使作为人脑，我也几乎没有一次性成功的经历）</p>
<p>为验证码设置有效次数，或者增加验证码长度，并缩短验证码的有效时长</p>
<h4>别人家的滑动验证码</h4>
<p>工作一天，何以解忧，唯有“剁手”。打开电子商城，习惯性的去触发该系统的验证码机制，顺便欣赏学习一下别人家的验证码——<b>滑动验证码</b>。首先用户滑动验证码到指定位置，完成后会给服务端回传各种加密信息，为了做风控规则来判断是否异常，个人猜测其规则会包含滑块的响应时间、拖拽速度、时间、位置、轨迹、重试次数等，如果没有命中异常规则，就会放行校验通过，如果命中异常规则就会弹出二次校验，只有通过校验后才可以放行。</p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view" data-width="354" data-height="417"><img class="" src="//upload-images.jianshu.io/upload_images/5902915-b0d79a89da8c6b24.png" data-original-src="//upload-images.jianshu.io/upload_images/5902915-b0d79a89da8c6b24.png" data-original-width="354" data-original-height="417" data-original-format="image/png" data-original-filesize="30671" /></div>
</div>
<div class="image-caption"></div>
</div>
<p>滑动验证码最大特点即无需人类思考，从而不会打断用户操作，进而提供更好的用户体验；而且也可以做到抵御脚本自动化攻击，因此渐渐成为一种流行趋势。但是也有几点使用前要考虑的地方，比如响应延迟，当大量并发过来的时候是不是撑得住；最高响应时间是否有上限，如果超过是否会降级，如何降级等等。</p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view" data-width="640" data-height="35"><img class="" src="//upload-images.jianshu.io/upload_images/5902915-d5b8ebfaa24480b6" data-original-src="//upload-images.jianshu.io/upload_images/5902915-d5b8ebfaa24480b6" data-original-width="640" data-original-height="35" data-original-format="image/png" data-original-filesize="2056" /></div>
</div>
<div class="image-caption"></div>
</div>
<p>不知不觉中，给大家介绍了五花八门的验证码：<b>语音验证码，短信验证码，图形验证码，滑动验证码</b>，想必大家对验证码都有了更进一步的认识和了解。说不定有些手痒的朋友们，已经在动手尝试破解验证码去了，千万要记得，适可而止哦，对我们的小妖精，手下留情。</p>
</div>
<p>作者：晓春测略<br />
链接：https://www.jianshu.com/p/cc8220d38957<br />
來源：简书</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
