HACK80 首页  立即注册  登录
现在注册
已注册用户请  登录
HACK80    技术文档

基于镜像流量的漏洞挖掘思路分析

  •   djg222000 ·2018-2-9 19:12:45·587 次点击 ·阅读模式     

    马上注册,加入HACK80!与我们一起交流。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    背景
    通过Cobra扫描内部SSRF的时候,发现还是存在漏报的情况。
    漏报的主要问题是Cobra扫到的某个漏洞(V),而这个漏洞会有多处(N)调用,所以只要这个漏洞(V)不修复,它的影响就会是V*N。
    举个例子,Cobra对于SSRF在PHP语言下的漏洞发现检测是通过匹配可能出现问题的两个函数。
    file_get_contetns() curl_init()
    这两个函数的入参都是一个URL类型,Cobra接着反查这个URL是否可控,如果发现这个URL是触发点所在的函数(F)入参传进来的话,就认为是风险。
    问题就出在这个函数(F)会出现多次被调用情况。
    如何进一步提高类似漏洞的发现思路?
    既然SSRF漏洞的前提条件必须是外部URL可控,那么如果能找到我们应用服务器上所有的请求报文记录,匹配出其中GET参数或POST的报文中存在URL的,再验证下,那就能确定所有的SSRF漏洞和任意链接跳转。
    如何拿到服务器所有的请求记录呢?
    第一想到的肯定是通过服务器截包,但是截包会导致网络、内存、CPU、IO都会受到很大影响。 虽然有消除海量中断、旁路内核协议栈、减少内存拷贝、CPU多核任务分担等技术方案来优化,但这样实现的成本太高。
    发现公司在使用的DPDK,可以实现高性能的报文转发。
    简单点的实现就是在入口交换机接出一条线给一台存储服务器,那么存储服务器可以通过DPDK收集所有经过该交换机的全部报文。就相当于给该交换机做了一个镜像流量。
    镜像流量就可以定时采集储存并推送给Cobra服务器,Cobra增加规则去分析镜像内所有Request报文中是否存在URL参数的请求,再通过SSRF EXP判断是否存在SSRF漏洞以及任意链接跳转。
    还能干嘛?
    除了弥补Cobra白盒审计的误报外,另外一个最大的意义是将这些镜像流量给黑盒。
    黑盒最大的问题是无法全面的爬取所有的请求,导致覆盖面有问题,遗漏一些隐患点。 这些镜像流量就刚好填补了黑盒的缺陷,让黑盒可以去更加真实、全面的探测所有请求。
    通过这个方法,除了挖掘公司内部漏洞,还连带的着发现了一些外部站点的漏洞。 比如:
    引用参考
    587 次点击  
    收藏  转播  分享
    添加一条新回复
    您需要登录后才可以回帖 登录 | 立即注册

    本节点积分规则
    QQ
    小黑屋   ·   手机版   ·   376 人在线 最高记录 5500   ·   TOP
    我们很年轻,但我们有信念、有梦想!

      我们坚信只有今天付出了,才有机会看到明天的太阳!现在!加入我们,给你一个气氛优秀的技术圈子。  
    GMT+8, 2018-8-21 14:05, Processed in 0.052377 second(s), 18 queries .