一、命令执行漏洞概述
1、基本定义:命令执行漏洞是指攻击者可以随意执行系统命令,分为远程命令执行(远程代码执行)和系统命令执行
程序应用有时候需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exex、passthru、popen、pro_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击
(1)、用户能够控制函数的输入,例如输入函数中的参数
(2)、存在可以执行代码或者系统命令的函数
(1)、开发人员在编写源码时,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句,并提交到服务端执行
(2)、命令注入攻击中,Web服务器没有过滤类似system、eval和exec等重要函数,是导致改漏洞攻击成功的主要原因
5、命令执行漏洞的危害
6、命令执行的场景
(1)、ping主机
(2)、DNS请求
(3)、Office文档
(4)、框架缺陷,例如:struck2框架
二、管道符号和通用命令符
Linux常用管道符:
;前面的执行完执行后面的
|是管道符,显示后面的执行结果
||当前面的执行出错时执行后面的
Windows常用管道符
&前面的语句为假则直接执行后面的
&&前面的语句为假则直接出错,后面的也不执行
|直接执行后面的语句
||前面出错执行后面的
1、登陆kali,打开终端
2、在终端中输入"whoami;ls",查看";"管道符前后两个命令都正确的结果
3、在终端中输入"whoam;ls",查看";"管道符前面命令错误,后面命令正确的结果
4、在终端中输入"whoami;lss",查看";"管道符前面命令正确,后面命令错误的结果
5、在终端中输入"whoami|ls",查看"|"管道符前后两个命令都正确的结果
6、在终端中输入"whoam|ls",查看"|"管道符前面命令错误,后面命令正确的结果
7、在终端中输入"whoami|lss",查看"|"管道符前面命令正确,后面命令错误的结果
8、在终端中输入"whoami||ls",查看"||"管道符前后两个命令都正确的结果
9、在终端中输入"whoam||ls",查看"||"管道符前面命令错误,后面命令正确的结果
10、在终端中输入"whoami|lss",查看"|"管道符前面命令正确,后面命令错误的结果
1、打开win7
2、打开cmd,输入whoami&net user;&前后命令正确执行
3、输入whoam&net user; &前面命令执行错误,后面命令正常执行
4、输入whoami&net us;&前面的正确执行,后面的错误执行
5、输入whoami&&net user ;&&两边命令正确执行
6、输入whoam&&net user;&&两边命令不能正确执行
7、输入whoami&&net us;&&左边的代码正确执行
8、输入whoami|net user;只显示|后面的命令结果
9、输入whoam|net user;|前面命令错误,导致|后面命令不能被执行
10、输入whoami|net us; |后面命令执行错误
11、输入whoami||net user;显示||前面命令的结果
12、输入whoam||net user;||前面命令错误,显示后面命令执行结果
13、输入whoami||net us;显示||前面的命令执行结果
这篇文章就写到这里了