CMS指纹识别技术及应用
simeon
在web***过程中,对目标网站的指纹识别比较关键,通过工具或者手工来识别CMS系统是自建还是二次开发,还是直接使用公开的CMS程序至关重要。通过获取的这些信息来决定后续***的思路和策略。CMS指纹识别是***测试环节一个非常重要的阶段,是信息收集中的一个关键环节。
1.1.1指纹识别技术简介及思路
1. 指纹识别技术
组件是网络空间最小单元,Web应用程序、数据库、中间件等都属于组件。指纹是组件上能标识对象类型的一段特征信息,用来在***测试信息收集环节中快速识别目标服务。互联网随时代的发展逐渐成熟,大批应用组件等产品在厂商的引导下走向互联网,这些应用程序因功能性、易用性被广大用户所采用。大部分应用组件存在足以说明当前服务名称和版本的特征,识别这些特征获取当前服务信息,也即表明该系统采用那个公司的产品,例如论坛常用Discuz!来搭建,通过其robots.txt等可以识别网站程序是采用 Discuz!
2. 指纹识别思路
指纹识别可以通过一些开源程序和小工具来进行扫描,也可以结合文件头和反馈信息进行手工判断,指纹识别主要思路:
(1)使用工具自动判断
(2)手工对网站的关键字、版权信息、后台登陆、程序版本、robots.txt等常见固有文件进行识别、查找和比对,相同文件具有相同的md5值或者相同的属性。
1.1.2指纹识别方式
网上文章对指纹识别方式进行了分析和讨论,根据笔者经验,可以分为以下一些类别:
1.基于特殊文件的md5值匹配
基于web网站独有的favicon.ico、css、logo.ico、js等文件的md5 比对网站类型,通过收集CMS公开代码中的独有文件,这些文件一般轻易不会更改,通过爬虫对这些文件进行抓取并比对md5值,如果一样,则认为该系统匹配。这种识别速度最快,但可能不准确,因为这些独有文件可能在部署到真实系统中会进行更改,那么就会造成很大的误差。
(1)robots.txt文件识别
相关厂商下的cms(内容管理系统)程序文件包含说明当前cms名称及版本的特征码,其中一些独有的文件夹以及名称都是识别cms的好方法,如Discuz官网下robots.txt文件。dedecms官网http://www.dedecms.com/robots.txt文件内容:
Disallow: /plus/feedback_js.php
Disallow: /plus/mytag_js.php
Disallow: /plus/rss.php
Disallow: /plus/search.php
Disallow: /plus/recommend.php
Disallow: /plus/stow.php
Disallow: /plus/count.php
看到这个基本可以判断为dedecms。
(2)计算机md5值
计算网站所使中间件或cms目录下静态文件的md5值,md5码可以唯一地代表原信息的特征。静态文件包括html、js、css、image等,建立在站点静态文件存在的情况下访问,如 Dedecms 官网下网站根目录http://www.dedecms.com/img/buttom_logo.gif图片文件,目前有一些公开程序,通过配置cms.txt文件中的相应值进行识别,如图1所示。
图1对图片文件进行md5计算并配置
2.请求响应主体内容或头信息的关键字匹配
请求响应主体内容或头信息的关键字匹配方法可以寻找网站的css 、js代码的命名规则,也可以找关键字,以及h