命令执行原理:
设计者在编写代码时没有做严格的安全控制,导致攻击者通过接口或相关参数提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器 。
代码执行原理:
没有对对接口输入的内容进行严格判断,造成攻击者精心构造的代码非法执行。
命令执行测试方法
& && | ||
windows示例
一个 & 符合 两边都执行
两个 && 符合 前面的命令执行
一个 | 符号 后面的命令执行
两个|| 符合 两边都执行
linux示例
一个 & 执行后面命令
两个 && 都执行
一个 | 执行后面命令
两个 || 执行前面命令
命令执行一般出现在哪里?
只要带参数的地方都可能出现命令执行漏洞 常见的路由器、防火墙、入侵检测、自动化运维平台
pikachu 演示
DVWA演示
等级低 查看源码并没有对数据做过滤
等级中 源码把 && 和 ; 进行替换为空
级别高 将 管道和空格 替换为空 构造payload 为 '|| ' 处理后就变成了 0.0.0.0 | dir
如何挖掘命令执行漏洞?
(1)执行系统命令: assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,``(反单引号) (2)代码执行与加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13 (3)文件包含与生成: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite (4).htaccess: SetHandler, auto_prepend_file, auto_append_file
下面是墨者的靶场可以去挑战一下。
https://www.mozhe.cn/bug/detail/T0YyUmZRa1paTkJNQ0JmVWt3Sm13dz09bW96aGUmozhe
https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe
https://www.mozhe.cn/bug/detail/d01lL2RSbGEwZUNTeThVZ0xDdXl0Zz09bW96aGUmozhe