小知识:
getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,
失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。
getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型及图片高度与宽度。
实例:
<?php list($width, $height, $type, $attr) = getimagesize(“runoob-logo.png”); echo “宽度为:” . $width; echo “高度为:” . $height; echo “类型为:” . $type; echo “属性:” . $attr; ?>
宽度为:290 高度为:69 类型为:3 属性:width=”290″ height=”69″
如果用这个函数来获取类型,从而判断是否是图片的话,会存在问题。
它读取目标文件的 16 进制的头几个字符串,看符不符合图片要求,固定的图片文件前面几个字符串是一样的,但是图片头可以被伪造,因此还是可以被绕过。
我们这里还是先按照文件上传漏洞测评流程走!!!
先上传一个正常的文件:
我这爆出一个错误信息!!!!
解决方法:
接着上传!!!上传成功!!!
并爆出了上传图片的路径信息!!!!
接着,就按照大佬的方法来走了!制作图片木马!步骤如下:
刚开始,以为这是方法的多个步骤!!后来仔细一样,才发现这是三个方法!!
第一个方法:直接在WINHEX这种文件中把hacker.php的头部修改为GIF文件的头部GIF89A
第二个方法:通过WINDOWS命令,将正常的图片与攻击代码进行合并,形成新的包含攻击代码的图片。
第三个方法:使用软件,直接在图片中加入攻击代码。
我觉得,还是第二种方法,最为简单靠谱。
copy /b pikachu.jpg + hacker.php target.jpg
接下来,我们把上传上去!!!
文件保存的路径为:uploads/2021/07/13/82257360ed54dce7cd5554702037.jpg
我们直接访问试一下:
http://localhost/pikachu/vul/unsafeupload/uploads/2021/07/13/82257360ed54dce7cd5554702037.jpg
显示的是图片!!!
接下来我们采用之前讲过的本地包含文件漏洞原理来包含该文件,并查看结果!!!!
http://localhost/pikachu/vul/unsafeupload/uploads/2021/07/13/82257360ed54dce7cd5554702037.jpg
对比这两个链接,我们要把文件跳转到同一个目录下才可以包含!!!
跳转到同一个VUL目录下!!!!
http://localhost/pikachu/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2021/07/13/82257360ed54dce7cd5554702037.jpg
&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
接着我们再尝试一下GETSHELL脚本是不是可以用!!!
文件保存的路径为:uploads/2021/07/13/80592360ed56f8c2ac5780777647.jpg
http://localhost/pikachu/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2021/07/13/80592360ed56f8c2ac5780777647.jpg
&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
成功拿到了SHELL!!!!
真棒!!!!
来源:freebuf.com 2021-07-28 08:24:19 by: 知非知非知非
请登录后发表评论
注册