1.DVWA-【命令执行】-low级别
命令执行功能此处是一个ping命令的提交框,应该是输入任意IP,执行后会进行ping命令操作
在执行ping命令时候,同时执行其他命令的操作。如输入 127.0.0.1 & whoami
可以发现在ping IP的时候,又进行了当前用户的查询。
2.DVWA-【命令执行】-medium级别
首先调整级别是中级,然后,我使用low级别的poc,发现可以命令执行,查看下源代码
查看源代码,发现中级别的将 && 和 ;替换为空,此时我们只要不使用这两个符号就可以了
我们使用 | 或者&的方式输入,发现可以命令执行
3.DVWA-【命令执行】-high级别
先看下high级别的源代码把,发现high级别黑名单过滤的更多的特殊符号
这时候我们发现,特殊符号 “ | ” 的后面有个空格,那么我们在输入命令的时候不添加空格应该达到命令执行的效果,果然不加入空格即可命令执行
4.DVWA-【命令执行】-impossible级别
查看源代码,发现首先token做了 csrf的防护,其次用字符转义,防护注入,最后又对IP进行分割,保证不存在命令执行
5.防御手段
①禁用部分系统函数:
高危系统函数可直接禁用,从根本上避免程序中命令执行类漏洞的出现。
禁用方法:打开PHP安装目录,找到php.ini,查找到disable_functions,添加需禁用的函数名,如:phpinfo()、eval()、passthru()、exec()、system()、chroot()、chgrp()、chown()等
②严格过滤关键字符(管道命令)
③严格限制允许的参数类型
④使用escapeshellarg函数来处理命令函数
⑤使用safe_mode_exec_dir指定可执行文件的路径(php.ini)
防御手段参考 https://blog.csdn.net/weixin_45200712/article/details/109604468
后续在补充