目录
low等级
通过分析源代码,第一条只是分析上传是否为空,第二句则是文件的上传路径,第三条则是名字,可以看到,服务器对上传文件的类型、内容没有做任何的检查、过滤,存在明显的文件上传漏洞,生成上传路径后,服务器会检查是否上传成功并返回相应提示信息。
如果上传成功,则会提示 路径+succesfully uploaded! 如果上传失败,则会提示 Your image was not uploaded。
我们尝试上传一个一句话木马
使用菜刀链接
菜刀可以完全访问
Medium
先上传一句话木马
可以看到要求我们上传一个后缀为jpeg或者png的文件,说明增加了对文件类型的管控,不能直接上传后缀为.php的文件了。
通过BP抓包来对上传成功和失败进行对比。
简单的对比可以看出来,由于上传的文件类型不一样,导致无法上传,可以将上传之前的文件为.png,通过BP抓包来修改后缀,
使用菜刀链接
high
首先还是使用上面的方法来通过BP绕过
但并没有成功
查看源码
从代码中看到对文件的格式,大小都做出了限制,而且对文件的上传增加了缓存。且对文件的内容进行审查。
getimagesize(string) :函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串。如果不能访问 filename 指定的图像或者其不是有效的图像,getimagesize() 将返回 FALSE 并产生一条 E_WARNING级的错误。所以 getimagesize函数的作用是判断上传的文件是不是有效的图片 对一句话木马添加GIF89
文件成功上传
但由于上传的是.png结尾的文件,并非是.php结尾,无法使用菜刀链接
利用文件包含漏洞
之后通过
菜刀即可链接