基于AST的 *** ONP劫持自动化挖掘(带工具)

访客3年前黑客工具1087

0x01 *** ONP劫持简介

*** ONP利用 script标签的跨域能力实现跨域数据的访问。请求动态生成的 *** 脚本同时带一个callback函数名作为参数。服务端收到请求后,动态生成脚本产生数据,并在代码中以产生的数据为参数调用callback函数。

*** ONP劫持,就是在受害不知情的情况下,访问了攻击者的网站,攻击者通过 *** ONP接口获取用户在其它网站的敏感信息。

因此通常用做:

  • 敏感信息泄露引发的精准诈骗。

  • 防守方的溯源能力之一,如在蜜罐中获取攻击者画像。

0x02 AST简介

AST (Abstract Syntax Tree,抽象语法树) 是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构。因此相同含义的代码,即使在不同形式的实现方式下,在AST层面是统一的。

在 AST 层面的统一和一致,是传统的正则匹配所做不到的。使我们可以很轻易的解决下面几种情况:

0x03 *** ONP漏洞挖掘

Koalr师傅的分享非常好 https://koalr.me/post/a-tour-of-xray/。

手工挖掘 *** ONP漏洞时,主要分为以下几步:

  1. 找jsonp接口

  2. 检查响应是否包含敏感信息

  3. 绕referer

在做自动化挖掘时,我们应该主要考虑以下几个问题:

  1. 优秀的爬虫(使用crawlergo)

  2. 筛出js资源:通过content-type即可判断。参考chrome。https://github.com/chromium/chromium/blob/fc262dcd403c74cf3e22896f32d9723ba463f0b6/third_party/blink/common/mime_util/mime_util.cc#L42

    const char* const kSupportedJavascriptTypes[]={
        "application/ecmascript",
        "application/javascript",
        "application/x-ecmascript",
        "application/x-javascript",
        "text/ecmascript",
        "text/javascript",
        "text/javascript1.0",
        "text/javascript1.1",
        "text/javascript1.2",
        "text/javascript1.3",
        "text/javascript1.4",
        "text/javascript1.5",
        "text/jscript",
        "text/livescript",
        "text/x-ecmascript",
        "text/x-javascript",
    };
  3. 解析js类型资源,检查query中的每个key,是否满足jsonp的特征。正则大法好:
    (?m)(?i)(callback)|(jsonp)|(^cb$)|(function)
  4. referer配置为同域,请求js获取响应。

  5. 将 *** ONP响应解析成AST,如果生成的AST满足以下条件即可认定存在 *** ONP漏洞。

    一、Callee.Name==callback函数名

    二、检查是否存在敏感信息:递归遍历AST 获取所key和value,是否满足满足正则(?m)(?i)(uid)|(userid)|(user_id)|(nin)|(name)|(username)|(nick),且value不为空

  6. 替换Referer后再请求一次,重新验证步骤5。

0x04 工具使用方式

通过golang实现了以上逻辑:https://github.com/jweny/check_jsonp_based_on_ast

本组件未单独提供爬虫,须结合爬虫使用(推荐crawlergo),将爬虫的js资源直接用工具检测即可。

项目中提供了一个jsonp的漏洞环境,如需自取。

入参:js uri

返回:是否存在漏洞(bool型,true为存在漏洞),err

例:

result, err :=CheckSenseJsonp("http://127.0.0.1/jsonp_env/getUser.php?id=1&jsoncallback=callbackFunction")

0x05 参考链接

https://www.codercto.com/a/65644.html

https://koalr.me/post/a-tour-of-xray/

相关文章

冈本多绪裸(冈本多绪)

还是冈本多绪有没有参演金刚狼3?她没参演金刚狼3,至于她看没看恐怕只有她自己知道,题外话,冈本多绪真的很不错本回答由网友推荐抢首赞已赞过已踩。 中文名冈本多绪外文名TaoOkamoto国籍日本民族和族...

无形资产包括哪些?它的特征有哪些?

什么是无形资产? 答:无形资产是指企业为生产商品或者提供劳务、出租给他人、或管理目的而持有的、没有实物形态的非货币性长期资产。无形资产分为可辨认无形资产和不可辨认无形资产。 无形资产的特征是什么?...

天猫保证金多少钱一年,2020年天猫类目保证金一览表

天猫保证金多少钱一年,2020年天猫类目保证金一览表

双十一立刻就需要到来了,2020年的双十一不清楚又会多少钱的成交额,可是每一年的发展趋势全是再涨的,这一大家都无需去猜疑。正由于电子商务的发展趋势这般之快,也让必须天猫店的人愈来愈多,今日,我也给...

荣耀v10自动重启解决

系统版本为EMUI10.1.0.92,荣耀v10自动重启的解决方法:      1、系统软件冲突,将不必要的软件删除。      2、手机中毒,使用手机管家查杀病毒即可。      3、版...

黑客qq接单群免费_找黑客同步老公微信聊天记录-怎么找国外黑客

「黑客qq接单群免费_找黑客同步老公微信聊天记录-怎么找国外黑客」假定GET/POST/COOKIE一起提交的参数id,服务端接纳参数id的次序是什么样呢?function GetEndChat($c...

儿童卡通手表价格表(皇冠swl手表促销价钱)

暗盘儿童卡通手表价值表价值查询购置销售公司 儿童卡通手表芙蓉红款几多   657100/元     菏泽二肢瓶子商业公司   皇冠swl手表粉红版报价   129700/元     济宁丑旦技校...