第20天:JS信息收集-Web应用JS架构URL提取数据匹配Fuzz接口WebPack分析自动化

news/2024/12/25 8:55:40/
#知识点

1、信息收集-Web应用-JS提取分析-人工&插件*项目

2、信息收集-Web应用-JS提取分析-URL&配置&逻辑

标签

名称

地址

FUZZ测试

ffuf

GitHub - ffuf/ffuf: Fast web fuzzer written in Go

匹配插件(bp)

Hae

GitHub - gh0stkey/HaE: HaE - Highlighter and Extractor, Empower ethical hacker for efficient operations.

JS提取

JSFinder

GitHub - Threezh1/JSFinder: JSFinder is a tool for quickly extracting URLs and subdomains from JS files on a website.

JS提取爬虫(推荐)

URLFinder

GitHub - pingc0y/URLFinder: 一款快速、全面、易用的页面信息提取工具,可快速发现和提取页面中的JS、URL和敏感信息。

WebPack分析

Packer-Fuzzer

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.

JS匹配插件(推荐)

BurpAPIFinder

GitHub - shuanx/BurpAPIFinder: 攻防演练过程中,我们通常会用浏览器访问一些资产,但很多未授权/敏感信息/越权隐匿在已访问接口过html、JS文件等,该插件能让我们发现未授权/敏感信息/越权/登陆接口等。

JS提取

LinkFinder

GitHub - GerbenJavado/LinkFinder: A python script that finds endpoints in JavaScript files

WebPack分析

jjjjjjjjjjjjjs

GitHub - ttstormxx/jjjjjjjjjjjjjs: 爬网站JS文件,自动fuzz api接口,指定api接口(针对前后端分离项目,可指定后端接口地址),回显api响应

JS提取爬虫

FindSomething

GitHub - momosecurity/FindSomething: 基于chrome、firefox插件的被动式信息泄漏检测工具

JS匹配插件

Unexpected_information

GitHub - ScriptKid-Beta/Unexpected_information: Unexpected information 是用于标记请求包中的一些敏感信息、JS接口和一些特殊字段的BurpSuite 插件。

FUZZ字典

字典集合

https://wordlists.assetnote.io

补充知识:

1、在日常渗透测试中,从JavaScript(JS)文件中提取信息是一项关键的步骤,以往有些案例就是通过JS文件中发现的敏感信息从而拿下重要的系统。

2、在JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过浏览器的查看源代码获取部分源代码逻辑。从而获取URL,获取JS敏感信息,获取代码传参等,所以相当于JS开发的WEB应用大部分属于白盒测试(默认有大量源码参考),一般会在JS中寻找更多的URL地址,在JS代码逻辑(加密算法,APIkey配置,验证逻辑等)进行后期安全测试。

一、JS信息收集哪些信息

1、接口URL提取

2、后端地址提取

3、敏感信息提取->如用户名、账号、密码等

4、配置信息提

5、其他信息提取(环境,注释,网站用途等)

二、JS存在的安全问题

1、源码泄漏->代码审计,JS逆向分析

2、未授权访问->JS里面分析出更多的URL->访问url确定接口路径

3、敏感Key泄漏->JS文件中泄露的配置接口信息(云应用oss的ak\sk等信息,短信,邮件,数据库等)

4、API接口安全->代码中如何加密提交、参数如何传递,更多的URL路径

三、流行的Js框架有那些?

Vue NodeJS jQuery Angular等

四、如何判定JS开发应用?

1、插件wappalyzer进行指纹识别

2、源程序代码简短

3、通过检查前端源代码->引入多个js文件

一般有/static/js/app.js等顺序的js文件

一般cookie中有connect.sid

五、如何获取更多的JS文件?

1、手工-浏览器搜索

2、半自动-Burpsuite插件->如:BurpAPIFinder、Unexpected_information、Hae

3、工具化-各类提取工具->如:URLFinder、FindSomething插件、jjjjjjjjjjjjjs、Packer-Fuzzer->FUZZ模糊测试项目(ffuf工具)

六、如何快速获取价值信息?

src=

path=

method:"get"

http.get("

method:"post"

http.post("

$.ajax

http://service.httppost

http://service.httpget

七、实操案例:

1、人工JS中提取URL信息

①访问:www.xiaodi8.com(此站点php传输,不是js前端传输)

②访问:my.sto.cn(此站点用的是js前端传输数据)

③手工信息收集JS

2、从JS中提取到URL信息

URLfinder工具的使用:https://github.com/pingc0y/URLFinder

3、从JS中提取到敏感信息、从JS中提取到配置信息

bp插件APIfinder、HaE使用:

①https://github.com/gh0stkey/HaE

作用:对bp的数据包进行分析,对数据进行筛选

②https://github.com/shuanx/BurpAPIFinder(bp插件,强烈推荐)

作用:与HaE不同的是,APIfinder是直接从JS里面分析

5、从JS中Fuzz提取到更多js文件

作用:在js文件所在的目录,发现更多的js文件,主要原理是根据字典来爆破,获取更多js文件;

案例:http://www.xiaodi8.com/zb_system/script/common.js

①该url的js文件所在的目录为:http://www.xiaodi8.com/zb_system/script

②对js文件所在的目录进行fuzz模糊测试

字典合集:https://wordlists.assetnote.io

6、WebPack打包器信息获取

工具1:https://github.com/rtcatc/Packer-Fuzzer

工具2:https://github.com/ttstormxx/jjjjjjjjjjjjjs(推荐)

这两款工具是具备分析功能,而souredetector(chrome的webpack检测插件)只具备下载器功能

八、工具大全

1、https://github.com/gh0stkey/HaE(bp插件,推荐使用)->bp2022年版本以上才可使用

作用:对bp的数据包进行分析,对数据进行筛选

2、https://github.com/shuanx/BurpAPIFinder(bp插件,强烈推荐)

作用:与HaE不同的是APIfinder是直接从JS里面分析

3、https://github.com/ScriptKid-Beta/Unexpected_information(bp插件)

4、https://github.com/pingc0y/URLFinder工具(强烈推荐)

5、https://github.com/GerbenJavado/LinkFinder(不推荐,了解即可)

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

6、https://github.com/rtcatc/Packer-Fuzzer->webpack打包器

7、https://github.com/ttstormxx/jjjjjjjjjjjjjs(推荐)->webpack打包器

8、https://github.com/momosecurity/FindSomething(chrome插件,推荐)

该工具是用于快速在网页的html源码或js代码中提取一些有趣的信息的浏览器插件,包括请求的资源、接口的url,请求的ip和域名,泄漏的证件号、手机号、邮箱等信息。

9、https://github.com/ffuf/ffuf(FUZZ模糊测试)

用Go编写的快速 Web 模糊测试(FUZZ)程序

作用:在检测到js的目录下,继续爆破查找没有被发现的js,需要用到js字典来枚举


http://www.ppmy.cn/news/1557946.html

相关文章

蓝桥杯刷题——day8

蓝桥杯刷题——day8 题目一题干解题思路代码 题目二题干解题思路代码 题目一 题干 N 架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在 Ti时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di个单位时间,即它最早可以于 Ti时刻开始降落&am…

如何使用 Python 连接 SQLite 数据库?

SQLite是一种轻量级的嵌入式数据库,广泛应用于各种应用程序中。 Python提供了内置的sqlite3模块,使得连接和操作SQLite数据库变得非常简单。 下面我将详细介绍如何使用sqlite3模块来连接SQLite数据库,并提供一些实际开发中的建议和注意事项…

Java重要面试名词整理(一):MySQLJVMTomcat

文章目录 MySQL篇联合索引最左前缀法则索引下推并发事务处理带来的问题事务隔离级别Read Uncommitted(读取未提交内容)Read Committed(读取提交内容 RC)Repeatable Read(可重读 RR)Serializable&#xff08…

单片机:实现数码管动态显示(0~99999999)74hc138驱动(附带源码)

单片机实现数码管动态显示(0~99999999)并使用74HC138驱动 在本项目中,我们将介绍如何在单片机上实现一个八位数码管(显示0到99999999)的动态显示,并使用74HC138解码器来控制数码管的选择。74HC138是一种常…

[x86 ubuntu22.04]双触摸屏的触摸事件都响应在同一个触摸屏上

1 问题描述 CPU:G6900E OS:ubuntu22.04 Kernel:6.8.0-49-generic 系统下有两个一样的 edp 触摸屏,两个触摸屏的触摸事件都响应在同一个 edp 屏幕上。 2 解决过程 使用“xinput”命令查看输入设备,可以看到只有一个 to…

重温设计模式--适配器模式

文章目录 适配器模式(Adapter Pattern)概述适配器模式UML图适配器模式的结构目标接口(Target):适配器(Adapter):被适配者(Adaptee): 作用&#xf…

Linux自动挂载与卸载USB设备

一、实现udev规则 SUBSYSTEMS"block",ACTION"add",RUN{program}"/bin/mkdir /mnt/%k",RUN{program}"/usr/bin/systemd-mount --no-block --collect /dev/%k /mnt/%k" SUBSYSTEMS"block",ACTION"remove", RUN{pr…

asp.net core webapi项目中 在生产环境中 进不去swagger

builder.WebHost.UseUrls 是 ASP.NET Core 中配置应用程序监听 URL 或端口的方法。通过使用这个方法,你可以指定应用程序应该在哪些 URL 上运行,以便接收 HTTP 请求。 1.在appsetting.json中 添加 "LaunchUrl": "http://*:327"2.在…