本教程仅供学习参考!请勿使用于非法用途,请在下载后24小时删除!所造成的重任与本站无关!
前言:拿到网站shell最快的办法那就只有上传了,他是与服务器直接接触的。

这里我来分析一个CTF的题吧。还是挺有意思的。

地址:http://ctf5.shiyanbar.com/web/upload/

打开网站可以看到,这是一个上传界面,我先随便上传一个东西,这里我上传的是png文件。 demo.png 可是她提示的是要上传php文件,那就上传吧..
可是上传后却又提示上传图片文件,那这样不就是矛盾了吗。demo1.png
按了一下F12,发现没有js验证,那肯定就要用到0X00截断了,上传一个图片文件,最后上传的却是php文件。

漏洞产生原理

 <?php
$path="upfiles/picture/";
$file="20121212.jpg"; 
$upfilename=$path&&$file;//最后的上传地址
?>

如果我们在picture/后面加上shell.php+ 那么最终的地址就是upfiles/picture/shell.php+20121212.jpg
我们进行抓包拦截修改发送,把+号的十六进制2b改成00,那么服务器就不会解析php后面的路径,拦截修改之后最终上传的文件为upfiles/picture/shell.php 这样就利用这个漏洞拿到shell了

开始操作: demo3.png 在hex 找到对应的16进制修改,demo4.png 2b就是加号,改成00即为空格,那么之后的就不解析了
我们发送 demo5.png 可以成功上传php文件 那就GETwebshell 了

Last modification:July 26, 2019
If you think my article is useful to you, please feel free to appreciate