命令执行及代码执行

  • Post author:
  • Post category:其他




命令执行及代码执行漏洞原理

命令执行和代码执行漏洞是因为在代码中有进行执行的函数,但是有没有对用户可控数据进行过滤,所以形成了这个漏洞。

在执行时的连接符

command1&command2    两个命令同时执行
command1&&command2   只有前面命令执行成功,后面命令才继续执行
command1;command2    不管前面命令执行成功没有,后面的命令继续执行
command1||command2    顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令


命令执行常见函数

  1. system:执行一个外部的应用程序并显示输出的结果。
  2. exec:执行一个外部的应用程序。
  3. shell_exec:执行shell命令并返回输出的结果的字符串。
  4. passthru:执行一个UNIX系统命令并显示原始的输出。
  5. popen():打开到命令参数中指定的程序的管道,如果发生错误,则返回false。
  6. proc_open: 执行一个命令,并且打开用来输入/输出的文件指针。


代码执行常见函数

  1. eval() :把字符串按照 PHP 代码来计算。
  2. assert():判断是否为字符串,是则当成代码执行。php官方在php7中更改了assert函数。在php7.0.29之后的版本不支持动态调用。
  3. call_user_fuc():调用函数。
  4. call_user_fuc_array():调用函数,参数为数组。


判断注入点


1.找到网页命令执行的功能区。

比如这里就是一个ping的功能区。

在这里插入图片描述
2.如果说有源码就在我们上面的常见函数中进行查找,看是否使用了函数。

3.基于各种框架的漏洞,如strut2框架的远程代码执行漏洞。利用exp进行利用。



参考文章


命令执行和代码执行漏洞


聊一聊代码、命令执行



版权声明:本文为m0_51822230原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。