第四课认识命令行注入与案例

1

  命令行注入:指web应用程序中调用了系统可执行命令的函数,而且输入参数是可控的,如果黑客拼接了注入命令,那么就可以执行dos命令之类的操作指令了

  2【原理】

在应用程序开发过程中,使用了一些函数来执行系统指令,在没有做好过滤的情况下,导致外 部用户通过拼接参数到命令中,产生注入漏洞。

  注入条件:

  1、客户端输入值作为拼接到参数中;

  2、没有足够的条件过滤;

  3、应用系统中有相关**函数的引用

  3【漏洞影响】

  1、继承web服务器程序权限(web用户权限),便可去执行系统命令

  2、继承web服务器权限,便可读写文件等

  3、反弹shell

  4、控制整个网站

  5、控制整个服务器

  常见的指令拼接符案例

在命令行注入时经常会使用的拼接符 |、&和;符。

1、| 符:管道符“|”上一条命令的输出,作为下一条命令参数(command1|command2 )

1.1 如 ping www.*****.com | ls

1.2 注意:当command1执行报错时,结果会打印command2的结果以及command1的错误信息

  2、&符:&放在启动参数后面表示设置此命令在后台运行

2.1 如 cp –R /home/happen /backup/happen/ &

2.2 在命令注入漏洞中&符解析成 command1 & command2(表示先执行command1后执行 command2)

  3、;符:command1;command2(命令从左到右顺序执行)

  4、在命令行注入时经常会使用的拼接符||和&&

4.1 || 符:command1||command2(当左边为假时执行右边命令)

4.2 &&符: command1&&command2(当左边为真时执行右边命令

  。【常见类型绕过方法】

  1、在Web程序中有对空格过滤的情况,如下图1-1

图1-1

  绕过方式有:

,%20(space),%09(tab),$IFS$9, I F S , {IFS},IFS如图1-2

图1-2

  在Web程序中有对关键词cat命令过滤的情况,如图1-3

图1-3

  cat绕过方式有:

2.1 less或more或tail命令绕过图1-4

图1-4

  2.2 注入一句话木马:

127.0.0.1&echo "">>

  通过反斜杠或链接符绕过

反斜杠:ca\t fl\ag.php

链接符:ca"t fla"g.txt

(本章完)

相关推荐