freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

AuthCov:一款功能强大的开源Web应用程序授权爬行和扫描工具
2019-10-01 15:00:02

a.gif

AuthCov

AuthCov是一款功能强大的开源Web应用程序授权爬行和扫描工具,AuthCov可以使用一个Chrome无头浏览器来爬取你的目标Web应用程序(以预定义的用户身份登录)。­AuthCov可以在爬取过程中,拦截并记录所有的API请求。而在下一个阶段,它又会以另一个用户账号(“入侵者”身份)登录,并使用该身份尝试访问之前拦截和发现到的每一个API以及页面。最后,它会生成一份详细的分析报告,并将所有发现的资源列出。

下面给出的是我们使用AuthCov扫描本地Wordpress实例后生成的样本报告:

功能介绍

1、 支持单页面Web应用以及传统的多页面Web应用。

2、 可处理基于令牌和基于Cookie的认证机制。

3、 以HTML格式生成深度爬取报告。

4、 可在报告中直接查看每一份爬取页面的截图。

工具安装

广大用户首先需要安装Node 10,然后运行下列命令:

$ npm install -g authcov

工具使用

1、 针对需要扫描的待测网站生成一份配置文件:

$authcov new myconfig.js

2、 更新myconfig.js文件中的相应值。

3、 通过运行下列命令测试配置值,并确保浏览器能够成功完成登录:

$authcov test-login myconfig.js --headless=false

4、 爬取目标站点:

$authcov crawl myconfig.js

5、 在爬取过程中尝试入侵目标资源:

$authcov intrude myconfig.js

6、 最终的生成报告将存储在“./tmp/report/index.html”。

选项配置

我们可以在配置文件中进行以下常用配置:

-baseUrl:目标站点的URL基地址,这个地址为爬虫的起点。

-crawlUser:用于爬取网站的用户账号,例如{"username":"admin", "password": "1234"}。

-intruders:用于在爬取过程中入侵API节点和页面的用户身份,例如[{"username": "john", "password":"4321"}, {"username": "Public","password": null}]。

-type:待测Web应用类型,单页面或传统多页面应用。

- authenticationType:用户验证类型,基于令牌或Cookie。

- maxDepth:爬虫的最大爬取深度。

配置登录项

我们有两种方法来在项目的配置文件中配置登录信息。

1、 使用默认登录机制:

"loginConfig":{

  "url":"http://localhost/login",

  "usernameXpath":"input[name=email]",

  "passwordXpath":"input[name=password]",

  "submitXpath":"#login-button"

}

2、 如果登录表单比较复杂,并且需要较多的用户交互,你可以在配置文件中进行如下定义【参考样例】:

"loginFunction": asyncfunction(page, username, password){

    awaitpage.goto('http://localhost:3001/users/sign_in');

    await page.waitForSelector('input[type=email]');

    awaitpage.waitForSelector('input[type=password]');

 

    await page.type('input[type=email]',username);

    await page.type('input[type=password]',password);

 

    await page.tap('input[type=submit]');

    await page.waitFor(500);

 

    return;

  }

此时,别忘了运行下列命令来验证浏览器是否已登录成功:

authcov test-login

代码贡献

单元测试:

$ npm test test/unit

整合测试(首先下载并运行样本App,然后再运行测试):

$ npm test test/unit

项目地址

AuthCov:【GitHub传送门

* 参考来源:authcov,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

# 扫描工具 # 开源工具 # AuthCov
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者