点击上方「蓝字」关注我们
引言
★
命令执行漏洞是攻击者
随意随意执行系统命令。它属于高危漏洞之一,也属于代码执行的范畴。
命令执行漏洞不仅存在于B/S架构中,同样也存在于C/S架构中。
”命令行执行漏洞示例
一些Web应用程序提供了一些命令执行的操作。比如执行测试网络联通的ping命令,web程序就会调用系统底层的ping命令。如果对用户输入的数据过滤不严的话,就会造成漏洞。执行完ping命令后,紧接着输入&&系统命令,便会执行系统命令。
另外&,||,|等符号也可以将两条命令连接使用。
我们使用dvwa靶机测试,在命令执行漏洞下,执行ip&&ip address,显示IP的详细配置信息。
由此可见,这种漏洞属于高危漏洞。 Web程序如果没有做好过滤,服务器极有可能被攻陷。
开发框架下的命令执行漏洞
Stuts2命令执行漏洞
Stuts被称为Java的三大漏洞之一,黑客和开发者们就像进行一场博弈的游戏。每报出一个命令执行漏洞,就像一个定时炸弹,牢牢抓住用户的心。浪哥列举几个已经修复完的stuts2命令执行漏洞;S2-001,S2-007,S2-008,S2-012,S2-014,S2-015,S2-019...
ThinkPHP命令执行漏洞
ThinkPHP作为国内优秀的PHP开发框架,在5.0,5.1同样也爆发过命令执行漏洞。
总结
命令执行漏洞固然危险,只要在开发中注意以下几点,就能较好的防范命令执行漏洞。
尽量不要使用系统执行命令;
进入执行函数/方法之前,一定要对变量做好过滤,对特殊字符做好转义。
使用动态函数前,确保使用的函数是指定函数之一。
对PHP来说,不能使用完全控制的危险函数,尽量不要使用。
总之,对web程序来说,有用户输入的地方一定做好严格控制,有输入的地方就有可能有漏洞。
领取专属 10元无门槛券
私享最新 技术干货