iwebsec靶场 解析漏洞通关笔记2-Nginx解析漏洞

embedded/2024/10/18 8:34:35/

目录

PHP CGI漏洞

1.产生原因

2.产生条件

第02关 Nginx解析漏洞

1.打开靶场

iwebsec%E9%9D%B6%E5%9C%BA%E6%B8%97%E9%80%8F%E9%85%8D%E7%BD%AE-toc" style="margin-left:40px;">2.iwebsec靶场渗透配置

nginx%E7%89%88%E6%9C%AC%E5%8F%AF%E4%BB%A5%E8%A7%A3%E6%9E%90php-toc" style="margin-left:80px;">(1)确保nginx版本可以解析php

(2)确保cgi.fix_pathinfo配置正确

3.渗透分析

4.渗透实战


PHP CGI漏洞

1.产生原因

php.ini中 cgi.fix_pathinfo = 1配置开启时,会产生解析漏洞

http://x.x.x.x:8000/parse/index.jpg/x.php时,如果x.php不存在,PHP会递归向前解析,如果index.jpg存在就会把index.jpg当做PHP解析,造成了解析漏洞.

2.产生条件

(1) cgi.fix_pathinfo = 1

(2)IIS 7.0/IIS 7.5/Nginx <0.8.03

第02关 Nginx解析漏洞

1.打开靶场

如下所示,打开靶场的解析漏洞,如下红框处的02 Nignx 解析漏洞关卡

http://iwebsec.com:81/

 网址为

iwebsec 靶场漏洞库iwebsecicon-default.png?t=O83Ahttp://iwebsec.com:81/parse/02.php

打开后如下所示,根据提示,本关卡为Nginx的解析漏洞。

iwebsec%E9%9D%B6%E5%9C%BA%E6%B8%97%E9%80%8F%E9%85%8D%E7%BD%AE">2.iwebsec靶场渗透配置

nginx%E7%89%88%E6%9C%AC%E5%8F%AF%E4%BB%A5%E8%A7%A3%E6%9E%90php">(1)确保nginx版本可以解析php

首先确保nginx版本号有此PHP-CGI漏洞,其次要确认nginx可以解析php文件

iwebsec靶场的实践中,发现此靶场的8000启动nginx服务功能不全,不支持解析php。在nginx的根目录下,存在一个文件叫做php.php,内容是获取服务器php的敏感信息。

 但是在访问http://192.168.71.151:8000/php.php文件时,提示无法解析。

在配置的过程中,查看nginxphp配置文件,如下所示

 不过在iwebsec靶场的容器中,查看9000端口判断是否启动

netstat -ano|grep 9000

却发现9000端口根本就没有启动。于是需要通过php-fpm启动9000端口,如下所示

service php-fpm restart

 启动后如下所示,确认9000端口已经启动

 接下来将php-fpm加入到开机自动启动

chkconfig  php-fpm  on

配置完毕后再次访问php.php,如下所示已经可以正常解析php文件

(2)确保cgi.fix_pathinfo配置正确

首先查找php.ini文件,

 然后修改配置确保cgi.fix_pathinfo开启,如果没有开启的话将注释删掉,保证cgi.fix_pathinfo=1,如下所示

3.渗透分析

iwebsec靶场的nginx根目录为/usr/share/nginx/html/

在/usr/share/nginx/html/parse/目录下存在一个index.jpg,浏览器访问如下所示

http://192.168.71.151:8000/parse/index.jpg

其实这个index.jpg是一个图片马,打开文件查看可以发现在文件的尾部有展示php信息的脚本,如下所示。

基于此,在访问http://192.168.71.151:8000/parse/index.jpg/x.php时,由于x.php不存在,PHP会递归向前解析,如果index.jpg存在就会把index.jpg当做PHP解析,造成了解析漏洞。

4.渗透实战

访问如下url地址

http://192.168.71.151:8000/parse/index.jpg/x.php

访问后如下所示

 虽然看起来是乱码,但是不断向下滑动,就会发现php的版本号

 如上所示,PHP CGI漏洞渗透成功


http://www.ppmy.cn/embedded/121816.html

相关文章

排序算法之——归并排序,计数排序

文章目录 前言一、归并排序1. 归并排序的思想2. 归并排序时间复杂度及空间复杂度3. 归并排序代码实现1&#xff09;递归版本2&#xff09;非递归版本 二、计数排序1. 计数排序的思想2. 计数排序的时间复杂度及空间复杂度3. 计数排序代码实现 总结&#xff08;排序算法稳定性&am…

卷积神经网络(Convolutional Neural Networks, CNN)

卷积神经网络&#xff08;Convolutional Neural Networks, CNN&#xff09;是深度学习领域中用于处理具有网格结构的输入&#xff08;如图像和视频&#xff09;的神经网络模型。下面以最简单、直观的方式概述CNN的主要流程及其基本概念&#xff1a; 1. 输入层 概念&#xff1a…

关于武汉芯景科技有限公司的IIC电平转换芯片XJ9509开发指南(兼容PCa9509)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、功能描述 1.VCCA1.35V,VCCB5V,A1输入&#xff0c;B1输出 2.VCCA1.35V,VCCB5V,B1输入&#xff0c;A1输出 3.VCCA1.35V,VCCB5V,A2输入&#xff0c;B2输出 4.VCCA1.35V,VCCB5V,B2输入&#xff0c;A2输出

Python 中的 os 模块

Python 中的 os 模块 在Python中&#xff0c;os 模块是一个内置的标准库&#xff0c;提供了许多与操作系统交互的功能。它允许你执行一系列操作&#xff0c;如文件和目录操作、环境变量管理等。要在Python脚本中使用os模块&#xff0c;你需要首先导入它。 一些常见的用法&…

八大排序详解

文章目录 目录1. 排序的概念及其运用1.1 排序的概念1.2 排序的运用1.3 常见的排序算法 2. 常见排序算法的实现2.1 插入排序2.1.1 基本思想2.1.2 直接插入排序2.1.3 希尔排序 2.2 选择排序2.2.1 基本思想2.2.2 直接选择排序2.2.3 堆排序 2.3 交换排序2.3.1 基本思想2.3.2 冒泡排…

【ubuntu】ubuntu20.04 install vscode

1.download Visual Studio Code - Code Editing. Redefined download .deb. 2.install or intsall by ternimal: sudo dpkg -i code_1.93.1-1726079302_amd64.deb 3.open vscode 4. install some extensions c , python or GitLens.

python的内存管理机制

python的内存管理机制主要分为三个部分&#xff1a;引用计数、垃圾回收和内存池机制。 引用计数机制&#xff1a; python通过维护每个对象的引用计数来跟踪内存中的对象。当对象被创建时就会有一个引用计数&#xff0c;当对象不再被使用时&#xff0c;引用计数为0&#xff0c…

python字典里面的get方法

在Python中&#xff0c;字典&#xff08;dict&#xff09;对象的 get 方法用于从字典中获取指定键&#xff08;key&#xff09;对应的值&#xff08;value&#xff09;。这个方法会返回字典中键对应的值&#xff0c;如果键不存在于字典中&#xff0c;则返回一个默认值&#xff…