频道栏目
首页 > 资讯 > 系统安全 > 正文

怎样利用追踪代码来发现网站之间的“关联”

17-09-18        来源:[db:作者]  
收藏   我要投稿

前些年Lawrence Alexander颁发了一篇应用Google Analytics查找网页之间的联系关系的文章,客岁,我也宣布了一个对于若何应用Python主动发掘信息,而后将其可视化的帖子,可怜的是Meanpath API被封闭了,以是如许的技巧便不再有用了。
荣幸的是,Spyonweb.com的还在失常供给办事。就在前不久,南非记者Jan Cronje就在尽力地发掘一些他正在研讨的器械的联系关系(点击这里浏览),这是重组曩昔的代码的一个完善的机遇:应用Spyonweb来找到这些衔接,末了再将其可视化。

给你敲代码的手指热热身,并筹备好享用一些兴趣,由于咱们即将要摸索若何应用Python主动发明网页之间的联系关系。
应用SpyOnWeb API
SpyOnWeb.com是一个赓续抓取网站追踪代码,称号办事器和其余信息的网站,以是它能赞助表现网站之间的衔接。他们的API有很多订价层,从收费开端(对付这篇文章,收费的的确完善),一直到每个月69.95美元。
点击这里前去api.Spyonweb.com
在这里注册一个账号,而后主控制面板上就会呈现一个access token,咱们鄙人面的文章中会用到。

要留意的是,你最好不要和其余人同享你的access token,假如你不小心泄漏了,点击上图赤色箭头旁的小按钮,它会为你从新天生access token。
如今咱们有了Spyonweb的access token,接下来便是写代码了。
筹备
在这篇文章里,你必要一些Python库,能够应用pip装置
pip install networkx requests requests[security]
别的,你假如想在末了停止可视化,那就必要额定下载Gephi。
代码与剖析
热热身,启动你最爱好的IDE(我应用的是WingIDE,用着真的不错),新建一个叫website_connections.py的文件,完备源码【点击这里下载】。

第1-5行:咱们正在导入咱们的剧本中所必要的一切相干Python模块。
第7-8行:咱们界说了一个变量spyonweb_access_token,你必要把曩昔获得的access token粘贴到这里,而后咱们界说了一个变量来保留Spyonweb API调用的URL。
第10-11行:这里为Google Adsense和Google Analyse筹备了两个正则表达式形式,咱们将经由过程剧本在目的域名中提取这些代码。
第13-20行:在这里咱们设置命令行参数剖析,以便轻松地通报一个域名,一个包括域名列表的文件,并容许为咱们的图形输入指定的文件名。
咱们如今增长一个简略的函数,它将在绘制曩昔清算追踪代码。让咱们先来看看:

完善!如今咱们咱们开端第一个函数,用于从目的域名间接提取追踪代码。将以下片断增长进代码中:


第38行:咱们界说了extract_tracking_codes函数来接收咱们要遍历的域名列表来履行提取。
第43行以后:咱们开端遍历域名列表(43行),而后在向目的域名发送Web哀求(53行)曩昔构建恰当的URL(50-51行),假如未能胜利衔接,则转到下一个域名(57行)。
第62-64行:假如咱们胜利衔接到目的站点,那末就设置一个空缺列表来保留咱们提取的代码(62行),咱们测验考试应用正则表达式(63行)来找到一切Google Adsense代码,而后对Google Analyse代码做雷同的工作(64行)。
第67-69行:咱们遍历提取代码的列表(67行),而后将其经由过程clean_tracking_code函数将其通报到清算和标准代码部门,接下来测试咱们能否曾经有了这个代码(72行),假如没有,就将其增长到衔接字典中,而后咱们就能够对目的域名停止追踪了。
第82行:咱们前去衔接字典,以便稍后处置成果。
如今咱们构建一个函数来向Spyonweb API发送哀求,如今继承增长以下代码:

第87行:咱们构建spyonweb_request来接管数据,能够是一个域名,追踪代码,也能够是其余支撑的输入,咱们还构建了request_type参数,该参数将组成Spyonweb哀求格局的URL的一部门。
第89-90行:咱们创立一个字典,此中包括Spyonweb的access token,它将在HTTP哀求中传给Spyonweb。
第92行:咱们应用静态构建的URL将哀求发送给Spyonweb,并传入params字典。
第94-102行:咱们停止反省以确保收到一个有用的HTTP相应(94行),假如哀求胜利,就剖析JSON(96行)。而后测试字典成果(98行)来看看咱们能否收到了Spyonweb的有用成果,假如是,前去全部字典。假如没有获得任何成果,就前去None(102行)。
如今咱们将构建一个函数来处置向Spyonweb发送特定哀求的阐发代码。


第107行:咱们界说spyonweb_analytics_codes函数来采纳单个参数衔接,即跟踪代码的字典和它们若何映照到托管它们的域。
第111-120行:咱们开端轮回(111行),而后测试能否为Adsense代码或Analyse代码,一旦确定了范例,就开端设置request_type。
第124行:咱们向Spyonweb API发送哀求来看看能否有其余域名也被映照到了以后的追踪代码。
第126-134行:假如咱们从Spyonweb获获得了有用的成果,那末就会轮回遍历域名,并将其增长到与以后跟踪代码相联系关系的域列表中,实现后,前去更新后的字典。
如今咱们将增长一个函数来从Spyonweb中检索域名申报。域名申报能够奉告咱们与域名相联系关系的其余AdSense或Google Analytics(阐发)代码,和其余能够感兴趣域名的衔接。


第139行:咱们界说spyonweb_domain_reports函数来接管繁多的衔接参数。
第142-143行:咱们设置一个空列表来跟踪咱们反省的域名(142行),并将一切跟踪代码加载到列表中(143行)。
第145-155行:轮回遍历一切的代码(145行),而后轮回遍历与该代码联系关系的每一个域名(147行)。假如咱们尚未反省此域名(149行),就将域名增长到测试列表(151行),而后咱们向Spyonweb发送哀求以获得以后域名的域名申报(155)。
第157-170行:假如咱们从Spyonweb(157行)收到有用的成果,就测验考试反省任何Adsense代码(160行)。假如有Adsense(162行)的成果,那末开端轮回前去一切的Adsense代码(164行),而后将其清算(166行),假如字典中尚未这代码,就将其增长为新密钥(170行)。
第172-178行:咱们轮回与Adsense代码相联系关系的域名(172行),假如尚未跟踪域名(174行),那末将其增长到咱们的衔接字典中,将其与以后跟踪代码相联系关系。
下一段代码与157-170行和172-178行险些雷同(除对Google Analyse代码停止处置),我晓得一些Python纯洁主义者会调进去埋怨说咱们正在反复代码,然则唉,咱们便是在这么做。
接下来咱们就开端增长终极函数,卖力绘制域名之间的衔接并跟踪代码,以后咱们就能够经由过程Gephi或其余对象关上图形文件来反省成果。

第205行:咱们界说了graph_connections函数,它接管衔接字典,肇端域名列表和要输入图形的文件名。
第207行:咱们初始化一个新的networkx Graph对象。
第209-212行:咱们开端轮回衔接字典(209行),而后将跟踪代码增长为图形中的一个节点,以后将选项节点属性设置为“tracking_code”的范例。此属性将容许咱们稍后在Gephi中绘制图形。
第214-227行:咱们轮回查找与以后跟踪代码相联系关系的一切域名(214行),而且反省域名能否是咱们的肇端域名之一(217行),假如是,咱们将域名增长为图中的节点,设置为“源域名”。假如它不是,咱们将节点增长到图中,只将其设置为失常的“域名”(224行)。末了一步是在跟踪代码和域名之间增长一条线(227行)。
第230行:如今咱们曾经增长了一切跟踪代码和域名,并在它们之间绘制了一条线,以后只要应用write_gexf函数将图形写入文件便可。
如今咱们来增长末了的代码段,将一切的函数都绑在一起。曾经险些实现了!

这一小段代码很简略。假如咱们收到一个文件名作为命令行参数,咱们关上该文件,并逐行读取。假如没有,那末咱们只必要剧本中通报的域名参数。

便是如许,你能够尝尝看了。
运转
应用相似以下命令运转:
python website_connections.py --domain southafricabuzz.co.za --graph southafrica.gexf
后果以下:
[*] Checking southafricabuzz.co.za for tracking codes.
[*] Discovered: pub-8264869885899896
[*] Discovered: pub-8264869885899896
[*] Discovered: ua-101199457-1
[*] Trying code: UA-101199457 on Spyonweb.
[*] Trying code: pub-8264869885899896 on Spyonweb.
[*] Found additional domain: www.indiatravelmantra.com
[*] Found additional domain: www.societyindia.com

[*] Discovered new domain: 022office.com
[*] Getting domain report for: indiayatraa.com
[*] Getting domain report for: www.mantraa.com
[*] Wrote out graph to southafrica.gexf
[*] Finished! Open southafrica.gexf in Gephi and have fun!
而后你就能够关上gexf文件来检查细节了,能够看看下方示例视频

看不到,点这里
拓展
你完全能够加强这个脚本,比方,你能够查问Wayback machine来跟踪网站过去的代码,或许能够从Spyonweb递归地哀求来发明的任何新域名的域名申报,这会发生一个大图,不外能够潜伏地增长你的全体笼罩。

 

 

相关TAG标签
上一篇:蓝牙协定破绽漏洞:BlueBorne攻击波及数10亿蓝牙装备
下一篇:怎样将Pastebin里的信息运用在安全研究和威胁情报方面
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站