神刀安全网

利用 selenium 和 PhantomJS 写自动渗透工具

想写一个自动渗透工具很久了,毕竟手工测试会消耗大量的时间和精力。

一个全自动的渗透测试工具,无异于一个上好的爬虫+一个上好的判断规则。

但是很多时候,我们需要监听浏览器的 Network 请求,获取一个页面多所有子请求,然后分析每个url。

这是一般的源码分析爬虫无法获取的,很多ajax请求并不能很好的通过正则来获取出来。

这个时候就需要一个基于webkit的爬虫了,起码是带js引擎的。

刚开始入眼的是基于 QtWebkit 的 Ghost.py ,无奈这个环境配置的蛋疼不说,到最后总是在读取复杂页面时候报错。

后来找到了selenium,自动测试利器啊,首先自然是 selenium + chrome,但是每打开一个页面总是有一个chrome的ui弹出来,这点是首先比较蛋疼的,其次关于Network请求的监听,我竟然是用了一个http代理进行的,结果有时候遇到 Connection:Keep-alive 也挂掉了,主要体现在卡在 driver.get() 上,无法获取源码进行下一步操作。

最后换了个浏览器,PhantomJS,解决了这个问题

解决办法是

dcap = dict(DesiredCapabilities.PHANTOMJS) dcap["phantomjs.page.settings.resourceTimeout"] = 10 dcap["phantomjs.page.settings.loadImages"] = False driver = webdriver.PhantomJS(executable_path='/myJobs/myHackTool/phantomjs',desired_capabilities=dcap) 

当然机智的我最后也没有用神器的http代理获取子请求的办法,获取的办法是:

reqMonitoring = json.loads(driver.get_log("har")[0]["message"])["log"]["entries"] 

神器还没写好,但是能够写出这样的爬虫,觉得已经是成功的一半了,跑了几圈,感觉不错,能够挖出大量的url。自然一个好的爬虫还需要基于搜索引擎的挖掘,哎哟卧槽我给忘了,记录到这儿,写代码去了。

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 利用 selenium 和 PhantomJS 写自动渗透工具

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮