pikachu通关教程-RCE

目录

RCE(remote command/code execute)概述:

exec "ping"

管道符

乱码问题


RCE(remote command/code execute)概述:

RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统

分为远程代码和远程命令两种.当对方存在或者提供相应的api接口

exec "ping"

这里介绍一下管道符,因为如果对ping命令功能的设计,没有做好防护,比如可以输入多条命令的时候,我们可以通过管道符做一些意想不到的事情。

管道符

管道符实例描述
;A;B无论真假,A与B都执行
&A&B无论真假,A与B都执行
&&A&&BA为真时才执行B,否则只执行A
|A|B显示B的执行结果
||A||BA为假时才执行B,否则只执行A

当我们正常操作的时候,会出现如下操作:

这时候就可以尝试使用管道符,可以尝试简单的操作127.0.0.1|whoami

这样我们可以拿来进行用户的信息获取和一些操作。

代码分析

if(isset($_POST['submit']) && $_POST['ipaddress']!=null){
    $ip=$_POST['ipaddress'];
//     $check=explode('.', $ip);可以先拆分,然后校验数字以范围,第一位和第四位1-255,中间两位0-255
    if(stristr(php_uname('s'), 'windows')){
//         var_dump(php_uname('s'));
        $result.=shell_exec('ping '.$ip);//直接将变量拼接进来,没做处理
    }else {
        $result.=shell_exec('ping -c 4 '.$ip);
    }

}

通过psot,获取ipaddress,然后对操作系统的类型进行一个判断,然后进行一个ping命令的拼接,这里是没有做任何处理的,我们可以看注释,对此类操做我们可以拆分校验,先做一个判断,就可以很好的防止此类型攻击。

乱码问题

打开对应的php文件,输入下面代码,保存即可。

header("Content-type:text/html;charset=gb2312");

exec "eval"

这里要介绍php中的一个函数eval,会将符合PHP 语法规范字符串当作php代码,执行当我们去尝试输入字符串时,会正常显示,但是当我们输入一个phpinfo(); ,这时候就不一样了。

代码分析

当用户点击了提交按钮,并在 txt 输入框中输入了内容时,把用户输入的 txt 内容当成 PHP 代码执行,如果执行失败或返回值为“假”(比如返回 null 或空),则进入 if 语句块。其实只要不要使用类似的函数即可,或者不要将此方法提供给用户。

$html='';
if(isset($_POST['submit']) && $_POST['txt'] != null){
    if(@!eval($_POST['txt'])){
        $html.="<p>你喜欢的字符还挺奇怪的!</p>";

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值