信息收集


1. 域名信息

判断方法

  1. Kali whois 
  2. https://whoisrequest.com/
  3. https://who.is/

2. 网站架构

1. 空间

https://www.cnblogs.com/QiMing1/p/15702756.html

判断方法:

 

2. 操作系统

  • Linux / Windows

Windows:                   Linux:

  • Win 2000 IIS 6.0               Ubuntu
  • Win 2003 IIS 7.0               CentOS
  • Win 2008 IIS 7.0/7.5
  • Win 2012 IIS 8.0
  • Win 2016 IIS 8.5
  • Win 10     IIS 10.0

判断方法:

  1. 修改大小写

3. Web 服务器 /  Web 容器 / Web中间件

Web 服务器:  Nginx / Apache / IIS

Web 容器: IIS ( ASP容器 )  /  Tomcat( Servlet容器 ) / Jboss ( JEB容器 )

Web中间件: Tomcat / Jboss / Jetty / Weblogic

判断方法:

  1. 根据响应包Serve字段
  2. 根据报错信息判断
  3. 根据默认页面判断

5. 脚本

  • asp / aspx / php / jsp / Python / Java

判断方法:

  1. 查看后缀
  2. 抓包看响应包cookie 字段

6. 数据库

关系型: Access / Mysql -- 3306/ Oracle -- 1521 / Postgresql -- 5432 /  SQL Server --1433 / DB2 -- 5000

非关系型 :  MongoDB -- 27017 / Redis -- 6479 / Memcached -- 11211

注:Access数据库为文件/文档形式,不存在独立的进程,没有默认端口。

判断方法:

  1. 根据端口判断
  2. 根据脚本与数据库的搭配关系判断

Asp -- SQL Server,Access
php -- MySQL,PostgreSQL
Java -- Oracle,MySQL

 3. 根据数据库特有函数判断

len(): SQL Server 、MySQL 以及 db2 返回长度的函数。
length(): Oracle 和 INFORMIX 返回长度的函数。

version(): MySQL 查询版本信息的函数
@@version: MySQL 和 SQL Server 查询版本信息的函数

substring,substr:
MySQL 两个函数都可以使用
Oracle 只可调用substr
SQL Server 只可调用 substring

 4. 根据特殊符号进行判断
   "-- " , "/* */" , " # " 是 MySQL 的注释符, 返回错误则说明可能不是 MySQL
   "-- " 是 Oracle 和 SQL Server 支持的注释符
   ; 是子句查询标识符,Oracle不支持多行查询,若返回错误,则说明可能是 Oracle

7. 前端框架

  • jQuery / BootStrap / Vue / React / Angular

判断方法:

  1. 查看源代码

8. 后端框架

  • Django - Python / Laravel - PHP / Ruby on Rails - Ruby / ExpressJS - NodeJS / CakePHP - PHP / Flask - Python/ Asp.NET - C# / Spring Boot - Java / Phoenix - Elixir/ 

判断方法:

  1. 根据Cookie判断
  2. 根据CSS / 图片等资源的hash值判断
  3. 根据URL路由判断
    • 如wp-admin
  4. 根据网页中的关键字判断
  5. 根据响应头中的X-Powered-By

9. CMS 指纹

判断方法:

  1. https://www.yunsee.cn/
  2. http://finger.tidesec.net/

 


3.IP(CDN / WAF) 

https://www.anquanke.com/post/id/227818

https://www.anquanke.com/post/id/231437

https://www.anquanke.com/post/id/231441

  • 判断CDN
  1. Ping               ( 根据返回的特殊cdn主机名判断 )        https://viewdns.info/ping/domain=www.baidu.com
  2. 多地ping         网址:http://ping.chinaz.com/          http://ping.chinaz.com/
  3. 反查域名 IP,看结果是否有大量不相关的域名存在      https://viewdns.info/reverseip/
  4. nslookup     ( 返回域名解析对应多个 IP 地址,网站则有CDN )  
  5. Wappalyzer 插件
  6. https证书    ( 有的cdn颁发的证书带有cdn名称 )
  7. 观察请求响应的返回数据的头部,是否有 CDN 服务商标识
  8. 若 asp 网站 响应头server字段 不是 IIS、而是 Nginx,则可能使用了 Nginx反向代理 (服务器代理) 到 CDN
  9. 在线检测:https://www.cdnplanet.com/tools/cdnfinder/
  • 绕过CND,寻找真实IP

 1.通过查询 子域名 / CNS 历史记录 / DNS 解析记录 

注:

很多网站只给主域名进行CNS服务,所以可探测其子域名,获得真实IP。但不一定正确,还需进一步确认,扫描同 C 段的 IP 和端口,然后逐个探测判断是否为真实IP。

在网站使用 CDN 服务之前,解析的是真实IP,所以可以查询 DNS 历史记录,看是否能探 测到使用 CDN 之前的 IP。

DNS 解析记录中重点关注 TXT 记录( 保存域名的附加文本信息 )和 SPF 记录(反人伪造域名的垃圾邮件),是否有泄露真实IP。

  2.通过 Email 

  • RSS 订阅
  • 邮箱注册、激活处
  • 邮箱找回密码处
  • 产品更新的邮件推送
  • 某业务执行后发送的邮件通知
  • 员工邮箱、邮件管理平台等入口处的忘记密码

: 一般大型网站部署架设的邮件服务器如果向外部用户发送邮件的话,如果中间未经任何数据处理和防护措施,那么邮件头部的源码中会包含此邮件服务器的真实 IP 地址。

  • 判断WAF
  1. Kali WAF00W
  • 根据WAF类型,进行绕过

4. 子域名 / C段 旁站

1. 子域名收集

基于DNS:

  • https://securitytrails.com/
  • https://rapiddns.io/
  • https://dnslytics.com/
  • https://w-e-b.site/?act=findomain

基于证书:

  • https://transparencyreport.google.com/https/certificates
  • https://crt.sh/
  • https://search.censys.io/

基于爆破:

  • oneforall  python3 oneforall.py  --target baidu.com  run 
  • https://phpinfo.me/domain/
  • http://z.zcjun.com/

2.C段 旁站

方法:

  • http://s.tool.chinaz.com/same
  • http://www.bug8.me/bing/bing.php
  • shodan ip = "192.168.3.1/254"

5.端口

方法:

  • https://nmap.online/
  • https://w-e-b.site/?act=nmap
  • nmap 

6.敏感文件/目录

  1. 后台路径爆破
  2. 爬虫