low级
对文件类型没有任何约束,可直接上传“一句话木马”hack.php,连接冰蝎。
一句话木马 :
medium级
源代码
if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
( $uploaded_size < 100000 ) )
可以看到,代码对文件的类型和文件的大小,做了限制。
思路:
将webshell文件上传,然后利用burp进行抓包,可以看到服务器判断文件类型的方式有两种,一种是filename,一种是content-type。
如果上传的是php格式的,可以修改 content-type的值,来绕过上传限制
如果上传的是jpg格式,可以修改filename的值,来完成上传webshell
high级
源代码
if( ( strtolower( uploaded_ext ) == "jpg" || strtolower( uploaded_ext ) == "jpeg" || strtolower(uploaded_ext ) == "png" ) &&( uploaded_size < 100000 ) &&
getimagesize( $uploaded_tmp ) )
可以看到,代码对文件后缀,文件大小,文件类型,做了限制,这里要注意 getimagesize()函数,该函数可获取图片的宽高等具体信息。因此,只修改文件后缀是无法绕过的,找一张 jpg格式的图片,使用 命令 copy img.jpg/b+hack.php/a hack.jpg 其中,img.jpg/b中“b”表示“二进制文件”,hack.php/a中“a"表示ASCII码文件,hack.jpg表示生成的新文件的名称。
思路:
将webshell与图片合并后,即可上传,但由于不是 .php文件所以无法执行。此次需要利用文件包含漏洞,修改一句话木马:'); ?> ,再次合成图片,重新上传,然后在DVWA的fileinclusion模块访问http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file:///+“上传文件所在路径“,此时在DVWA文件包含漏洞的路径下便自动生成了PHP一句话木马脚本文件muma.php,到此可使用冰蝎进行连接。
关于上传图片马后如何执行:
php配置不严格,可以将.jpg或其它后缀的文件当作php解析;若配置没问题,可以上传.htaccess,以达到想要的效果 2、结合文件包含漏洞 注:上传成功后可以先测试phpinfo();或其它命令,成功后再用菜刀或蚁剑连接