操作系统

1、Web大小写

window不区分大小写

linux区分大小写

可以通过改变文件目录的大小写看看报不报错区分

2、端口服务特征

window3389TCP

linux有22ssh

3、TTL值判断返回

ping看是TTL,一般越大是window,越小是linux(有误差)

IP资产

归属地查询

归属云厂商

IP反查机构

IP反查域名

IP-C段查询

(C段的特点:每个C段能容纳大约256个设备(从 192.168.1.0192.168.1.255))

image-20250218223238422

端口资产

扫描方式

1、网络资产引擎:直接使用网络测绘引擎(Fofa、Hunter、Quake、00信安等搜索IP;此类网络资产测绘引擎都是每隔一段时间会对全网的网络资产去做一个轮询,那可能每个引擎的轮询周期、扫描精准度都不同,故建议可使用不同的搜索引擎以获取更多资产。

(有时间延长)

地址导航:https://dh.aabyss.cn/

参考:https://mp.weixin.qq.com/s/FRgPQKJDj2xRCduwPfZrTw

2、在线端口扫描:百度或google直接搜索在线端口扫描就会有一些网站,同理很多功能都可以直接搜索在线xxx;例如在线正则提取解析、在线编码转换等。(不推荐)

3、本地离线工具:推荐使用Nmap、Masscan、Fscan、KScan,其中Nmap最为准确,但最慢;Masscan最快,误报相对更高。

端口扫不到问题:

1、防火墙 入站策略 白名单

换协议(几率性绕过)

2、内网环境 扫的只是中转服务器

借助漏洞进行反链

应用服务

image-20250218230428693

image-20250218230438921

image-20250218230446966

image-20250218230453047

image-20250218230459073

image-20250218230505981

image-20250218230515546

image-20250218230522954

子域名:

在后续测试中,还要注意对子域名进行筛选整理,太多的垃圾子域名和没用的子域名,主要看你的收集的子域名方法决定。
1、DNS数据(推荐)
以DNS解析历史记录查询域名资产(dnsdumpster
2、证书查询
以SSL证书解析查询域名资产(CertificateSearch
3、网络空间
多网络空间综合型获取的记录
4、威胁情报
各类接口的集成的记录
5、枚举解析
结果主要以字典决定
https://github.com/knownsec/ksubdomain
https://github.com/shmilylty/OneForAll
6、JS提取子域

CDN影响

1.传统访问:用户访问域名–>解析服务器IP–>访问目标主机
2.普通CDN:用户访问域名–>CDN节点–>真实服务器IP–>访问目标主机
3.带WAF的CDN:用户访问域名–>CDN节点(WAF)–>真实IP–>访问目标主机

CDN真实ip寻找

常见方法:
子域名,邮件系统,国外访问,证书查询,APP抓包,网络空间
通过漏洞或泄露获取,扫全网,以量打量,第三方接口查询等

  1. 查询历史DNS记录:通过查询历史DNS记录,可以找到使用CDN前的IP地址。常用网站有DNSDB、微步在线、Netcraft、ViewDNS等。
  2. 查询子域名:一些网站可能只对主站或流量大的子站点使用CDN。通过查询子域名对应的IP地址,可以辅助找到网站的真实IP。常用工具包括微步在线、Dnsdb查询法、Google搜索等。
  3. 网络空间引擎搜索:利用网络空间搜索引擎(如Shodan、Fofa、ZoomEye)搜索特定关键词或特征,可以找到使用CDN的网站的真实IP地址。
  4. SSL证书:扫描互联网获取SSL证书,进而找到服务器的真实IP。Censys是一个用于搜索联网设备信息并扫描整个互联网的强大工具。
  5. HTTP标头:通过比较HTTP标头来查找原始服务器。例如,使用SecurityTrails平台搜索特定HTTP标头。
  6. 网站源代码:浏览网站源代码,寻找独特的代码片段或隐藏的IP地址信息。
  7. 国外主机解析域名:由于一些CDN服务在国外地区可能无法提供完整的保护,使用国外的主机直接访问目标网站可能会获取到真实IP地址。
  8. 遗留文件:如phpinfo页面泄露,可能会显示服务器的外网IP地址。9. 漏洞探针:利用网站上的漏洞(如SSRF漏洞)让VPS获取对方反向连接的IP地址。
  9. 网站邮件订阅:查看RSS邮件订阅的邮件源码,通常包含服务器的真实IP地址。
  10. 全网扫描:使用Zmap、Masscan等工具对整个互联网进行扫描,针对扫描结果进行关键字查找,获取网站真实IP。
  11. 解码F5 LTM负载均衡器:当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码,可以获取到真实IP地址。
  12. 利用MX记录:如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。
  13. 利用favicon.ico:查看网站的favicon.ico文件,通过其唯一的hash值进行识别,有时可以找到与网站相关的真实IP地址。
  14. 配置错误:检查CDN的配置细节,有时小小的配置错误就可能导致CDN防护被绕过。例如,CDN只配置了www域名,而直接访问非www域名可能获取到真实IP。
  15. 协议差异:如果站点同时支持http和https访问,而CDN只配置了https协议,那么访问http可能获取到真实IP。
  16. 利用网站功能:通过网站提供的某些功能(如邮箱注册、找回密码等),让网站主动暴露真实IP地址。
  17. 搜索引擎查询:利用搜索引擎的特定查询语法(如site:和inurl:),结合目标网站的信息,可能找到与网站相关的真实IP地址。
  18. 子域名挖掘机:输入域名即可基于字典挖掘子域名,通过查找子域名的IP地址来辅助找到网站的真实IP。20. IP库查询:使用IP库(如纯真数据库)来查询IP段,结合网站特征进行爆破,可能找到真实IP地址。

具体常见用法

#某应用-CDN绕过-主动漏洞&遗留文件&综合查询

配置加速选项中只加速主域名,导致其他子域名未加速(解析IP可能同IP也可能C段)

1、国外接口访问

2、子域名解析IP

3、综合查询(历史记录,证书记录等)

综合接口查询:https://get-site-ip.com/
综合接口查询:https://fofa.info/extensions/source
使用网络空间&第三方功能集合查询判断

#某应用-CDN绕过-主动漏洞&遗留文件&邮件系统

1、漏洞如:SSRF RCE等

利用漏洞让对方真实服务器主动出网连接,判断来源IP即真实IP

2、遗留文件:phpinfo类似功能

通过访问类似PHPINFO类似代码函数获取本地IP造成的地址泄漏

3、邮箱系统:

判断条件:发信人是当前域名邮件用户名
-让他主动给你发:
部署架设的邮件服务器如果向外部用户发送邮件的话,
那么邮件头部的源码中会包含此邮件服务器的真实IP地址。
常见的邮件触发点有:
1、RSS订阅
2、邮箱注册、激活处
3、邮箱找回密码处
4、产品更新的邮件推送
5、某业务执行后发送的邮件通知
6、员工邮箱、邮件管理平台等入口处的忘记密码
-你给未知邮箱发:(需要自己的邮件服务器不能第三方)
通过发送邮件给一个不存在的邮箱地址,因为该用户邮箱不存在,所以发送将失败,并且还会收到一个包含发送该电子邮件给你的服务器的真实IP通知。

#某应用-CDN绕过-全网扫描

案例1:结合关键字固定IP段找真实IP

1、判断加速厂商
2、IP库筛地址段
3、配置范围扫描
厂商查询:
https://cdn.chinaz.com/
https://tools.ipip.net/cdn.php
工具项目:
https://www.cz88.net/geo-public
https://github.com/Tai7sy/fuckcdn

案例2:ico筛选资产+特征端口找真实IP

https://mp.weixin.qq.com/s/fAbKQsTE0jzUnMWqOkDjMA

框架识别

#Python-开发框架-Django&Flask

Django

1、识别插件
2、固定的数据包格式:Set-Cookie:expires=

Flask

1、识别插件
2、固定的数据包格式:Etag: “flask X-Powered-By: Flask

Tornado

1、识别插件
2、固定的数据包格式:Server: TornadoServer

#JavaScript-开发框架-Vue&Node.js

Vue

1、识别插件
2、JS语法和加载文件

Node.js

1、识别插件
2、固定的数据包格式:ETag: W/“

#PHP-开发框架-ThinkPHP&Laravel&Yii

ThinkPHP:

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

Laravel:

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

Yii:

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

#Java-框架组件-Fastjson&Shiro&Solr&Spring

52类110个主流Java组件和框架介绍:
https://blog.csdn.net/agonie201218/article/details/125300729

框架:

Struts2

一般使用struts2框架后缀带do或action,可以尝试进行利用

SpringBoot

1、默认web应用标签小绿叶图标
2、通过springboot框架默认页面
3、ICO源码体系采用SpringBoot开发

组件:

FastJson/Jackson

在提交JSON数据包中修改测试:
-FastJson组件会把01解析成1
-Jackson组件在解析01时会抛出异常
https://forum.butian.net/share/1679

Shiro

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

Solr识别

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