php一句话木马

测试靶场 pikachu-master

pikachu漏洞平台文件上传漏洞概述

 即将进行利用的文件上传漏洞界面

$SELF_PAGE = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1);

if ($SELF_PAGE = "clientcheck.php"){
    $ACTIVE = array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','active open','','','','active','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
}
$PIKA_ROOT_DIR =  "../../";
include_once $PIKA_ROOT_DIR . 'header.php';
include_once $PIKA_ROOT_DIR.'inc/uploadfunction.php';

$html='';
if(isset($_POST['submit'])){
    $type=array('jpg','jpeg','png');//指定类型
    $mime=array('image/jpg','image/jpeg','image/png');
    $save_path='uploads'.date('/Y/m/d/');//根据当天日期生成一个文件夹
    $upload=upload('uploadfile','512000',$type,$mime,$save_path);//调用函数
    if($upload['return']){
        $html.="<p class='notice'>文件上传成功</p><p class='notice'>文件保存的路径为:{$upload['save_path']}</p>";
    }else{
        $html.="<p class=notice>{$upload['error']}</p>";

    }
}

后台getimagesize.php文件的主要内容

 随意上传一张普通图片,显示上传成功

<?php phpinfo();?>

尝试上传php文件,其中文件内容如上

(构造一句话木马的方式以及具体代码有很多很多,由个人需求而定,CSDN上搜一句话木马php有很多文章,在下在这方面的知识尚不深刻,就不在这班门弄斧了)

反馈结果如上

 对a.php内容不做修改,直接将后缀名改为png,用burpsuite抓包,并将png改成php

修改后点击上传

 可以看到仍然和前面是一样的显示结果

修改后缀名但是不抓包修改内容尝试上传

 

被识破了哈哈 (第一关如上所示可以绕过后端验证,第二关抓包修改请求头里Content-Type的值可以绕过验证)

怎么绕过后端的检测呢,有很多种办法

在这里只介绍GIF89a图片头文件欺骗,这里不一一赘述,好,开搞!

GIF89a<?php phpinfo();?>

将a.png中的内容改成如上图,即在代码前加上了GIF89a。 

 上传成功了,那我们应该怎么检验呢

我们在pikachu看到了使用了include函数的另外一个模块(文件包含漏洞),这就好办了

根据pikachu中多个模块的url分析,最终得出以下路径

../../unsafeupload/uploads/2022/03/30/50444362447a43ad5d8128997197.png

 拼接在File Inclusion模块中就可以得到我们想要的结果,  phpinfo函数可以显示出PHP 所有相关信息。是排查配置php是是否出错或漏配置模块的主要方式之一,只要访问到phpinfo()函数的web页面,即返回php的所有相关信息。

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值