@


本系列侧重方法论,各工具只是实现目标的载体。

命令与工具只做简单介绍,其使用另见《安全工具录》。

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 或其他资产在进行信息收集,从而开展后续渗透。

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 pd time_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 = None
response2 = None if os.path.exists("olddata.csv"):
# 如果文件存在则每次爬取 10 个
df = pd.read_csv("olddata.csv", header=None)
datas = df.where(df.notnull(), None).values.tolist() # 将提取出来的数据中的 nan 转化为 None
requests.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. 信息收集的更多相关文章

  1. ref:web security最新学习资料收集

    ref:https://chybeta.github.io/2017/08/19/Web-Security-Learning/ ref:https://github.com/CHYbeta/Web-S ...

  2. Web信息收集-目标扫描-Nmap

    Web信息收集-目标扫描-Nmap 一.Nmap简介 二.扫描示例 使用主机名扫描: 使用IP地址扫描: 扫描多台主机: 扫描整个子网 使用IP地址的最后一个字节扫描多台服务器 从一个文件中扫描主机列 ...

  3. CTF Show web入门 1——20(信息收集)wp和一些感想

    web1 信息搜集 此题为 [从0开始学web]系列第一题 此系列题目从最基础开始,题目遵循循序渐进的原则 希望对学习CTF WEB的同学有所帮助. 开发注释未及时删除 此题有以上备注,可以想到备注未 ...

  4. Web应用程序信息收集工具wig

    Web应用程序信息收集工具wig   很多网站都使用成熟的Web应用程序构建,如CMS.分析网站所使用的Web应用程序,可以快速发现网站可能存在的漏洞.Kali Linux新增加了一款Web应用程序信 ...

  5. 2019-9-25:渗透测试,基础学习,Hydra BP爆破,js基本知识,banner信息收集笔记

    使用BP和Hydra爆破相关的服务hydra:九头蛇,开源的功能强大的爆破工具,支持的服务有很多,使用hydra爆破c/s结构的服务,使用bp爆破web登陆窗口爆破需要的几个条件,爆破工具+字典字典: ...

  6. Web信息收集-目标扫描-OpenVAS

    Web信息收集-目标扫描-OpenVAS 一.OpenVAS简述 二.部署OpenVAS 2.1 升级Kali Linux 2.2 安装OpenVAS 2.3 修改admin账户密码 2.4 修改默认 ...

  7. Web信息收集之搜索引擎-Zoomeye Hacking

    Web信息收集之搜索引擎-Zoomeye Hacking https://www.zoomeye.org ZoomEye(钟馗之眼)是一个面向网络空间的搜索引擎,"国产的Shodan&quo ...

  8. Web信息收集之搜索引擎-Shodan Hacking

    Web信息收集之搜索引擎-Shodan Hacking 一.Shodan Hacking简介 1.1 ip 1.2 Service/protocol 1.3 Keyword 1.4 Cuuntry 1 ...

  9. Web信息收集之搜索引擎-GoogleHacking

    Web信息收集之搜索引擎-GoogleHacking 一.信息收集概述 二.Google Hacking 2.1 site 2.2 filetype 2.3 inurl 2.4 intitle 2.5 ...

  10. Web安全-信息收集

    信息收集 前言:在渗透测试过程中,信息收集是非常重要的一个环节,此环节的信息将影响到后续成功几率,掌握信息的多少将决定发现漏洞的机会的大小,换言之决定着是否能完成目标的测试任务.也就是说:渗透测试的思 ...

随机推荐

  1. 【rabbitMQ】-延迟队列-模拟控制智能家居的操作指令

    这个需求为控制智能家居工作,把控制智能家居的操作指令发到队列中,比如:扫地机.洗衣机到指定时间工作   一.什么是延迟队列? 延迟队列存储的对象是对应的延迟消息,所谓"延迟消息" ...

  2. 如何在.net6webapi中实现自动依赖注入

    IOC/DI IOC(Inversion of Control)控制反转:控制反正是一种设计思想,旨在将程序中的控制权从程序员转移到了容器中.容器负责管理对象之间的依赖关系,使得对象不再直接依赖于其他 ...

  3. bulkWrite探秘

    MongoDB有很多有趣的内置方法,其中为了批量处理一些写入操作,并且可以按照一定顺序执行,自从3.2版本之后提供了该批量方法:bulkWrite. 它的语法很简单: db.collection.bu ...

  4. 【Leetcode】 #9 回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 - ...

  5. CKS 考试题整理 (14)-启用API Server认证

    Context 由 kubeadm 创建的cluster 的kubernetes API 服务器,出于测试目的, 临时配置允许未经身份验证和未经授权的访问,授予匿名用户 cluster-admin 的 ...

  6. Linux下Redis集群部署

    一.Redis集群介绍 Redis 集群是一个提供在多个Redis节点间共享数据的程序集.Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性 ...

  7. 从头学Java17-Lambda表达式

    Lambda表达式 这一系列教程,旨在介绍 lambda 的概念,同时逐步教授如何在实践中使用它们. 回顾表达式.语句 表达式 表达式由变量.运算符和方法调用组成,其计算结果为单个值.您已经看到了表达 ...

  8. CPython, Pypy, MicroPython...还在傻傻分不清楚?

    哈喽大家好,我是咸鱼 当我们说 Python 时,通常指的是官方实现的 CPython 但还有很多比如 Pypy.Jython.MicroPython.Brython.RustPython 等 &qu ...

  9. 2023-07-08:RabbitMQ如何做到消息不丢失?

    2023-07-08:RabbitMQ如何做到消息不丢失? 答案2023-07-08: 1.持久化 发送消息时设置delivery_mode属性为2,使消息被持久化保存到磁盘,即使RabbitMQ服务 ...

  10. 国内可用的GPT4镜像站

    我做了个镜像站,GPT4的费用目前太贵了. 虽然做了个低价的月费,但基本上亏本在做,接口的实际费用高出太多. 运行了1个月,每天有几十人在用吧. 有兴趣的可以收藏一下 GPT4的验明正身的问题&quo ...