文件包含

远程文件包含:
可以使用kail下的/usr/share/wfuzz/wardlist/vulns下有专门针对类unix或windows系统的目录遍历使用的字典。

文件上传漏洞

设置DWVA安全级别为low

打开DVWA的文件上传功能,正常上传成功效果如下图:

手动导入node_modules_php


现在我们创建一个php文件:

<?php echo shell_exec($_GET['cmd']);?>

手动导入node_modules_php_02


我们尝试上传该php文件。

手动导入node_modules_文件包含_03


上传成功,我们使用该url进行测试,发现被成功执行:

手动导入node_modules_文件包含_04


手动导入node_modules_文件包含_05


手动导入node_modules_手动导入node_modules_06


手动导入node_modules_php_07


我们使用burpsuite将请求过程抓下来。

手动导入node_modules_上传_08

设置DWVA安全级别为medium

先测试上传图片:

手动导入node_modules_php_09


手动导入node_modules_php_10


上传php脚本文件进行测试:

手动导入node_modules_文件包含_11


burp中查看,上传的文件显示为应用程序php脚本文件。

手动导入node_modules_手动导入node_modules_12


我们手动修改参数,将上传类型参数修改为图片,重新提交测试。

手动导入node_modules_文件包含_13


上传成功并能成功运行。

手动导入node_modules_手动导入node_modules_14


手动导入node_modules_php_15

mimetype  1.php #查看文件类型,但从改文件名后缀去欺骗mimetype是无法欺骗的

手动导入node_modules_上传_16

设置DWVA安全级别为high

先上传正常图片:

手动导入node_modules_上传_17


再上传php脚本并修改文件上传类型:

手动导入node_modules_上传_18


手动导入node_modules_手动导入node_modules_19


他这次过滤的是文件扩展名而不是文件类型,所以这样上传失败,此时我们修改上传文件后缀名,上传成功并运行成功。

手动导入node_modules_php_20


手动导入node_modules_php_21


文件头绕过过滤上传webshell:有些文件不仅会通过头信息里面的内容取判断,而且也会判断已传输的body里前面部分内容。

此时可以将php脚本代码替换body后面部分内容。

首先上传正常的图片:

手动导入node_modules_文件包含_22


手动导入node_modules_php_23


手动导入node_modules_手动导入node_modules_24


然后进行访问测试。(此处我测试失败!)

防护方面,出了通过代码去严格控制,还可以用过控制上传目录的权限。这样的话,可以上传文件,但无法执行。