《Web安全基础》02. 信息收集
web
- 1:CDN 绕过
- 1.1:判断是否有 CDN 服务
- 1.2:常见绕过方法
- 1.3:相关资源
- 2:网站架构
- 3:WAF
- 4:APP 及其他资产
- 5:资产监控
本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。
1:CDN 绕过
CDN(Content Delivery Network,内容分发网络)是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
在安全测试过程中,若目标存在 CDN 服务,将会影响到后续的安全测试过程。
CDN 绕过就是要绕过 CDN 服务,找到其主服务器真实 ip。
1.1:判断是否有 CDN 服务
- 通过 ping ip 或域名,看相应时间是否会出现大的变化。
- 通过 nslookup 域名,看是否会有很多节点。
- 网站工具:https://tool.chinaz.com/speedtest
1.2:常见绕过方法
- 通过子域名探测:有的网站主域名会做 CDN,但是子域名可能不会做。
- 邮件服务查询:我们访问别人,可能通过 CND,但别人访问我们通常不会走 CDN。
- 国外地址请求:若国外没有 CND 节点,可能直接走原 ip。
- 寻找遗留文件:扫描全网。
- 黑暗引擎搜索特定文件:shodan 搜索指定 hash 文件。
- DNS 历史记录:第三方接口(接口查询)
- “以量打量”:CDN 节点有流量上限,用光后就会直通原机。这也是一种流量攻击。
- 根据网站的域名备案推测(认为判定)
- 更改本地 HOSTS 解析指向文件:本地清理下 DNS,然后 hosts 里写上得到的 ip 和域名,如果是 cdn 可能会出现刷新异常,如果打开很快大概率是原机。
1.3:相关资源
国内测速:
https://tool.chinaz.com/speedtest
傻蛋(shodan):
https://www.shodan.io
X 情报社区:
https://x.threatbook.com
Ping 检测:
https://ping.chinaz.com
check ip and location:
https://get-site-ip.com
fuckcdn:
https://github.com/Tai7sy/fuckcdn
w8fuckcdn:
https://github.com/boy-hack/w8fuckcdn
实战秒杀 BC 下的 CDN 节点:
https://mp.weixin.qq.com/s?__biz=MzA5MzQ3MDE1NQ==&mid=2653939118&idx=1&sn=945b81344d9c89431a8c413ff633fc3a&chksm=8b86290abcf1a01cdc00711339884602b5bb474111d3aff2d465182702715087e22c852c158f&token=268417143&lang=zh_CN#rd
2:网站架构
网站架构搭建的习惯有以下几种:
- 目录型站点
示例:
www.test.com/dir 与 www.test.com/tql 是两个不同页面或网站
- 端口类站点
示例:
www.test.com:80 与 www.test.com:8080 是两个不同网站
- 子域名站点
示例:
www.test.com 与 blog.test.com 是两个不同网站
- 类似域名站点
示例:
www.test.com 与 www.example.com 是同一个网站
- 旁注站点:同一个服务器上搭建了多个不同的站点。
示例:
在 192.168.10.1 服务器上,搭建了 www.a.com 与 www.b.com 等多个不同站点。
- C 段站点:在同一网段的多个服务器分别搭建了多个不同站点。
示例:
在 192.168.10.1 服务器上,搭建了 www.a.com 与 www.b.com 等多个不同站点。
在 192.168.10.2 服务器上,搭建了 www.c.com 与 www.d.com 等多个不同站点。
相关资源:
同 ip 网站查询:https://www.webscan.cc/
3:WAF
WAF,Web Application Firewall,Web 应用防护系统,也称为:网站应用级入侵防御系统
可以使用 WAFw00f 工具识别 WAF。
工具链接:https://github.com/EnableSecurity/wafw00f
Kali 已经集成了 WAFw00f 工具。
WAF 识别对之后的绕过很有帮助。
4:APP 及其他资产
在安全测试中,若 WEB 无法取得进展或无 WEB 的情况下,需要借助 APP 或其他资产在进行信息收集,从而开展后续渗透。
-
apk 反编译提取信息
使用反编译工具,尝试获取包里的源码、url 信息等。 -
配合抓包工具获取更多信息
使用 burp suite 设置代理,查看 history 记录。或 wireshark 抓包分析。 -
第三方相关探针技术
钟馗之眼:https://www.zoomeye.org/
fofa:https://fofa.info/
傻蛋:https://www.shodan.io/
站长工具:https://tool.chinaz.com/
Nmap -
服务接口相关探针
5:资产监控
- Github 监控:
便于收集整理最新 exp 或 poc
便于发现相关测试目标的资产 - 各种子域名查询
- 枚举爆破或解析子域名
- 相关 DNS、备案、证书等:
发现管理员相关的注册信息 - 全球节点请求,CDN 分析
- 黑暗引擎相关搜索
- 微信公众号接口获取
- 内部群信息获取(社工)
相关资源:
https://sct.ftqq.com/login
https://crt.sh
https://dnsdb.io
https://tools.ipip.net/cdn.php
https://github.com/bit4woo/teemo
https://securitytrails.com/domain/www.baidu.com/history/a
示例:GitHub 监控代码
# Title: wechat push CVE-2020
# Date: 2020-5-9
# Exploit Author: weixiao9188
# Version: 4.0
# Tested on: Linux,windows
# cd /root/sh/git/ && nohup python3 /root/sh/git/git.py &
# coding:UTF-8
import requests
import json
import time
import os
import pandas as pdtime_sleep = 60 # 每隔 20 秒爬取一次while(True):headers1 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400"}# 判断文件是否存在datas = []response1 = Noneresponse2 = Noneif os.path.exists("olddata.csv"):# 如果文件存在则每次爬取 10 个df = pd.read_csv("olddata.csv", header=None)datas = df.where(df.notnull(), None).values.tolist() # 将提取出来的数据中的 nan 转化为 Nonerequests.packages.urllib3.disable_warnings()response1 = requests.get(url="https://api.github.com/search/repositories?q=CVE2020&sort=updated&per_page=10", headers=headers1, verify=False)response2 = requests.get(url="https://api.github.com/search/repositories?q=RCE&ssort=updated&per_page=10", headers=headers1, verify=False)else:# 不存在爬取全部datas = []requests.packages.urllib3.disable_warnings()response1 = requests.get(url="https://api.github.com/search/repositories?q=CVE2020&sort=updated&order=desc", headers=headers1, verify=False)response2 = requests.get(url="https://api.github.com/search/repositories?q=RCE&ssort=updated&order=desc", headers=headers1, verify=False)data1 = json.loads(response1.text)data2 = json.loads(response2.text) for j in [data1["items"], data2["items"]]:for i in j:s = {"name": i['name'], "html": i['html_url'], "description": i['description']}s1 = [i['name'], i['html_url'], i['description']]if s1 not in datas:print(s1)
情欲意识,尽属妄心消杀得,妄心尽而后真心现。
——《菜根谭》(明)洪应明
相关文章:
《Web安全基础》02. 信息收集
web 1:CDN 绕过1.1:判断是否有 CDN 服务1.2:常见绕过方法1.3:相关资源 2:网站架构3:WAF4:APP 及其他资产5:资产监控 本系列侧重方法论,各工具只是实现目标的载体。 命令与…...
ffmpeg根据原始视频的帧率进行提取视频帧
直接上代码,自己编写的。。。有问题可以提 安装教程看这个:https://blog.csdn.net/m0_61497715/article/details/129817641 去官网下个最新的ffmpeg,解压到随便的目录,上级目录最好不要用中文; 然后去设置环境变量&am…...
从零搭建秒杀服务
1. 前言 目的:该项目只用于技术交流,不用于过多商业用途。 适用:可用于简历亮点、毕业答辩等。 2. 项目成果 2.1 秒杀主页 包含5个功能点: ①、Product Name:秒杀商品名称 ②、Product Image:秒杀商…...
数据库应用:CentOS 7离线安装PostgreSQL
目录 一、理论 1.PostgreSQL 2.PostgreSQL离线安装 3.PostgreSQL初始化 4.PostgreSQL登录操作 二、实验 1.CentOS 7离线安装PostgreSQL 2.登录PostgreSQL 3.Navicat连接PostgreSQL 三、总结 一、理论 1.PostgreSQL (1)简介 PostgreSQL 是一个…...
【PHP面试题42】Laravel依赖注入实现的原理是怎么样的
文章目录 一、前言二、什么是依赖注入三、Laravel依赖注入的实现原理3.1 Laravel依赖注入的实现原理:3.2 Laravel依赖注入的代码示例 四、总结 一、前言 本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题,对标…...
如何在本地组策略编辑器中启用或禁用剪贴板历史记录
复制粘贴是我们大家都会做的事情,可能一天要做多次。但是,如果你需要一次又一次地复制同样的几件事,你该怎么办?如何在设备上复制内容? 从Windows 10版本17666开始,微软正在解决这一问题,并将剪贴板提升到一个新的水平,只需按下Win+V,你将获得全新的剪贴板体验。 你…...
如何与ChatGPT愉快地聊天
原文链接:https://mp.weixin.qq.com/s/ui-O4CnT_W51_zqW4krtcQ 人工智能的发展已经走到了一个新的阶段,在这个阶段,人工智能可以像人一样与我们进行深度的文本交互。其中,OpenAI的ChatGPT是一个具有代表性的模型。然而࿰…...
使用Gradio库进行交互式数据可视化:Timeseries模块介绍
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
CONTAINER = ALL是ALTER USER语句的默认值
连接到root时查看有关root,CDB和PDB的数据 当公用用户执行查询时,可以限制X $表和V $,GV $和CDB_ *视图的视图信息。X$表和这些视图包含有关应用程序root及其关联应用程序PDB的信息,或者如果连接到CDB root,则是整个C…...
华为发布大模型时代AI存储新品
7月14日,华为发布大模型时代AI存储新品,为基础模型训练、行业模型训练,细分场景模型训练推理提供存储最优解,释放AI新动能。 企业在开发及实施大模型应用过程中,面临四大挑战: 首先,数据准备时…...
5G网络功能介绍
5G系统架构由以下网络功能(NF)组成 -身份验证服务器功能(AUSF)。 -接入和移动性管理功能(AMF)。 -数据网络(DN),例如运营商服务、互联网接入或第三方服务。 -非结构化数据存储功能(UDSF)。 -网络曝光功能(NEF)。 -网络存储库功能(NRF)。 -网络切片特定身…...
笙默考试管理系统-MyTestMean(13)
笙默考试管理系统-MyTestMean(13) 目录 一、 笙默考试管理系统-MyTestMean 二、 笙默考试管理系统-MyTestMean 三、 笙默考试管理系统-MyTestMean 四、 笙默考试管理系统-MyTestMean 五、 笙默考试管理系统-MyTestMean 笙默考试管理系统-MyTes…...
Tomcat之高可用配置
Nginx搭配Tomcat实现负载均衡 传统模型下,一个项目部署在一台tomcat上,这个时候,假如tomcat因为服务器资源不够,突然挂机了,那么整个项目就无法使用。 Nginx就可以避免单台服务如果挂机,依然能保证服务正…...
IDEA中springboot的热加载thymeleaf静态html页面
1.首先加入开发工具依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency> 2.其次在build maven插件中开启热部署 <bu…...
Java中可以使用哪些系统架构?怎样选择?
架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 Java企业级的应用根据业务的复杂程度,通常使用的系统架构有应用架构、垂直应用架构、面向服务的架构(Service-Oriented Architectu…...
一文详解什么是数据库分片
概要 应用程序正在变得越来越好,它拥有更多的功能、更多的活跃用户,并且每天都会收集更多的数据。但数据库现在导致应用程序的其余部分变慢。数据库分片可能是问题的答案,但许多人不知道它是什么,最重要的是何时使用它。在本文中我…...
百度留痕是什么方法排名的
百度留痕是什么方法排名的,黑帽seo教学:谷歌外推搜索留痕关键词秒收录排名软件技术培训 #外推留痕 #黑帽seo #黑帽seo培训 今天给大家看一个百度留痕的一个链接,东西也很简单,其实就是前面的一个地址加后面的一个你的联系方式,你…...
基于时域特征和频域特征组合的敏感特征集,再利用CNN进行轴承故障诊断(python编程)
1.文件夹介绍(使用的是CWRU数据集) 0HP-3HP四个文件夹装载不同工况下的内圈故障、外圈故障、滚动体故障和正常轴承数据。 2.模型 按照1024的长度分割样本,构建内圈故障、外圈故障、滚动体故障和正常轴承样本集 2.1.计算11种时域特征值 # 计…...
CAD2021安装教程适合新手小白【附安装包和手册】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、下载文件二、使用步骤1.安装软件前,断开电脑网络(拔掉网线、关闭WIFI)2、鼠标右击【AutoCAD2021(64bit)】压缩包选择【解…...
AcWing 107. 超快速排序—逆序对
问题链接: AcWing 107. 超快速排序 问题描述 分析 这道题考查的算法不难,就只是利用归并排序来求逆序对的数量,但是主要是如何分析问题,如何能从问题中看出来和逆序对数量有关,现在的题目基本上很少是那种模板算法题了ÿ…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
Python学习(8) ----- Python的类与对象
Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...
