电脑疯子技术论坛|电脑极客社区

 找回密码
 注册

QQ登录

只需一步,快速开始

[WEB前端技术] web安全---cms指纹识别

[复制链接]
zhaorong 发表于 2021-4-20 11:15:54 | 显示全部楼层 |阅读模式
本帖最后由 zhaorong 于 2021-4-20 11:31 编辑

一、前言

CMS指纹识别:指纹识别是将识别对象的指纹进行分类对比从而进行判别 就像是人的指纹一样 不会出现一模一样的指纹从
而通过每个对象的不同特征来识别对象的归属。这里的指纹识别是指网站CMS指纹识别 在渗透测试过程我们会遇到各种各
样的CMS建站我们需要判断目标网站使用的到底是哪一个CMS。判别方法就是看应用程序的文件中出现的特征码 这个特
征码就可以快速识别出到底是哪一个CMS,再将判别出来的CMS进行漏洞查找利用。

二、CMS指纹识别思路

可以对CMS指纹的各个识别工具进行使用 区别各个指纹识别的不同与特点
(一)可以使用CMS指纹识别工具来进行客户端的识别 常用的工具有Test404轻量CMS之别识别工具
plecostcmscan、御剑WEB指纹识别工具 BlindElephant、FingerPrint、gwhatweb、TideFinger
Wappalyzer、指纹特征识别beta2-b0y等。

(二)手工进行识别,可以对网站的显示信息进行分析 如技术支持显示 Powered by xxx 或者是网站的后台登录界面
也有建站cms的特征码。以及网站的路径信息 不同的cms建站有不同的网站路径名,可以根据其中特有的路径名进行
区分还可以利用robots.txt文件来匹配不同的cms。
(三)在线cms指纹识别平台检测 如http://whatweb.bugscaner.com/look/、http://www.yunsee.cn/finger.htm

三脚本类的指纹识别工具进行利用

(一)根据关键字网页显示的特征码识别cms类型

脚本代码如下:
利用过程:
  1. request建立连接---获取网页内容---利用正则表达式匹配关键字---识别CMS类型
  2. #coding=utf-8
  3. import requests
  4. import re
  5. header={
  6. 'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
  7. 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  8. 'User-Agent':'xxxxxx',
  9. 'Accept-Encoding':'gzip, deflate, br'
  10. }
  11. url=("http://www.xxx.com")
  12. res=requests.get(url, header)
  13. text=res.text
  14. # print(text)
  15. pattern=re.compile('Powered by <.*?>(.*?)<\/.*?>.*?',re.S)
  16. flag=re.findall(pattern,text)
  17. if flag!=[]:
  18. print("识别成功:",end="")
  19. print(flag)
  20. else:
  21. print("识别失败")
复制代码

Phpwind cms指纹识别

195923j1eykrlmm1lxzzmm.png

织梦 cms指纹识别

100.png

Discuz cms指纹识别

99.png

在互联网上 还有一种显示建站厂商的特征码方式 就是技术支持:XXX
这种方式和前面介绍的Power by xxx的方式是一样的 都是反映该网站建站以及维护的cms厂商信息。

技术支持:本成网络
脚本代码如下:
利用过程:
  1. request建立连接---获取网页内容---利用正则表达式匹配关键字---识别CMS类型
  2. # coding=utf-8
  3. import requests
  4. import re
  5. header={
  6. 'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
  7. 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  8. 'User-Agent':'xxxxxx',
  9. 'Accept-Encoding':'gzip, deflate, br'
  10. }
  11. url=("http://xxx.com")
  12. res=requests.get(url, header)
  13. text=res.text
  14. # print(text)
  15. pattern=re.compile('技术支持:.*?<.*?>(.*?)<\/.*?>.*?',re.S)
  16. flag=re.findall(pattern,text)
  17. if flag!=[]:
  18. print("识别成功:",end="")
  19. print(flag)
  20. else:
  21. print("识别失败")
复制代码

运行效果图如下:

98png.png

(二)根据cms的路径信息识别cms类型
脚本代码如下:
利用过程:
request建立连接---枚举网站路径---返回状态码---识别CMS类型
  1. # -*- coding:utf-8 -*-
  2. import requests
  3. import re
  4. url = 'http://www.xxx.com'
  5. with open("web.txt","r") as web:
  6. webs=web.readlines()
  7. w=open('write.txt','w+')
  8. for web in webs:
  9. web=web.strip()
  10. pattern=re.compile('(.*?)------.*?',re.S)
  11. flag=re.findall(pattern,web)
  12. u = url+flag[0]
  13. r = requests.get(u)
  14. status_code=r.status_code
  15. if status_code==200:
  16. print("识别成功:",flag[1])
  17. print("url为:"+u+' '+"状态为:%d"%status_code)
  18. w.write("识别成功:"+flag[1]+"url为:"+u+' '+"状态为:%d"%r.status_code+"\n")
复制代码

phpwind cms指纹识别

97.png

将脚本运行的结果保存在write.txt文本下,方便用户查看

96.png

四、客户端类的指纹识别工具进行利用

(一)御剑WEB指纹识别工具
工具介绍:
该工具利用的原理类似于上述的python脚本 通过枚爆破识别cms的路径和特征码

195925khzvrnv1szvnn3zl.png

92.png

使用中可以单一添加 也可以导入文本(存放多个网站的文本)然后进行扫描

91.png

这里以论坛为例子 御剑WEB指纹识别工具会通过应用指纹(网页特征)和判定文件路
径信息来识别各个不同的cms类型。

90.png

最终结果为无法判定 现实中在建站的初期 如果网站管理员想要避免自己的网站被黑客前期
信息收集的话可以修改网页的特征信息
(1)修改网页展示信息网页模板 技术支持 关键字 版本信息 后台登录模块信息等
(2)修改网页路径信息 /robots、/admin等
(3)修改网页信息可以个性化一点 修改网页路径信息可以通过拼音缩写或者个性化方式来隐藏
建站厂商的通用路径名 例如/admin修改为/a8min

89.png

识别成功的案例如下
现实中如果是大型的互联网企业,网站中常常会部署一些安全设备 比如WAF(WEB Application Firewall流量
探针等如果某个用户ip在一个很短的时间段发送了多个请求url 这就明显是有人利用工具在爆破 这个时候网站
可能就会做一些保护措施 例如常见的封IP等。

88.png

(二)指纹特征识别beta2-b0y
工具介绍:
通过识别/robots.txt路径下的内容 如果出现Disallow://wp-includes/则判定cms为
wordpress以此类推来匹配robots路径下的内容。

87.png

识别成功案例

86.png

如下该工具的配置 可以导入特征文件 也可以导出特征文件 从而增加工具可识别的范围

82.png

五、在线cms指纹识别平台

平台网址为:http://whatweb.bugscaner.com/look/通过域名或者ip地址进行查询。

81.png

六、后记

CMS指纹识别技术在实际的渗透测试中处于信息收集的模块 如果在前期的信息收集中能够收集到一个网站的建站cms
就能够利用该cms 的版本漏洞 以及在开源的cms中可以利用代码审计来寻找网站漏洞。平时挖掘通用漏洞中 寻找相同
建站cms也是一个比较麻烦的过程 用户可以利用上述的方式来寻找该网站是否属于自己想寻找的cms建站厂商。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|VIP|电脑疯子技术论坛 ( Computer madman team )

GMT+8, 2025-2-2 20:39

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表