1.什么是CMS

内容管理系统(英语:content management system,缩写为 CMS)是指在一个合作模式下,用于管理工作流程的一套制度。该系统可应用于手工操作中,也可以应用到电脑或网络里。作为一种中央储存器(central repository),内容管理系统可将相关内容集中储存并具有群组管理、版本控制等功能。版本控制是内容管理系统的一个主要优势。

内容管理系统在物品或文案或数据的存储、掌管、修订(盘存)、语用充实、文档发布等方面有着广泛的应用。现在流行的开源CMS系统有WordPress、Joomla!、Drupal、Xoops、CmsTop等。

2.为什么要识别CMS

在web渗透过程中,Web指纹识别是信息收集环节中一个比较重要的步骤,通过一些开源的工具、平台或者手工检测CMS系统是公开的CMS程序还是二次开发至关重要,能准确的获取CMS类型、Web服务组件类型及版本信息可以帮助安全工程师快速有效的去验证已知漏洞。对目标渗透测试过程中,目标的cms是十分重要的信息,有了目标的cms,就可以利用相关bug进行测试,进行代码审计等。

在指纹识别的学习过程中,有很多开源的工具和指纹库,如fofa、WhatWeb、w11scan、WebEye

3.识别方式

  1. 网站特有文件

如/templets/default/style/dedecms.css—dedecms

  1. 网站独有文件的md5

如favicon.ico,但是该文件可以被修改导致不准确。

  1. 网站文件命名规则

  2. 返回头的关键字

  3. 网页关键字

如/data/sessions/index.html——dedecms

  1. Url特征

  2. Meta特征

  3. Script特征

  4. robots.txt

  5. 网站路径特征

  6. 网站静态资源

  7. 爬虫网站目录信息

相对比较准确,但是可能有反爬。

  1. 在线网站

指纹实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
{
"url": "/install/",
"re": "aspcms",
"name": "AspCMS",
"md5": ""
},
{
"url": "/about/_notes/dwsync.xml",
"re": "aspcms",
"name": "AspCMS",
"md5": ""
},
{
"url": "/admin/_Style/_notes/dwsync.xml",
"re": "aspcms",
"name": "AspCMS",
"md5": ""
},
{
"url": "/apply/_notes/dwsync.xml",
"re": "aspcms",
"name": "AspCMS",
"md5": ""
},
{
"url": "/tpl/green/common/images/notebg.jpg",
"re": "",
"name": "自动发卡平台",
"md5": "690f337298c331f217c0407cc11620e9"
},
{
"url": "/images/download.png",
"re": "",
"name": "全程oa",
"md5": "9921660baaf9e0b3b747266eb5af880f"
},
{
"url": "/kindeditor/license.txt",
"re": "",
"name": "T-Site建站系统",
"md5": "b0d181292c99cf9bb2ae9166dd3a0239"
},
{
"url": "/public/ico/favicon.png",
"re": "",
"name": "悟空CRM",
"md5": "834089ffa1cd3a27b920a335d7c067d7"
},
{
"url": "/public/js/php/file_manager_json.php",
"re": "",
"name": "悟空CRM",
"md5": "c64fd0278d72826eb9041773efa1f587"
},
{
"url": "/plugins/weathermap/images/exclamation.png",
"re": "",
"name": "CactiEZ插件",
"md5": "2e25cb083312b0eabfa378a89b07cd03"
}

4.指纹识别的对象

1、CMS信息:比如大汉CMS、织梦、帝国CMS、phpcms、ecshop等;

2、前端技术:比如HTML5、jquery、bootstrap、pure、ace等;

3、Web服务器:比如Apache、lighttpd, Nginx, IIS等;

4、应用服务器:比如Tomcat、Jboss、weblogic、websphere等;

5、开发语言:比如PHP、Java、Ruby、Python、C#等;

6、操作系统信息:比如linux、win2k8、win7、kali、centos等;

7、CDN信息:是否使用CDN,如cloudflare、360cdn、365cyd、yunjiasu等;

8、WAF信息:是否使用waf,如Topsec、Jiasule、Yundun等;

9、IP及域名信息:IP和域名注册信息、服务商信息等;

10、端口信息:有些软件或平台还会探测服务器开放的常见端口。

5.识别工具

WhatWeb(推荐指数★★★★★)

地址:https://github.com/urbanadventurer/WhatWeb

此工具kali自带,使用方法:

whatweb www.example.com 即可,也可以加参数-v显示更详细的信息。

Wapplyzer(推荐指数★★★★)

Wappalyzer可以识别网站上的技术,包括内容管理系统,电子商务平台,JavaScript框架,分析工具,打包工具等等。

可以在谷歌商店直接下载扩展程序,使用很方便。

image-20210306221521620

6.在线识别网站

1.http://whatweb.bugscaner.com/look/

2.https://pentest.gdpcisa.org/whatcms

3.https://www.yunsee.cn/(云悉指纹识别,强烈推荐)

7.结语

指纹识别是渗透测试信息收集中很重要的一部分,对目标渗透测试过程中,目标的cms是十分重要的信息,有了目标的cms,就可以利用相关bug进行测试,进行代码审计等。很多安全小白学了很久,却依然挖不到洞,一方面是技术还不到位,另一方面是信息收集没做好。所以要明白信息收集的重要性