本文最后更新于 2018年08月13日 22:38 可能会因为没有更新而失效。如已失效或需要修正,请留言!

DDOS攻击在互联网上是比较常见的一种攻击方式。

他的目的就是为了让攻击目标网站或者在线服务失去相应,或者因为大量流量和IP一时间如洪水般涌入服务器,导致服务器拒绝服务,甚至宕机。

在《白帽子讲WEB安全》笔记一文中,我有写到各类常见 DDOS 攻击,以及简单的防御方式。

本次实验主要是在某次挖洞的过程,以及正好看到黑家小无常刚发布的文章给我的启示,然后顺便做了一下验证。

0x01 线上测试

访问某网站后台,存在验证码登陆验证的操作,点击可刷新验证码,发现在请求头中有对验证码参数可控的操作。

一张验证码引发对DOS的思考-ChaBug安全

复现

放到BurpSuite中复现测试如下:

一张验证码引发对DOS的思考-ChaBug安全

调整参数

font_size width 以及 height 参数:

一张验证码引发对DOS的思考-ChaBug安全

然后再放大

一张验证码引发对DOS的思考-ChaBug安全

所以如果我们无限制放大下去,那么服务器真的就得GG了,图片的渲染绘制,面积越大绘制时间越长,返回的数据包越大,当大量僵尸网络访问这样的放大链接时,服务器就会猛地消耗资源!

0x02 资源耗尽型DDOS

这其实就是一种资源耗尽类型的DOS攻击

之前有说过程序正则匹配导致DOS的问题

这里想到一个,比如数值型的参数,传参过去,我们可以改成算式类型,在后台一般会计算这个值

一张验证码引发对DOS的思考-ChaBug安全

0x03 数据库连接DOS

有的程序在编写的过程中,只有连接数据库,但是查询完毕之后并没有断开与数据库的链接,因此,当一个页面调用数据库太多,或者数据库数据内容本身较大时(例如搜索功能或者程序本身一些数据查询修改等操作)导致数据库连接高并发,从而出现数据库2002(连接失败)的错误。

0X04 总结

还有很多类型的 DOS攻击 ,主要从程序本身入手!因此在 SDL 中应当注意这种问题,原理虽然不变,但是此次利用验证码也是一种新的思路!

喜欢这篇文章的话就点一点喜欢吧!