第14天:信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ爬虫&插件项目
本文发布于656天前,本文最后更新于595 天前,其中的信息可能已经过时,如有错误请留言或评论。

知识点

  1. JS前端架构-识别&分析
  2. JS前端架构-开发框架分析
  3. JS前端架构-打包器分析
  4. JS前端架构-提取&FUZZ

解决:

  1. 如何从表现中的JS提取价值信息
  2. 如何从地址中FUZZ提取未知的JS文件
  3. 如何从JS开放框架WebPack进行测试

补充

  • CMS——Discuz、WordPress、Ecshop、蝉知等
  • 前端技术——HTML5、jquery、bootstrap、Vue等

前提

什么是JS渗透测试?

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

JS安全问题

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

流行的Js框架

  • Vue NodeJS jQuery Angular等

如何判定JS开发应用?

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

如何获取更多的JS文件?

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

演示案例

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

浏览器全局搜索分析

快速获取价值信息——搜索关键字如下:

  • src=
  • path=
  • method:"get"
  • http.get("
  • method:"post"
  • http.post("
  • $.ajax
  • http://service.httppost
  • http://service.httpget
  • ......

优缺:时间长,分析麻烦但是比较精准

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

  • 自带功能:Target->sitemap->Engagement tools->Find scripts
  • 官方插件:JS Link Finder & JS Miner
  • 第三方插件:HaE & Unexpected_information
  • 插件加载器:jython-standalone-2.7.2

Unexpected_information

HaE

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

优缺:精准度有所下降,但全自动

FindSomething(推荐)

  • 从表现中JS中提取URL或者敏感数据
  • github地址:https://github.com/momosecurity/FindSomething
  • 该工具是用于快速在网页的html源码或js代码中提取一些有趣的信息的浏览器插件,包括请求的资源、接口的url,请求的ip和域名,泄漏的证件号、手机号、邮箱等信息。

Jsfinder

  • 从表现中JS中提取URL或者敏感数据
  • github地址:https://github.com/Threezh1/JSFinder
  • 一款用作快速在网站的js文件中提取URL子域名的工具,但是时间太久,老版本了很久没更新,不推荐使用。建议使用下方的

URLFinder(推荐)

  • 从表现中JS中提取URL或者敏感数据
  • github地址: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 d:/
      • 结果统一保存
        URLFinder.exe -s all -m 3 -ff url.txt -o d:/

JSINFO-SCAN

  • 从表现中JS中提取URL或者敏感数据
  • github地址:https://github.com/p1g3/JSINFO-SCAN
  • 递归爬取域名(netloc/domain),以及递归从JS中获取信息的工具,和urlfinder差不多。

ffuf-FUZZ(推荐)

  • 爆破找到更多的js文件分析更多的信息
  • github地址:https://github.com/ffuf/ffuf
  • 功能强大的模糊化工具,用它来FUZZ模糊化js文件。
  • 使用时需要js字典
  • 常用使用方法:
    ffuf -w /path/to/wordlist -u https://target/FUZZ

Packer-Fuzzer(推荐)

  • 针对JS框架开发打包器Webpack检测
  • github地址:https://github.com/rtcatc/Packer-Fuzzer
  • 一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具,网站使用了webpack才可使用该工具。
    网站是否使用了webpack可使用findsomething浏览器插件查看。、
  • 常用使用方法:
    • -u(--url)要扫描的网站网址路径,为必填选项,例如:-u https://demo.poc-sir.com;
      python PackerFuzzer.py -u https://demo.poc-sir.com
    • -f(--flag)SSL连接安全选项,当为空时默认关闭状态,在此状态下将会阻止一切不安全的连接。若您希望忽略SSL安全状态,您可使用1命令开启,将会忽略一切证书错误,例如:-f 1;

参考

各种字典下载地址:https://wordlists.assetnote.io

学习内容均来自小迪安全系列课程:http://xiaodi8.com/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇