论如何高效的挖掘漏洞

2014-08-20 +4 1018529人围观 ,发现 44 个不明物体 观点

现在光是一个Web前端就有很多的攻击手法。而大多数攻击手法都是基于”客户端”存在的。但是很少有人注意到,所以就有了本文。

想要去找一个新攻击手法时,很多人大多都是研究代码(包括我一开始)。从代码里寻找漏洞。这种方法效率比较低下。所以有人喜欢用fuzzing来大规模的测试漏洞的存在(这个方法的确很不错,范围广,测试全,速度快),而大家别以为我找到一种类似fuzzing那样的技术,我还没有那个实力。这个方法只能说会让fuzzing的速度更快,更加的有效率。

想要挖掘一个新的漏洞,就先搞明白那个程序运转的原理机制。然后用图或者文字表达出来。因为服务端的漏洞比较少,我这里就不强调了,主要说说客户端的漏洞,因为客户端的问题是最多的。只要发现这个程序运转的过程中存在和客户端交互的情况,基本上就可以断定如果客户端没有做好过滤,那么就有很大的几率存在漏洞。

说了那么多,不来点事例,可能大部分人都听不懂。

我这里拿”url重定向攻击手法“来说明

什么是重定向,我这里举个例子。

a.cn缺钱了,问b.cn借钱,可是b.cn也没有钱,但是b.cn知道谁有钱,所以告诉a.cn,c.cn有钱,问他借。然后a.cn问c.cn借钱,c.cn把钱借给了a.cn。然后根据这个写出原理的顺序。

a.cn——b.cn——a.cn——c.cn——a.cn

漏洞挖掘

这里我们可以看到本次程序运转的原理机制里,存在有客户端交互。那我们就把重点放到客户端a.cn上。

假设我们把b.cn回馈给a.cn的内容改成其他的会怎么样。

那么结果会变成下面这样。

a.cn缺钱,向b.cn借钱,b.cn没有钱,但知道c.cn有钱,则告诉a.cn,c.cn有钱,这时候,我们在这里截取数据包,把内容改成d.cn有钱。然后把数据包放行,那么a.cn收到了b.cn的回复,说他也没钱,d.cn有钱,然后a.cn问d.cn借。d.cn不鸟a.cn。则a.cn被活活饿死。原理顺序是

a.cn——b.cn——hacker——a.cn——d.cn——a.cn饿死,c.cn在这次成语运作中并没有参与进来

漏洞挖掘

这样所造成的后果是a.cn凡是重定向的则全部失败。

说了那么多,总结下。

想要高效的挖掘漏洞,最好是把主要尽力放到客户端上,因为服务端有未知性,你很难精确的检测到,而客户端是对我们开放的,所以这就给我们制造了很多的机会。

最后用Zjmainstay做的比喻来结束本文。

就跟银行和客户一样,很多人愿意抢客户也不愿意抢银行

等钱拿出来了才抢,而不是去银行抢。

这些评论亮了

  • anlfi (5级) 回复
    看到标题 感觉高大上档
    感觉以为是 精确逻辑fuzz 与模糊化伪代码审计自动fuzz
    之类的方法(毕竟很多大牛也说过一样的议题)
    结果点进来一看 发现只是逻辑规则的简单测试 然后说明又跑到了web层 的url定向上
    无奈只有默默的关掉了标签 这是怎样的一个心情呢
    想要通过fuzz 到0day 肯定需要先计算所有逻辑存在的可能才能去fuzz 这是先题条件并不是什么方法
    比如uaf 都是有环境逻辑的产生之后才fuzz到了0day
    大规模糊fuzz 并不能快速检测到漏洞 逻辑产生的可能有很多种 不可能都能遍历到
    没有确定方向的大规模暴力fuzz(即便考虑的到了所有逻辑)
    也只能像无头苍蝇一样乱撞 或者消耗大量时间也不会有结果
    我想作者是想表达的是 为什么说要挖掘客户端安全呢 因为国内大部分都在研究web方向了
    仅仅这个原因 概括的就太浅了 (安全涉及很多方面
    如果这样那我想说 随着云的普及 客户端又在哪里呢
    作为一个科普文章来说 说的是有点繁杂了 既不深也不浅
    却把需要点时间理解的逻辑说的那么仔细 不利于阅读
    )74( 亮了
  • 汐溯溟洄 (4级) 是个人。 回复
    世界上本没有洞,挖的人多了,就有了洞。
    )50( 亮了
  • redsin (3级) 回复
    您到底想说什么
    )15( 亮了
  • Black-Hole (6级) FreeBuf专栏作者 回复
    多看几遍,连赵武一开始看,都没看懂/偷笑
    )9( 亮了
  • 真刺激 回复
    就跟银行和客户一样,很多人愿意抢客户也不愿意抢银行
    比喻真形象,真心赞
    )8( 亮了
发表评论

已有 44 条评论

取消
Loading...
css.php