学习笔记里的存货(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->攻击
简单抛砖引玉,希望可以帮助到大家.