敏感信息路径信息收集

目录&后台扫描

常用工具

● 7kbscan https://github.com/7kbstorm/7kbscan-WebPathBrute
● DirMap https://github.com/H4ckForJob/dirmap
● dirsearch https://github.com/maurosoria/dirsearch
● Fuzz-gobusterhttps://github.com/OJ/gobuster
● Fuzz-dirbuster OWASP kali自带
●Fuzz-wfuzz https://github.com/xmendez/wfuzz
● Test404轻量后台扫描器+v2.0
● 御剑
● 破壳Web极速扫描器
可以DIY修改相关字典为payload或感觉经常遇到的路径
工具无论再多再好,没有一个好的字典一切都是空谈。强大字典是需要自己平时慢慢的积累。

目录扫描的时候线程可以调小,防止ip被办掉
当然还有另一种方法——爬虫

1.rad

rad一款专为安全扫描而生的浏览器爬虫工具。通过调用Chrome,可以智能爬取各种 Web2.0 网站,模拟人的行为进行点击、输入等,自动事件触发和表单填充,助力漏洞扫描更快一步。

1.基本使用
rad -t http://example.com
2.需要手动登录情况下
rad -t http://example.com -wait-login
3.将爬取结果导出文件
rad -t http://example.com -text-output result.txt
4.与xray联动
xray webscan --listen 127.0.0.1:7777 --html-output proxy.htm
rad -t http://example.com -http-proxy 127.0.0.1:7777

参数配置

exec_path: ""                     # 启动chrome的路径
disable_headless: false           # 禁用无头模式
force_sandbox: false              # 强制开启sandbox;为 false 时默认开启沙箱,但在容器中会关闭沙箱。为true时强制启用沙箱,可能导致在docker中无法使用。
enable_image: false               # 启用图片显示
parent_path_detect: true          # 是否启用父目录探测功能
proxy: ""                         # 代理配置
user_agent: ""                    # 请求user-agent配置
domain_headers:                   # 请求头配置:[]{domain,map[headerKey]HeaderValue}
  - domain: '*'                   # 为哪些域名设置header,glob语法
    headers: {                    # 请求头,map[key]value
      Cookie: somecookie
    }                    
max_depth: 10                     # 最大页面深度限制
navigate_timeout_second: 10       # 访问超时时间,单位秒
load_timeout_second: 10           # 加载超时时间,单位秒
retry: 0                          # 页面访问失败后的重试次数
page_analyze_timeout_second: 300  # 页面分析超时时间,单位秒
max_interactive: 1000             # 单个页面最大交互次数
max_interactive_depth: 10         # 页面交互深度限制
max_page_concurrent: 10           # 最大页面并发(不大于10)
max_page_visit: 1000              # 总共允许访问的页面数量
max_page_visit_per_site: 1000     # 每个站点最多访问的页面数量
element_filter_strength: 0        # 过滤同站点相似元素强度,1-7取值,强度逐步增大,为0时不进行跨页面元素过滤
new_task_filter_config: # 检查某个链接是否应该被加入爬取队列
  hostname_allowed: [ ]            # 允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24、1.1-4.1.1-8
  hostname_disallowed: [ ]         # 不允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24、1.1-4.1.1-8
  port_allowed: [ ]                # 允许访问的端口, 支持的格式如: 80、80-85
  port_disallowed: [ ]             # 不允许访问的端口, 支持的格式如: 80、80-85
  path_allowed: [ ]                # 允许访问的路径,支持的格式如: test、*test*
  path_disallowed: [ ]             # 不允许访问的路径, 支持的格式如: test、*test*
  query_key_allowed: [ ]           # 允许访问的 Query Key,支持的格式如: test、*test*
  query_key_disallowed: [ ]        # 不允许访问的 Query Key, 支持的格式如: test、*test*
  fragment_allowed: [ ]            # 允许访问的 Fragment, 支持的格式如: test、*test*
  fragment_disallowed: [ ]         # 不允许访问的 Fragment, 支持的格式如: test、*test*
  post_key_allowed: [ ]            # 允许访问的 Post Body 中的参数, 支持的格式如: test、*test*
  post_key_disallowed: [ ]         # 不允许访问的 Post Body 中的参数, 支持的格式如: test、*test*
request_send_filter_config: # 检查某个请求是否应该被发送
  hostname_allowed: [ ]            # 允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24、1.1-4.1.1-8
  hostname_disallowed: [ ]         # 不允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24、1.1-4.1.1-8
  port_allowed: [ ]                # 允许访问的端口, 支持的格式如: 80、80-85
  port_disallowed: [ ]             # 不允许访问的端口, 支持的格式如: 80、80-85
  path_allowed: [ ]                # 允许访问的路径,支持的格式如: test、*test*
  path_disallowed: [ ]             # 不允许访问的路径, 支持的格式如: test、*test*
  query_key_allowed: [ ]           # 允许访问的 Query Key,支持的格式如: test、*test*
  query_key_disallowed: [ ]        # 不允许访问的 Query Key, 支持的格式如: test、*test*
  fragment_allowed: [ ]            # 允许访问的 Fragment, 支持的格式如: test、*test*
  fragment_disallowed: [ ]         # 不允许访问的 Fragment, 支持的格式如: test、*test*
  post_key_allowed: [ ]            # 允许访问的 Post Body 中的参数, 支持的格式如: test、*test*
  post_key_disallowed: [ ]         # 不允许访问的 Post Body 中的参数, 支持的格式如: test、*test*
request_output_filter_config: # 检查某个请求是否应该被输出
  hostname_allowed: [ ]            # 允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24、1.1-4.1.1-8
  hostname_disallowed: [ ]         # 不允许访问的 Hostname,支持格式如 t.com、*.t.com、1.1.1.1、1.1.1.1/24、1.1-4.1.1-8
  port_allowed: [ ]                # 允许访问的端口, 支持的格式如: 80、80-85
  port_disallowed: [ ]             # 不允许访问的端口, 支持的格式如: 80、80-85
  path_allowed: [ ]                # 允许访问的路径,支持的格式如: test、*test*
  path_disallowed: [ ]             # 不允许访问的路径, 支持的格式如: test、*test*
  query_key_allowed: [ ]           # 允许访问的 Query Key,支持的格式如: test、*test*
  query_key_disallowed: [ ]        # 不允许访问的 Query Key, 支持的格式如: test、*test*
  fragment_allowed: [ ]            # 允许访问的 Fragment, 支持的格式如: test、*test*
  fragment_disallowed: [ ]         # 不允许访问的 Fragment, 支持的格式如: test、*test*
  post_key_allowed: [ ]            # 允许访问的 Post Body 中的参数, 支持的格式如: test、*test*
  post_key_disallowed: [ ]         # 不允许访问的 Post Body 中的参数, 支持的格式如: test、*test*

2.katana

Katana是一款功能强大的下一代网络爬虫框架,在该工具的帮助下,广大研究人员可以轻松完成资源爬取和渗透测试阶段的信息收集任务。

基础使用

1.单个扫描
katana.exe -u http://example.com
2.多个URL输入
katana.exe -u http://example.com,http://example.com1
参数配置
配置:
-r, -resolvers string[]自定义解析器列表(文件或逗号分隔)
-d, -depth int爬行的最大深度(默认为3)
-jc, -js-crawl在javascript文件中启用端点解析/爬行
-jsl, -jsluice在javascript文件中启用jsluice解析(内存密集型)
-ct, -crawl-duration value在(s, m, h, d)内爬行目标的最大持续时间(默认为s)
-kf, -known-files string允许抓取已知文件(all, robotstt,sitemapxml)
-mrs, -max-response-size int读取的最大响应大小(默认值9223372036854775807)
-timeout int等待请求的时间,以秒为单位(默认为10)
-aff, -automatic-form-fill启用自动填写表单(实验)
-fx, -form-extraction提取表单,输入,文本区域和选择元素在json输出
-retry int重试请求的次数(默认为1)
-代理字符串http/socks5代理使用
-H, -headers string[]自定义头/cookie包含在所有http请求的头中:value format(文件)
-config string武士刀配置文件路径
-fc, -form-config string自定义表单配置文件路径
-flc, -field-config string自定义字段配置文件路径
访问策略(depth-first, width -first)(默认为“depth-first”)
-iqp, -ignore-query-params忽略用不同的查询参数值抓取相同的路径
-tls-impersonate启用实验性客户端hello (ja3) TLS随机化

调试:
-health-check, -hc run diagnostic check up
-elog, -error-log string写入发送请求错误日志的文件

无头:
-hl, -headless启用无头混合爬行(实验)
-sc, -system-chrome使用本地安装的chrome浏览器代替武士刀浏览器
-sb, -show-browser以无头模式在屏幕上显示浏览器
-ho, -headless-options string[]以附加选项启动headless chrome
-nos, -no-sandbox在——no-sandbox模式下启动无头铬
-cdd, -chrome-data-dir string chrome浏览器数据存放路径
-scp, -system-chrome-path string使用指定的chrome浏览器进行无头爬行
-noi, -no-incognito启动无隐身模式的无头chrome
使用在其他地方启动的chrome浏览器实例,调试器在此URL上侦听
-xhr-extraction提取jsonl输出中XHR请求的url、方法

范围:
-cs, -爬虫-scope string[] in scope url regex后面跟着爬虫
-cos, -crawl-out-scope string[] out of scope url regex要被爬虫排除
-fs, -field-scope string预定义作用域字段(dn,rdn,fqdn)(默认为“rdn”)
-ns, -no-scope禁用基于主机的默认作用域
-do, -display-out-scope显示外部端点

过滤器:
-mr, -match-regex string[] regex或在输出url (cli, file)上匹配的regex列表
-fr, -filter-regex string[] regex或要在输出url上过滤的regex列表
-f, -field string输出中要显示的字段(url,path,fqdn,rdn, url,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-sf, -store-field string存储在每台主机输出中的字段(url,path,fqdn,rdn, url,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-em, -extension-match string[]匹配给定扩展名的输出(例如,-em php,html,js)
-ef, -extension-filter string[]过滤给定扩展名的输出(例如-ef png,css)
-mdc, -match-condition string使用基于DSL的条件匹配响应
-fdc, -filter-condition字符串基于DSL条件过滤响应

限速:
-c, -concurrency int要使用的并发获取器的数量(默认为10)
-p, -parallelism int进程的并发输入数(默认为10)
-rd, -delay int请求之间的延迟,以秒为单位
-rl, -rate-limit int每秒发送的最大请求数(默认为150)
-rlm, -rate-limit-minute int每分钟发送的最大请求数

更新:
更新武士刀到最新版本
-duc, -disable-update-check禁用自动武士刀更新检查

输出:
-o, -output string输出文件
-sr, -store-response存储HTTP请求/响应
-srd, -store-response-dir string将HTTP请求/响应存储到自定义目录
-or, -省略-raw从json输出中省略原始请求/响应
-ob, -省略-body从json输出中省略响应体
-j, -jsonl以jsonl格式输出
-nc, -no-color禁用输出内容着色(ANSI转义码)

3.crawlergo

crawlergo是一个使用模式进行URL收集的浏览器爬虫。它对整个网页的关键位置与DOM渲染阶段进行HOOK,自动进行表单填充并提交,配合智能的JS事件触发,尽可能的收集网站暴露出的入口。内置URL去重模块,过滤掉了大量伪静态URL,对于大型网站仍保持较快的解析与抓取速度,最后得到高质量的请求结果集合。

介绍

原生浏览器环境,协程池调度任务
表单智能填充、自动化提交
完整DOM事件收集,自动化触发
智能URL去重,去掉大部分的重复请求
全面分析收集,包括javascript文件内容、页面注释、robots.txt文件和常见路径Fuzz
支持Host绑定,自动添加Referer
支持请求代理,支持爬虫结果主动推送
使用

假设你的chromium安装在 ,开启最大10标签页,爬取AWVS靶场:/tmp/chromium/
bin/crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/

使用代理
bin/crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy socks5://127.0.0.1:7891 h

JS获取敏感接口

在Javascript中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞
JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过浏览器的查看源代码获取真实的点。获取URL,获取JS敏感信息,获取代码传参等,所以相当于JS开发的WEB应用属于白盒测试(默认有源码参考),一般会在JS中寻找更多的URL地址,在JS代码逻辑(加密算法,APIkey配置,验证逻辑等)进行后期安全测试。
如何快速获取价值信息?
src=
path=
method:“get”
http.get("
method:“post”
http.post("
$.ajax
http://service.httppost
http://service.httpget

JSFinder

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

> ● 使用 
> python3 JSFinder.py -u http://www.mi.com 
> python3 JSFinder.py -u http://www.mi.com -d

LinkFinder

该工具通过网站中的JS文件来发现服务端、敏感信息、隐藏控制面板的URL链接等有用信息,可最大化地提高URL发现效率

● 安装
git clone https://github.com/GerbenJavado/LinkFinder.git
cd LinkFinder
python2 setup.py install
● 使用
在线JavaScript文件中查找端点的最基本用法,并将结果输出到results.html:
python linkfinder.py -i https://example.com/1.js -o results.html
CLI输出(不使用jsbeautifier,这使得它非常快):
pyhon linkfinder.py -i https://example.com/1.js -o cli
分析整个域及其JS文件:
python linkfinder.py -i https://example.com -d
Burp输入(在目标中选择要保存的文件,右键单击,Save selected items将该文件作为输入):
python linkfinder.py -i burpfile -b
枚举JavaScript文件的整个文件夹,同时查找以/ api /开头的终结点,并最终将结果保存到results.html:
python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html

js_info_finder

https://github.com/laohuan12138/js_info_finder
一个js文件敏感信息搜集脚本,支持输入url和js文件,也支持批量敏感信息匹配。
在这里插入图片描述

JSFinderPlus

https://github.com/mickeystone/JSFinderPlus

JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。该工具在JSFinder上进行了增强,主要有:
● 多线程爬虫,支持深度爬取(爬取提取出的所有URL)
● 常见高危目录爆破
● 敏感信息(手机号、身份证号码等)识别
● 生成html报告,方便验证
python .\JSFinderPlus.py -u http://xx.xx.xx.xx -d --open

在这里插入图片描述

自动生成报告,点击URL直接查看
在这里插入图片描述

JSINFO-SCAN

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

findsomething

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

可以点击复制到文本文件中配合Burpsuite的intruder爆破路径
查看是否存在未授权访问
也可以通过插件找到的根路径进行springboot、swagger、api等未授权访问的爆破

BurpJSLinkFinder

Burpsuite插件,可以提取JS文件中的敏感路径
在这里插入图片描述

JsApiScan

Burpsite插件,可以提取敏感路径并自动拼接路径返回状态码和返回包大小
在这里插入图片描述

Packer-Fuzzer

针对JS框架开发打包器Webpack检测
https://github.com/rtcatc/Packer-Fuzzer
一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具

网站的结构信息

浏览器插件

通过Google、FireFox等插件的使用,收集网站结构信息
Wappalyzer
在这里插入图片描述

js文件泄露:

用thinkadmin举例。经常翻翻js文件,或许有惊喜哦,有些运维人员有可能把账号和密码放进这里面。
在这里插入图片描述

文件路径,泄漏cms信息:

例如
wordpress框架最常见的/wp-admin
dedecms里面的一些文件,例如data/mysql_error_trace.inc,或许有意想不到的效果.
页面最下方powered by xxx
在这里插入图片描述
在这里插入图片描述

网站报错信息:
例如thinkphp
在这里插入图片描述

网站的ico:
例如thinkphp,或者discuz
在这里插入图片描述

Fastjson/Jackson

在提交JSON数据包中修改测试:
-Fastjson组件会把01解析成1
-Jackson组件在解析01时会抛出异常
https://forum.butian.net/share/1679
理想状态下如果站点有原始报错回显,可以用不闭合花括号的方式进行报错回显,报错中往往中会有Fastjson/Jackson的关键字:
在这里插入图片描述

Fastjson 1.2.70会把NaN解析成0:

Fastjson 1.2.37会抛出异常:
在这里插入图片描述
Jackson会抛出异常:
在这里插入图片描述

Shiro

请求包的cookie中存在rememberMe字段。
返回包中存在set-Cookie:remeberMe=deleteMe。
请求包中存在rememberMe=x时,响应包中存在rememberMe=deleteMe。
有时候服务器不会主动返回remeberMe=deleteMe,直接发包即可,将Cookie内容改为remember Me=1,若相应包有rememberMe=deleteMe,则基本可以确定网站apache shiro搭建的。

在这里插入图片描述

Struts2

一般使用struts2框架后缀带do或action,可以尝试进行利用
在这里插入图片描述

Springboot

1、通过web应用程序网页标签的小绿叶图标
2、通过springboot框架默认报错页面
探测以下路径查看是否存在

/actuator
/auditevents
/autoconfig
/beans
/caches
/conditions
/configprops
/docs
/dump
/env
/flyway
/health
/heapdump
/httptrace
/info
/intergrationgraph
/jolokia
/logfile
/loggers
/liquibase
/metrics
/mappings
/prometheus
/refresh
/scheduledtasks
/sessions
/shutdown
/trace
/threaddump
/actuator/auditevents
/actuator/beans
/actuator/health
/actuator/conditions
/actuator/configprops
/actuator/env
/actuator/info
/actuator/loggers
/actuator/heapdump
/actuator/threaddump
/actuator/metrics
/actuator/scheduledtasks
/actuator/httptrace
/actuator/mappings
/actuator/jolokia
/actuator/hystrix.stream

Solr识别

一般开放8983端口,访问页面也可以探针到

若依框架

在这里插入图片描述

在这里插入图片描述

各类OA(泛微、蓝凌、致远等)

Django

1、识别插件
2、Set-Cookie:expires=

Flask

1、识别插件
2、Set-Cookie:expires=

ThinkPHP:

0、识别插件
1、X-Powered-By: ThinkPHP
2、CMS识别到源码体系TP开发

Laravel:

1、识别插件
2、Set-Cookie中特征的格式

Yii:

1、识别插件
2、Set-Cookie中特征的格式

批量扫描

Ehole

https://github.com/EdgeSecurityTeam/EHole
https://github.com/ShiHuang-ESec/EHole
EHole是一款对资产中重点系统指纹识别的工具,在红队作战中,信息收集是必不可少的环节,如何才能从大量的资产中提取有用的系统(如OA、VPN、Weblogic…)。EHole旨在帮助红队人员在信息收集期间能够快速从C段、大量杂乱的资产中精准定位到易被攻击的系统,从而实施进一步攻击。
在这里插入图片描述

Finger

https://github.com/EASY233/Finger
Finger定位于一款红队在大量的资产中存活探测与重点攻击系统指纹探测工具。在面临大量资产时候Finger可以快速从中查找出重点攻击系统协助我们快速展开渗透。
在这里插入图片描述
常用指纹识别工具有:御剑Web指纹识别、WhatWeb、Test404轻量CMS指纹识别+v2.1、椰树等,可以快速识别一些主流CMS
Github项目
● CMSeeK
● CMSmap
● ACMSDiscovery
● TideFinger
● AngelSword
在这里插入图片描述

搜集到框架之后去各大漏洞库、微信公众号搜索、安全社区找漏洞利用exp或者poc。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值