ctfshow文件上传
本文最后更新于 2024年9月20日 中午
web151
0x01
测试了一下需要png结尾,传个一句话木马上传之后bp抓包改为php,然后执行就行了,或者蚁剑
0x02
前端js进行修改,把对应的png改成php即可
web152
参照web151的0x01
web153
这题直接改结尾不能成功,尝试htaccess之后发现不行,查阅之后发现前者只适合apache,这里使.user.ini
1 |
|
然后也修改为png,再在bp里进行修改
然后直接上传一句话的图片就行了
注意本地使用的是index.php进行连接
web154
试了一下,给了报错是
文件上传失败,失败原因:文件内容不合规,上传的木马过滤了php,稍微修改一下🐎就行
1 |
|
然后进行website/upload/index.php执行
1 |
|
web155
和上面web154一致的过程
web156
失败原因:文件类型不合规
在之前的基础上,过滤了[]
,可以使用{}
进行绕过,其他的流程一致
1 |
|
web157
这题在之前的基础上对{}
,;
进行了过滤,根据前面执行的命令,可以直接把要执行的命令传入图片中
1 |
|
web158
和web157做题完全一致
web159
本地在之前的基础上禁用了()
,正常的函数都不能用了,但是由于php特性
1 |
|
因此可以这么写木马
1 |
|
剩余的流程和上面一样
web160
可以传个png进行简单的fuzz一下,再之前的基础上过滤了空格和反引号,以及log,这样基本不用想执行木马了这里学习一下,又是利用日志包含的原理。log用“.”进行绕过。当命令执行跟木马上传失败的时候,可以利用日志包含上传
web161
在web160的基础上加了GIF89a进行验证就行
1 |
|
基本上和web160一致
web162
0x01
上强度了,看了一下wp这里的介绍是远程包含,有点xxe那味道了。这题过滤了.
基本的文件尾就不能用了。
由于我们知道具体的文件在哪,所以就直接写命令执行
1 |
|
然后写一个orange.png,里面内容是
1 |
|
简单的解释一下,我在我的一个vps下写了一个马,这里远程包含我的马,我开了5000这个端口,由于.被过滤了,所以需要ip转int型
其他的流程基本和上面一致
本地你的物理机都需要一开始是png然后在bp里删掉的,这里注意一下。
0x02
涉及条件竞争,由于环境就不演示了,网上有很多大师傅都有wp讲解,可以去看看
web163
传图片后,会被删除,在网上看wp的时,看到一个约过中间,直接写的思路
0x01
条件竞争,网上自己找吧
0x02
直接在.user.ini里写入远程的地址
1 |
|
然后vps开服务,就行了,本地的物理机都还是上传png只不过bp删掉了而已
web164
进行了简单的尝试,发现上传的哪怕是真图片马,也是被进行二次转化,下载下面里面的马就没有了,应该是图片的二次渲染.
借用网上的脚本跑一下吧
1 |
|
然后ctrl+s把图片下载下来用txt看可以得到flag,第一次见二次渲染的题
web165
上一题是png的二次渲染,这题是jpg的二次渲染,可以通过前端的代码知晓,脚本是网上比较多的,这里直接先贴过来
1 |
|
orz这题我在本地测试了很久都没有找到一个合适的jpg,就是通过这个脚本执行然后上传就行了,多找一些jpg进行尝试,成功率比较低因为有的文件可能会有特殊字符导致解析失败,我在本地没有打通
web166
1 |
|
这题限制的是zip后缀,随便找个zip用txt在后面加个一句话木马即可,这题需要反复配合bp食用,首先上传的时候需要注意回显的zip名称,然后post对应的发包,可以多尝试几次,我在本地也测试了好几次
web167
本题用的是阿帕奇的,所以使用.htaccess
进行上传内容,图片限制是jpg可以看源码
1 |
|
然后就是正常的文件上传
web168
加了一点姿势,过滤了eval
,system
,post
,get
,可以直接执行命令,反正也是知道具体的flag在哪的,同时本题又改为png上传
这题可以直接修改为php,先执行ls命令
1 |
|
flag在flagaa.php里
1 |
|
web169
1 |
|
前端检测zip文件,后端要求png文件这题过滤了<
,这题的思路,大概就是上传一个zip
首先创建一个index.zip,上传之后修改为php并且把文件形式改成png
然后创建.user.ini.zip
,里面的内容就是日志包含
1 |
|
上传之后和上面一样改,同时在UA里面进行修改写入一个马得到flag,flag在flagaa.php
web170
和上一题基本一致