命令执行漏洞

原理

命令执行原理:编写代码时没有做严格的安全控制,攻击者通过接口或相关参数提交“意想不到”的命令,后台进行执行,控制整个后台服务器

代码执行原理:没有对对接口输入的内容进行严格判断,攻击者精心构造的代码非法执行

参数的地方都可能出现命令执行漏洞,常见的路由器、防火墙、入侵检测、自动化运维平台脚本需要使用一些自动执行命令

防御

对变量进行校验,过滤特殊符号&,&&,|,||

token验证

攻击方法

黑盒测试:&,&&,|,||

命令执行漏洞_第1张图片

命令执行漏洞_第2张图片

命令执行漏洞_第3张图片

命令执行漏洞_第4张图片

命令执行漏洞_第5张图片

白盒测试:挑关键函数看

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

struts2命令执行漏洞示例

用K8工具 看S2-045漏洞

命令执行漏洞_第6张图片

传文件

命令执行漏洞_第7张图片

命令执行代码查看,抓包显示命令在content-type里面

命令执行漏洞_第8张图片

常见的struts2漏洞

命令执行漏洞_第9张图片

你可能感兴趣的:(it,安全)