首页 » 安全研究 » 正文

DVWA下的文件上传(上)

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 ):将文件移动到指定地址
防御措施:无
测试方法:
本关没有任何保护措施,上传成功后会返回文件路径地址,可直接上传恶意脚本文件进行攻击

1604497812_5fa2b194a5f62a0df4a47.png!small?1604497812914

编写一句话木马,注意后缀。

1604497859_5fa2b1c31b0276ce8852c.png!small?1604497859042

开始上传一句话

1604497949_5fa2b21d3e298874e06af.png!small?1604497949294

显示成功上传,可以到这个路径下去验证

1604498003_5fa2b2532be2e5683108e.png!small?1604498003025

可以看到确实上传成功了,那么我们来试试访问

1604498181_5fa2b3050bcedf9ac2a03.png!small?1604498181067

可以看到,确实可以访问,状态码为200,之所以一片空白,是因为被访问的文件就是写好的hh.php,本来就没有内容。既然可以访问,就要记好这个路径:http://127.0.0.1/hackable/uploads/hh.php

下一步,上中国菜刀:

1604498323_5fa2b3933a332b0f5c7f1.png!small?1604498323220

在空白处右键单击,选添加,然后写入hh/php的访问路径,密码就是hh,由“<?php @eval($_POST[‘hh’]);?>“决定的。最后添加上去

1604498451_5fa2b4135de5664dfe074.png!small?1604498451310

然后选中这天记录,右键单击,选择”文件管理”

1604498608_5fa2b4b09d0d9f59ca485.png!small?1604498608613

哦豁,有点奇怪咯,没连上?

再试试“虚拟终端”:

1604498677_5fa2b4f5553046ddd2c2f.png!small?1604498677282

还没连上,最后再试试数据库管理看看(还没死心)

1604498749_5fa2b53d510ec65e23461.png!small?1604498749259

有毒啊~这个时候一定要头脑清晰

好好想想是哪一步出了错,首先,一句话脚本,就那么简单的一句话,不应该会有问题,再就是访问路径了

可以访问路径也不会有问题的,不用菜刀,直接浏览器是可以访问的,只是被访问的对象本来就没有内容而已。所以,可以排除路径的问题。最后,肯定不是dvwa环境的问题,要是,dvwa有问题,是不可能做到现在这一步的。

那么,真相只有一个!

我有问题。。。

找不出问题是我最大的问题!!!

越是这个时候,心态越不能崩,除了菜刀,还有别的工具可用的,不妨试试,死马当成活马医。

这个工具就是蚁剑

1604499179_5fa2b6ebbbcb41e249931.png!small?1604499179674

话不多说,上操作:

1604499254_5fa2b73654d2b252c84bf.png!small?1604499254302

空白处选择添加数据,一样的url,一样的密码,一样的操作

然后对着这条记录右键单击,选择虚拟终端:

1604499364_5fa2b7a41bf5e55dec65c.png!small?1604499363987

可以看到一些windows系统的信息

然后再看文件管理:

1604499439_5fa2b7efb0665b922c4e4.png!small?1604499439669

最后再来看看,数据操作

1604499495_5fa2b8272c54c9ca61869.png!small?1604499495215

说明,我前面的一句话没写错,路径也没弄错,dvwa环境更没错,所以真正的真相就只有一个!

同样,以上的几个操作,更能验证文件上传漏洞的危害,基本可以说攻击者可以为所欲为了,尤其是那种操作权限开放的,人家直接修改你的数据库或者直接删库。

写在最后

今天先到这里,事情有点多,再加上排错去了,所以时间不够用。后面有空继续,专属我自己的dvwa通关手册即将完成。go!go!go!

本文章属于转载,来自FreeBuf.COM

发表评论