Skip to content

1.1信息收集

利用搜索引擎发现信息泄露


[[对信息泄露进行搜索引擎发现侦察|全文]]

测试目标:找出应用程序、系统或组织公开在互联网的敏感设计和配置信息。

使用多个搜索引擎,可带来不同的结果,更加全面。

百度 | Bing | Binsearch.info | Comman Crawl | DuckDuckGo | Google | Internet Archive Wayback Machine | Shodan | Fofa

常见搜索运算符

site inurl intitle intext filetype

Dorking

Google Hacking Database

指纹识别


[[指纹 Web 服务器|全文]]

服务器指纹识别

测试目标:确定正在运行的Web服务器的版本和类型,以便进一步发现任何已知漏洞。

从 Web 服务器中引出一些响应,然后可以将这些响应与已知响应和行为的数据库进行比较匹配

响应头 html源码获取信息

nc -v target port
telnet target port
openssl

发送格式错误的请求

默认错误页面

自动扫描工具

Netcraft | Nikto |Nmap

组件指纹识别

[[指纹 Web 应用程序框架|全文]]

对 Web 应用程序使用的组件进行指纹识别

HTTP 标头 cookie 网页源码 特定文件和文件夹 文件扩展名 错误信息

HTML源码中的线索


[[检查网络服务器图元文件是否有信息泄露|全文]]

分析源码识别隐藏或混淆的路径和功能
提取并映射可能导致更好的了解手头系统的其他信息

Meta FIle

Robots

META Tags

SiteMap

security.txt

humans.txt

Other

网页内容

[[审查网页内容是否存在信息泄露|全文]]

枚举服务器上的所有网站


[[枚举 Web 服务器上的应用程序|全文]]

测试 Web 应用程序漏洞的最重要步骤是找出 Web 服务器上托管了哪些特定 Web 应用程序。许多 Web 应用程序都有已知的漏洞和已知的攻击策略,可以利用这些漏洞和攻击策略来获得远程控制或利用数据。

非标准URL

不同网站关联到不同路径

www.example.com/site1

enumeration

漏洞扫描器 Web 服务器配置错误 并允许目录遍历 网页引用 搜索引擎抓取和索引 site:www.example.com Fuzzing

非标准端口

www.example.com:port1

端口扫描

nmap -Pn -sT -sV -p- target
masscan -p1-65535 --rate=1000 -e tun0 target

虚拟主机

单个 IP 地址可与多个域名关联

*.example.com

DNS 传送

受到限制 值得一试

$ host -t ns www.owasp.org    #识别名称服务器
$ host -l www.owasp.org ns1.secure.net    #向名称服务器请求区域传送   

$ dig @dns-server -x target

DNS 反向(PTR)查询

基于 Web 的 DNS 搜索

Netcraft 查询 DNS 微步 查询 DNS

数字证书

证书上的通用名称 (CN) 和主题备用名称 (SAN) 可能包含一个或多个主机名 N和SAN可以通过手动查看证书获取,也可以通过OpenSSL等其他工具获取:

$ openssl s_client -connect 93.184.216.34:443 </dev/null 2>/dev/null | openssl x509 -noout -text | grep -E 'DNS:|Subject:'

Subject: C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, CN = www.example.org
DNS:www.example.org, DNS:example.com, DNS:example.edu, DNS:example.net, DNS:example.org, DNS:www.example.com, DNS:www.example.edu, DNS:www.example.net

Tools

水泽 nslookup、dig Nessus Nikto nmap 搜索引擎

确定应用入口点


[[确定应用入口点|全文]]

通过请求和响应分析确定可能的入口和注入点

测试人员应该很好地了解应用程序,以及用户和浏览器如何与之同通信

注意传递给应用程序的隐藏表单字段

遍历应用程序时,应该记下 URL、自定义标头、请求/响应正文中的任何有趣的参数,并保存在电子表格。 请求页面 | 代理请求编号 | 有趣的参数 | 请求类型 |

请求内容

确定在何处使用GET 和在何处使用POST 识别 POST 请求中的所有参数 在 POST 请求中,请特别注意任何隐藏参数 识别 GET 请求中使用的所有参数,特别是查询参数 识别查询字符串的所有参数 在识别一个字符串或 POST 请求中的多个参数时需要特别注意的是,执行攻击需要部分或全部参数。测试人员需要识别所有参数(即使已编码或加密)并识别哪些参数由应用程序处理。 还要注意通常看不到的任何其他或自定义类型标头(例如debug: false)。

响应内容

  • 确定新 cookie 的设置 (Set-Cookie标头)、修改或添加位置。
  • 确定在正常响应(即未修改的请求)期间存在任何重定向(3xx HTTP 状态代码)、400 状态代码(尤其是 403 Forbidden)和 500 内部服务器错误的位置。
  • 还要注意使用任何有趣的标头的位置。例如,Server: BIG-IP表示该站点是负载平衡的。因此,如果一个站点是负载平衡的并且一台服务器配置不正确,那么测试人员可能不得不发出多个请求来访问易受攻击的服务器,具体取决于所使用的负载平衡类型。

爬虫

爬取应用执行路径


[[通过应用映射执行路径|全文]]

Map 目标应用程序并了解主要工作流。

Automatic Spidering

爬取应用架构

[[Map 应用框架|全文]]

了解应用程序的架构和使用的技术。