1day漏洞反推技巧实战(1)

    学习笔记里的存货(1)

    以前看了一篇推特老外做赏金猎人的文章,感触有点深,作者没有写相关漏洞分析,只是说了自己挖了多少个漏洞,这里简单的分析下:

    1day漏洞在很多时候至关重要,不管是在红蓝对抗,还是在赏金猎人生涯中,他占据着很大的地位,关于1day概念,这里不再过多描述.

  开始我们快乐的全过程学习:

    发现某个cms,他是nodejs开发的,cms是Etherpad Lite,通过百度 google搜索相关漏洞详情:

  

 

 

  随便找几个打开链接:

    

 

 

   会发现一件事情,你根本看不到漏洞细节,全是漏洞描述信息

   使用中文搜索:

  

 

 

 

 

  

 

 

 

 

  

  也是只有描述没有漏洞细节

 

   而你用这种方法去搜索一些国内比较知名的cms,如phpcms漏洞:

  

 

 

 

 

  

 你可以搜索到很多,并且除了描述信息,还有直接利用的漏洞poc和exp,你可以通过百度/谷歌获取到漏洞细节,直接利用漏洞.  

 

  现在继续回到Etherpad Lite这个cms系统,很显然Etherpad Lite公开的漏洞描述,并没有公开poc,说明是1day,需要我们去反推:

 

   让我们再来一次,再次谷歌搜索:

  

  

 

  

  这些都是cve列表,记录着产品的漏洞,我们随便找到一个打开,我以第一个为例:

 

    

 

   发现很多漏洞,点一个xss进去:

  

 

 

 

   会发现一个链接:点击链接部分:

  

 

 

  

https://github.com/ether/etherpad-lite/commit/5879037ddca4ab9a4002adf90fc7ce6c9f82f01b

  打开链接,通过两边文件的代码对比,就可以看出哪里出现的安全问题:

  

 

 

  

这样我们就可以看到区别,修复后的文件,使用padutils.escapeHTML去处理修复,这样我们追踪到问题代码后,对我们唯一的难点就是获取完整代码,跟踪路由地址,往上看文件修复:

  

 

 

 

作者说漏洞于2019年10月19日完成修复,那么怎么更快确认哪些版本的Etherpad Lite受影响呢?通过这里查看:

  

 

 

  这些列举出来的是已经修复的,而1.8.0-beta.1之前都是未修复的,打开releases看下:

    

 

 

的确是,1.7.5版本他的发布时间是2019年1月26,1.8.0-beta.1的发布时间是2019年11月3.

 下载1.7.5版本的项目看看便知:

 通过修复文件获取到漏洞路径:src/templates/pad.html:

  

 

  通过代码发现,只要传入url数据,带入到box.innerHTML 即可触发xss,url没做处理

  下载1.8.0-beta.1,查看相关代码,可以发现已经修复了:

  

 

 

 

 

   同理其他漏洞/其他产品漏洞也可以通过这种方法发现漏洞问题是什么.

  光光是知道哪个文件存在漏洞还不行的,这里简单的梳理下,怎么做才能真正利用上漏洞:

  大致思路如下:    

获取存在安全问题项目源码->摸清楚路由地址->根据修复之前的代码反推安全问题->构造漏洞poc->攻击

   简单抛砖引玉,希望可以帮助到大家.

posted @ 2021-08-14 14:10  飘渺红尘✨  阅读(802)  评论(0编辑  收藏  举报
Title