网站指纹是网站b网纹 Web 服务组件在开发时留下的类型、版本等标记信息,分析包括 Web服务器指纹、技巧检测Web运用指纹及前端框架指纹等。手工我们可以通过前端网页和返回一些 HTTP 头信息来判断网站使用的网站b网纹哪些开发框架、服务器、分析系统,技巧检测在渗透测试时也可以提供有针对性的手工测试思路。
一、技巧检测Web 应用技术概览
1.1 架构
大多数 web 应用可以粗略划分为三个组件(component)。手工
1、网站b网纹客户端,分析 大多数情况下是浏览器。
2、技巧检测服务端, Web服务器接收客户端的HTTP请求并进行响应。另外,有时候 Web服务器只转发请求到应用服务器(Application Server),由应用服务器来处理请求。
3、后端存储, 后端存储一般是DBMS,用于查询和存储数据。
所有组件都有不同行为,这些不同行为将影响漏洞的存在性和可利用性。所有组件(无论是客户端还是服务端)都有可能产生漏洞或者其他安全问题。
1.2 客户端技术
主流的客户端技术每天都在被大量互联网用户使用,包括 HTML, JavaScript, Flash … 他们常用的浏览器则是 Chrome, Firefox, Opera, IE/Edge, Safari 等。另外,包括Android应用的 webview 以及部分PC客户端应用(比如QQ或者某些游戏登陆器),也会引入一部分 web 客户端技术。
1.3 服务端技术
在服务端,尽管使用任何技术的任何Web应用都有或多或少的潜在漏洞,但对于某些特定技术(如PHP, Struts2等)的网站,则相对更容易产生漏洞。简单划分的话服务端技术大概有以下几类。
1、Web服务器(Web Server), 包括 Apache, lighttpd, Nginx, IIS.
2、应用服务器(Application Server), 包括 Tomcat, Jboss, Oracle Application server .
3、编程语言, 包括 PHP, Java, Ruby, Python, C#. 对于后三种语言,一些常见的框架包括 Ruby-on-Rails, .Net MVC, Django 等。
1.4 后端存储技术
对于大多数中小型网站,数据库和Web服务器是在同一台主机的。常见的后端存储技术包括:
1、关系型数据库, 包括 MySQL, Oracle, DB2, SQL Server, PostgreSQL, SQLite 等。
2、NoSQL, 包括 MongoDB, CouchDB, Redis 等。
3、目录访问, 包括 openLDAP, Active Directory。
二、Web 服务器指纹分析
2.1 Web 服务器指纹内容
我们想要寻找哪些信息。
1、Web服务器名称,版本
2、Web服务器后端是否有应用服务器
3、数据库(DBMS)是否部署在同一主机(host),数据库类型
4、是否使用反向代理(reverse proxy)
5、是否使用负载均衡(load balancing)
6、Web应用使用的编程语言
2.2 手工检测技巧
2.2.1 HTTP分析
使用chrome开发者工具或者burpsuite交互式抓包分析HTTP数据。
1、重点观察 响应头(Response Header)的 Server, X-Powered-By, Set-Cookie 字段。
2、使用畸形 Host字段的 HTTP请求试探,观察响应头。
比如 Struts2 的特征之一就是会设置特殊的JSESSIONID的cookie字段。
Set-Cookie: JSESSIONID=C09CBBF