在Web应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用代码或命令执行执行函数去处理。如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将命令执行漏洞。
RCE分为:代码执行、命令执行
漏洞形成条件: 可控变量、漏洞函数
绕过
linux下绕过空格技巧:
${IFS}
$IFS$9
<
<>
{,}
$IFS在linux下表示分隔符,如果不加{}则bash会将IFS解释为一个变量名, 加一个{}就固定了变量名,$IFS$9后面之所以加个$是为了起到截断的作用 ;为什么要用$9呢,因为$9只是当前系统shell进程的第九个参数的持有者,它始终为空字符串。 不仅\ $9可以使用,其他的数字也都可以正确绕过。
平台:墨者学院