目录
命令执行漏洞简介:
原因:
未对用户输入进行检查过滤,导致用户输入的参数被应用当成命令来执行。 命令执行漏洞是指应用有时需要调用一些执行系统命令的函数,如:system()、exec()、shell_exec()、eval()、passthru()等函数,代码未对用户可控参数做过滤,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。
危害:
1.
继承
Web
服务程序的权限去执行系统命令或读写文件
2.
反弹
shell
,获得目标服务器的权限
3.
进一步内网渗透
PHP代码执行函数
1.eval
在一些程序语言中,eval 是一个把字符串当作表达式执行而返回一个结果的函数;在另一些之中,它执行多行的代码就好像它们被包括在其中,而不是包括
eval
的这一行。eval
的输入不一定是字符串;在支持句法抽象的语言(如 Lisp)中,eval
的输入将会由抽象句法形式组成。
例子
<?php @eval($_POST['cmd']) ; ?>
eval() 函数传入的参数必须为PHP代码,即要以分号结尾;
弊端:eval函数可以执行任意php代码
2.assert
断言函数