第14天 信息打点-JS 架构&框架识别&泄漏提取&API 接口枚举&FUZZ 爬虫&插件项目

时间轴

939b5d16b65449a88184d6c07582a8b8.png

主要内容

JS前端架构—手工搜索分析

JS前端架构—半自动Burp分析

JS前端架构—自动化项目分析

知识点

JS前端架构—识别&分析

JS前端架构—开发框架分析

JS前端架构—打包器分析

JS前端架构—提取&FUZZ

解决问题:

1、如何从表现中的 JS 提取价值信息

2、如何从 JS 开放框架 WebPack 进行测试

3、如何从地址中 FUZZ 提取未知的 JS 文件

JS介绍

js渗透测试简介

在 Javascript 中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞
JS 开发的 WEB 应用和 PHP,JAVA,NET 等区别在于即没有源代码,也可以通过浏览器的
查看源代码获取真实的点。获取 URL,获取 JS 敏感信息,获取代码传参等,所以相当于
JS 开发的 WEB 应用属于白盒测试(默认有源码参考),一般会在 JS 中寻找更多的 URL
地址,在 JS 代码逻辑(加密算法,APIkey 配置,验证逻辑等)进行后期安全测试。
前提:
web应用可以采用后端或者前端语言开发
-后端语言:php java python .NET 浏览器端看不到真实的源代码
-前端语言:JavaScript(JS)和 JS 框架 浏览器端看到真实的源代码
例子:
zblog:核心功能采用 PHP 语言去传输接受
vue.js:核心功能采用框架语法(JS)传输接受

js安全问题

源码泄漏
未授权访问=JS 里面分析更多的 URL 访问确定接口路径
敏感 key 泄漏=JS 文件中可能配置了接口信息(云应用,短信,邮件,数据库等)
API 接口安全=(代码中加密提交参数传递,更多的 URL 路径)

流行的js框架

Vue、NodeJS、jQuery、Angular 等

简单判定JS开发应用的方法

插件 wappalyzer
源程序代码简短
引入多个 js 文件
一般有/static/js/app.js 等顺序的 js 文件
一般 cookie 中有 connect.sid

获取更多JS文件的方法

手工-浏览器搜索
半自动-Burpsuite 插件
工具化-各类提取&FUZZ 项目

寻找js演示案例方法:

使用网络空间hunter进行搜索vue.js

如何判断是vue.js还是php?

使用wappalyzer去识别,php代码是讲将代码放于后端。vue.js是放置于前端。

www.xiaodi8.com(php):
dd23262c5bcc4507975a267edfd00614.png
f71e2cc955bf4daeba180284dd3d071c.png
对比:vue.js这种语言会把自己的登录逻辑(复杂逻辑)以及操作方法放置在前端。
           php这种就不一定会放在前端。他里面的js就是些简单逻辑。

JS前端架构—手工搜索分析

优点:分析精准

缺点:分析时间长,分析起来麻烦

手工分析模式:

1.先用network。2.用wappalyzer查看框架。3.只看js(vue.js)。4.看admin/login等这种。5.ctrl + shift +f 搜索获取价值信息。

快速获取价值信息

src=

path=

method="get"、method="post"

http.get("、http.post("

$.ajax

http://service.httpget

http://service.httppost

演示案例:

1、找到一个可测试登录平台(用户登录-滕州城建集团),先用Wappalyzer分析出是vue.js框架:

68af90c670e94611a59cbf38ec9bb04d.png

2、F12抓取网络数据包,选取js类型的文件,并在最下方搜索关键词:

133b161fd537486eb84155d583b9883f.png

3、部分搜索出来的代码还需要进行换算分析,才能得到有用的url。(人工分析需要代码基础)

如图:先搜索$.ajax

4212b1ed7bef43d2bbf834cd169cafb6.png

根据上文url在此搜索Service,得到访问地址。

e759922b51a44130a83b7c654b637807.png

JS前端架构—半自动Burp分析

优、缺点:是手工搜索分析和自动化项目分析的综合,分析时间较短,分析较精准

半自动分析模式:

1.打开BP(电脑开启代理)。

2.1Target——Site map——Engagement tools——Find Scripts(自带功能)

2.2Js Link Finder/Js Mine(Extender->BApp store)(官方插件)

2.3在Extention里安装HAE(第三方插件)

演示案例:

自带功能:

1、还是用上面那个平台进行演示,Burp开启代理后抓包,按如下步骤操作:

79f3b70fa3104bfaa6f74f0c2a65e5f2.png

2、可以看到在访问网站时,会触发哪些东西,访问哪些路径:

62e018d03ea24755a35a457b8976f98f.png

官方插件

JS Link Finder & JS Miner

安装方式:

Extender——BApp Store——JS Link Finder & JS Miner——Installing

6a64d1c93603461a81afcb84548a3331.png

第三方插件:

Unexpected_information:

https://github.com/ScriptKid-Beta/Unexpected_information

用来标记请求包中的一些敏感信息、JS接口和一些特殊字段,防止我们疏忽了一些数据包,使用它可能会有意外的收获信息。

HaE:
https://github.com/gh0stkey/HaE
https://raw.githubusercontent.com/ghOstkey/Ha E/gh-pages/Config.yml 基于BurpSuite插件JavaAPI开发的请求高亮标记与信息提取的辅助型插件。该插件可以 通过自定义正则的方式匹配响应报文或请求报文,可以自行决定符合该自定义正则匹配的相应请求是否需要高亮标记、信息提取。

安装演示:

一开始是没有这么多内容,我们需要进行配置:

记得reload加载一下。

在bp抓包时会出现不同的颜色(不同颜色对应不同的信息)

插件加载器

JS前端架构—自动化项目分析

优点:分析时间短

缺点:分析不精准

自动化工具:

1.Findsomething

在扩展中载入已经解压缩的文件夹FindSomething-master(记得打开开发人员模式)

再把FindSomething置顶一下

寻路犬系统测试,可以看到FindSomething加载出来了域名和path等信息

在network中根据findsomething得到的信息进行搜索来获取关键信息。

 2.Jsfinder  —从Js中提取URL或敏感数据

https://github.com/Threezh1/JSFinder

一款用作快速在网站的js文件中提取URL,子域名的工具

在Jsfinder目录下cmd

代码:

python JsFinder.py -u http://xlq.tulaway.cn/

使用后自动提取到一些路径,再根据这些路径逐一进行测试(说不定有意外收获~

3.URLFinder —从Js中提取URL或敏感数据

https://github.com/pingc0y/URLFinder

一款用于快速提取检测页面中JS与URL的工具

功能类似于JSFinder,但JSFinder好久没更新了。

单url使用:

显示全部状态码

URLFinder.exe -u http://www.baidu.com -s all -m 3

显示200和403状态码

URLFinder.exe -u http://www.baidu.com -s 200,403 -m 3

批量url:

结果分开保存

导出全部

URLFinder.exe -s all -m 3 -f url.txt -o .
只导出html
URLFinder.exe -s all -m 3 -f url.txt -o res.html
结果统一保存
URLFinder.exe -s all -m 3 -ff url.txt -o .

JSINFO-SCAN —从Js中提取URL或敏感数据

https://github.com/plg3/JSINFO-SCAN

递归爬取域名(netloc/domain),以及递归从JS中获取信息的工具

ffuf -FUZZ 找到更多的js文件分析更多的信息

https://github.com/ffuf/ffuf

https://wordlists.assetnote.io

功能强大的模糊化工具,用它来FUZZ模糊化js文件

字典下载:

代码(-w为下载的字典名称,-

u为url地址,200为状态码)

ffuf.exe -w httparchive_js_2022_12_28.txt -u http://xlq.tulaway.cn/FUZZ -mc all -fs 42 -c -v
ffuf.exe -w httparchive_js_2022_12_28.txt -u http://xlq.tulaway.cn/FUZZ -mc 200
ffuf.exe -w httparchive_js_2022_12_28.txt -u http://xlq.tulaway.cn/FUZZ -t 200

开始爆破:

Packer—Fuzzer -针对Js框架开发打包器Webpack检测

GitHub - rtcatc/Packer-Fuzzer: Packer Fuzzer is a fast and efficient scanner for security detection of websites constructed by javascript module bundler such as Webpack.

一款针对webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具。

运行代码:

python PackerFuzzer.py -u http://220.132.100.252:30001/

Packer—Fuzzer扫描结果:

运行时遇到bug解决方法:

参考文章:

Packer-Fuzzer软件安装初始python相关库的问题:No module named ‘node_vm2‘&&cannot import name ‘OxmlElement‘ from ‘d_importerror: cannot import name 'oxmlelement' from-CSDN博客

总结修复:

pip3 install -r requirements.txt
pip uninstall python-docx先卸载安装的高版本,在输入pip install python-docx==0.8.11 安装指定版本即可

JS演示案例:

1.先发现为vue.js

2.通过手工分析知道accesskey

3.也可以使用findsomething查看网页获取关键信息。

以上作品为:番薯小羊卷~和李豆豆喵共同创作完成。

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值