当前位置: 首页 > news >正文

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

目录

PHP CGI漏洞

1.产生原因

2.产生条件

第02关 Nginx解析漏洞

1.打开靶场

2.iwebsec靶场渗透配置

(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的解析漏洞。

2.iwebsec靶场渗透配置

(1)确保nginx版本可以解析php

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

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

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

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

 不过在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漏洞渗透成功

相关文章:

  • 【YashanDB知识库】YashanDB-OCI-快速上手
  • selenium 显示等待12种预置条件包括定制等待条件
  • 如何改变音频声音大小?关于改变音频大小的方法介绍
  • 线程与线程安全,生产消费者模型
  • Python+appium自动化+夜神模拟器inspector部署验证
  • 【工具类】证书自动续签免费版 正式发布
  • fiddler抓包07_抓IOS手机请求
  • Pinia从安装到使用
  • Metasploit渗透测试之服务端漏洞利用
  • 在vue2项目中使用dart-sass
  • 【JavaEE】——内存可见性问题
  • 基于keras 的神经网络股价预测模型
  • 基于springboot+vue医院挂号就诊系统设计与实现
  • C#和数据库高级:虚方法
  • android 页面布局(1)
  • php的引用
  • [deviceone开发]-do_Webview的基本示例
  • [笔记] php常见简单功能及函数
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Fabric架构演变之路
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • WePY 在小程序性能调优上做出的探究
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 延迟脚本的方式
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • #、%和$符号在OGNL表达式中经常出现
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2)leetcode 234.回文链表 141.环形链表
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (javascript)再说document.body.scrollTop的使用问题
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (纯JS)图片裁剪
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)计算机毕业设计ssm电影分享网站
  • (回溯) LeetCode 40. 组合总和II
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (未解决)macOS matplotlib 中文是方框
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)u-boot-nand.bin的下载
  • (转)Google的Objective-C编码规范
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net mvc部分视图
  • .NetCore项目nginx发布
  • .NET中分布式服务
  • .stream().map与.stream().flatMap的使用