外链论坛

 找回密码
 立即注册
搜索
查看: 40|回复: 7

利用chrome_remote_interface实现程序化、自动化Web安全测试

[复制链接]

2990

主题

220

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99099172
发表于 2024-8-18 05:13:11 | 显示全部楼层 |阅读模式

倘若要问有那些抓包神器流量分析工具?以下几款工具是必要要提的,burpsuite(跨平台)、fiddler(windows下抓包神器)、wireshark(经典网络抓包工具)、justniffer(与前面几个运用代理获取流量不同样的是,justniffer是基于网卡获取流量)等。以上这几款工具之前我有单独成文介绍过,如有必须可点击蓝色链接移步。  那样倘若问有那些程序化的抓包工具?(注明一下这儿的程序化指的是可编程)首要burpsuite算一个,由于咱们能够研发扩展工具(burpsuite插件研发之检测越权拜访漏洞);另一fiddle算一个,能够编辑配置文件,达到扩展功能,之前介绍过。  那样倘若问有那些能够实现程序化又能够实现自动化的抓包工具?(注明一下这儿的自动化指的是自动产生流量)这个问题有点拗口,你可能会想为何一个抓包工具要负责产生流量,流量交给爬虫岂不是更好?这个问题暂且放一放,继续往下看。

自动化安全测试

平常咱们经常会运用burpsuite等工具检测一个网站的安全性,检测办法不外乎运用浏览器拜访网站且把流量代理到burpsuite上,而后在burpsuite上经过拦截、修改、重放流量等方式测试网站安全性。然而当要测试的网站非常多时,有一个更自动化、更省力的方式去测试呢?方法肯定是有的,简单来讲要实现自动化web安全测试无非要处理几个问题,首要是流量怎么产生?而后是怎么从流量中分析出漏洞?

自动化测试方法:主动扫描器

市面上基于爬虫的主动扫描器便是一种自动化安全测试工具,首要它的流量是经过爬虫爬取url主动产生的,而后利用有些漏洞插件去构造区别拜访请求。短板:日前市面上扫描器爬虫大多基于web1.0,没法加载js渲染网页,而此刻越来越多的网站运用web2.0技术实现前后端数据交互。

自动化测试方法:被动扫描器

  有些大厂内部自研的被动扫描器,首要它的流量不是经过爬虫主动获取的,而是经过监听交换机等网络设备的网卡流量,而后利用有些漏洞插件去分析流量中存在漏洞的点。短板:适合大厂各业务线安全检测不适合测试某个特定的网站,由于必须人为拜访网站产生流量。

自动化测试方法:selenium+流量获取工具+漏洞插件

selenium是一款网站自动化测试工具,能够程序化的操作浏览器,实现自动化产生流量。再结合抓包工具以及漏洞检测插件,应该就能够处理流量获取以及漏洞检测的问题。短板:用selenium只能实现有些简单的浏览器操作,针对检测繁杂的网站系统,似乎不足用,况且速度很慢,性能很差。

自动化测试方法:chrome_remote_interface+漏洞插件

之前我介绍过headless chrome,介绍过phantomjs等web2.0爬虫工具,日前举荐去学习运用headless-chrome。headless chrome工具是用来自动加载js,获取渲染后的页面源码,处理web2.0爬虫之困。而chrome_remote_interface是一个更底层的工具,能够用来分析协议,简单说便是能够分析全部渲染过程,以及截取分析过程中的流量。就类似您打开了chrome浏览器的审查元素功能,而后刷新一下页面,查看一下network信息。

chrome_remote_interface介绍

chrome_remote_interface是一个开源项目,项目位置,并且支持命令行、编码两种方式,且运用node.js研发

安装运用

由于chrome_remote_interface是基于nodejs的,因此呢必须安装npm包管理工具。

1 yum install npm -y

然后创建一个目录,初始化一个项目

1 npm init

在目录下安装chrome_remote_interface

1 npm install chrome-remote-interface

创建一个简单的nodejs程序(nmask.js):

说明:在运行这段程序前,必要要在系统上安装chrome以及起步chrome headless监听模式,详细怎么安装chrome headless能够移步:headless chrome and api

起步chrome headless监听模式:

而后另一开启一个窗口,运行nodejs:

1 node nmask.js https://thief.one

运行结果如下:(输出渲染过程中请求的所有url)

chrome_remote_interface for python

因为chrome_remote_interface是nodejs实现的,因此呢针对熟练nodejs的伴侣来讲coding成本比较高。然而好在已然有外国友人用python封装了一个工具,项目位置,虽然日前此项目尚处在初级周期,但实实在在地处理了我的问题。

安装运用

基于是用python3.5研发的,那样就clone一下项目,直接安装吧:

编写一个python版的程序(nmask.py):

说明:一样的在运行这段代码前,先运行chrome headless监听程序。

而后运行该程序:

1 python nmask.py

说明:运行程序,最后得到渲染过程中请求的url、响应码、响应内容长度。

Chrome Debugging Protocol

无论是nodejs版本的chrome-remote-interface还是python版本的,实现的底层都是基于Chrome Debugging Protocol接口,官方文档,因此呢运用chrome-remote-interface过程中,能够查找一下这个文档。例如python版本中

network__response_received函数,是封装了Chrome Debugging Protocol接口Network.ResponseReceived函数,而此函数接受的参数,以及有些属性办法等都能够在该文档中查找

处理文案开头的问题

文案开头还留了一个问题,有那些能够实现程序化又能够实现自动化的抓包工具?想想chrome-remote-interface能干啥?其一能够运用nodejs、python(可能还有其他语言封装的项目)编程,底层接口文档比较完善;其二用它来写web2.0爬虫,拜访页面产生流量,当然区别web1.0爬虫,这儿的流量是完整的流量,相当于人工打开浏览器拜访网页;其三能够获取流量,并且进行分析。第1点功能实现了程序化,第二三点功能实现了自动化。  最后让咱们回过头看一下前文说到的自动化测试方法–主动扫描器,其短板便是没法处理web2.0爬虫的困境,而chrome-remote-interface恰恰能够处理,发挥下想象力,其前途应该无限!





上一篇:Python术语对照表(下)
下一篇:pbe反作坏处系统没法起步?有什么办法吗?
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-7 12:04:51 | 显示全部楼层
回顾过去一年,是艰难的一年;展望未来,是辉煌的一年。
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-8 02:52:12 | 显示全部楼层
你的话语如春风拂面,温暖了我的心房,真的很感谢。
回复

使用道具 举报

3083

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098788
发表于 2024-10-9 09:13:26 | 显示全部楼层
论坛是一个舞台,让我们在这里尽情的释放自己。
回复

使用道具 举报

3083

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098788
发表于 2024-11-6 23:22:36 | 显示全部楼层
请问、你好、求解、谁知道等。
回复

使用道具 举报

2940

主题

3万

回帖

9997万

积分

论坛元老

Rank: 8Rank: 8

积分
99979445
发表于 2024-11-10 03:29:33 | 显示全部楼层
我们有着相似的经历,你的感受我深有体会。
回复

使用道具 举报

2983

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109240
发表于 7 天前 | 显示全部楼层
感谢楼主的分享!我学到了很多。
回复

使用道具 举报

3083

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098788
发表于 4 天前 | 显示全部楼层
感谢您的精彩评论,为我带来了新的思考角度。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-18 01:45 , Processed in 0.145115 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.