文件上传漏洞学习笔记

空字节理解

当字符串有%00(空字节),就会被服务器认为是结束符。

<?php
$a = $_GET['i'];
echo $a;
?>

浏览器打开127.0.0.1/1.php?i=123456%00123456
将%00设置为url编码
只会输出123456

截断上传

上传文件格式为jpg,用burpsuite进行抓包,将文件名字修改为1.jpg%00.php
将%00设置为url编码

黑名单验证

可以尝试php3,php4,php5,phtml或者使用服务解析漏洞

基本流程:

1.图片是否正常上传
2.图片上传内容是否被修改
3.上传的域名是否是目标服务器
4.如果不是判断图片服务器是否解析
5.上传的目录是否支持解析
6.判断是否黑名单验证

文件二次上传

解析漏洞

iis

1.使用iis5.x-6.x版本的服务器,大多为windows server 2003,网站比较古老,开发语句语句一般为asp;该解析漏洞也只能解析为asp文件,而不能解析aspx文件。
2.目录解析(6.0)
形式:www.xxx.com/xx.asp/xx.jpg
原理:服务器默认会把.asp,.asa目录下的文件都解析成asp文件
3.文件解析
形式:www.xxx.com/xx.asp;.jpg
原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。
4.解析文件类型
iis6.0默认的可执行的除了asp还包含这三种:
/test.asa
/test.cer
/test.cdx

apache

漏洞原理:
apache解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如test.php.owf.rar,.owf和.rar这两种后缀是apache不可识别解析,apache就会把test.php.owf.rar解析成test.php。
漏洞形式:
www.xx.xxx.com/test.php.php123
其余配置问题导致漏洞:
1.如果apache的conf里有这样一行配置Addhandler php5-script.php这时只要文件名包含.php即使文件名是test2.php.jpg也会以php来执行
2.如果apache的conf里有这样一行配置AddType application/x-httpd-php.jpg 即使扩展名是jpg,一样也能以php方式执行

iis7.5

iis7.5的漏洞与nginx的类似,都是由于php配置文件中,开启了cgi.fix_pathinfo,而这并不是nginx或者iis7.5本身的漏洞。
PS:a.aspx.a;a.aspx.jpg…jpg

.net上传

一般支持aspx默认都会支持ashx

phtml上传

在apache配置文件(一般是httpd.conf)里添加
AddType application/x-httpd-php.phtml
这样phtml后缀的文件就会按照php去解析,也可以设置成其他后缀

.htaccess

创建.htaccess文件放在当前目录下

<File *.jpg>//当前目录下所有的jpg文件会被执行为php
ForceTypr application/x-httpd-php
SetHandler application/x-httpd-php
</Files>

双文件上传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

練家子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值