挖src实用脚本开发(二)

devtools/2025/2/28 9:19:51/

文章目录

    • 技术原理
    • 代码实现一
    • 代码实现二
    • 总结

这篇文章记录cms识别脚本。

技术原理

1.使用在线平台识别,比如whatcms,fofa等
2.自己写脚本识别,但是指纹库麻烦,需要耗费大量精力

代码实现一

这里我使用的是whatcms接口,可以免费每个月使用1000次。需要自己申请key。也可以用别的接口。

python">from prettytable import PrettyTablefrom config import apikey_cms
import requestsdef cms(domain):if apikey_cms=="None":print("no apikey for whatcms")return Noneapi_url = f"https://whatcms.org/API/Tech?key={apikey_cms}&url={domain}"response = requests.get(api_url)# print(response.text)# 检查响应状态码是否为 200 (OK)if response.status_code == 200:data = response.json()if data['results'] != []:tech_table = PrettyTable()tech_table.field_names = ["技术名称", "版本", "类别", "更多信息"]# 提取技术栈数据并添加到表格中for tech in data['results']:tech_table.add_row([tech['name'],tech['version'] if tech['version'] else 'N/A',', '.join(tech['categories']),f"https:{tech['url']}"  # 拼接完整的 URL])# 打印技术栈表格print("技术栈信息:")print(tech_table)else:print("未识别到cms信息")if data['meta'] != []:# 创建 PrettyTable 对象来存储社交媒体数据social_table = PrettyTable()# 设置列名social_table.field_names = ["社交网络", "URL", "个人资料"]# 提取社交媒体数据并添加到表格中for social in data['meta']['social']:social_table.add_row([social['network'],social['url'],social['profile']])# 打印社交媒体表格print("\n社交媒体信息:")print(social_table)else:print("未识别到社交信息")else:print(f"请求失败,状态码:{response.status_code}")if __name__ == '__main__':cms("http://eci-2zea2431utbdaijiw30l.cloudeci1.ichunqiu.com/")

这里我采用一道靶场为例:
在这里插入图片描述

代码实现二

自己使用指纹库识别,收集特征文件的md5值,然后访问文件比对md5值。

python">def cms_cms(url):cms_json = open("../fingers/cms/fingers_simple.json", "r", encoding="utf-8")cms_data = json.load(cms_json)for i in cms_data["data"]:print(i)if i["path"]!="":respon = requests.get(url+i["path"])if str(respon) == "<Response [200]>":md5_1 = hashlib.md5()md5_1.update(respon.content)hash_key = md5_1.hexdigest()if hash_key ==i["match_pattern"]:print(i["cms"])return i["cms"]

指纹库如下这种(自己在网上收集):

{"data": [{"cms": "\u4e94\u6307cms\u7f51\u7ad9\u7ba1\u7406\u7cfb\u7edf","file_type": "css","type": "md5","match_pattern": "5fed1213ff84fad23770feb545d0bb18","path": "/res/member/css/member.css","uptime": "2020-07-20 15:22"},{"cms": "\u4e94\u6307cms\u7f51\u7ad9\u7ba1\u7406\u7cfb\u7edf","file_type": "css","type": "md5","match_pattern": "5d5357cb3704e1f43a1f5bfed2aebf42","path": "/res/member/css/bootstrap.min.css","uptime": "2020-07-20 15:22"},{"cms": "\u4e94\u6307cms\u7f51\u7ad9\u7ba1\u7406\u7cfb\u7edf","file_type": "css","type": "md5","match_pattern": "f392e44a01b4e725a0721c791b628107","path": "/res/member/css/login.css","uptime": "2020-07-20 15:22"},
}        

总结

对于cms识别如果自己没有大量时间建议使用在线cms识别。

浏览器插件: wappalyzer
whatcms
云悉
fofa,360quake等

指纹库:

自己去github上面找,然后自己针对经常遇到的cms进行收集,制作自己的指纹库。


http://www.ppmy.cn/devtools/163316.html

相关文章

51单片机-按键

1、独立按键 1.1、按键介绍 轻触开关是一种电子开关&#xff0c;使用时&#xff0c;轻轻按开关按钮就可使开关接通&#xff0c;当松开手时&#xff0c;开关断开。 1.2、独立按键原理 按键在闭合和断开时&#xff0c;触点会存在抖动现象。P2\P3\P1都是准双向IO口&#xff0c;…

蓝桥杯备考:贪心算法之矩阵消除游戏

这道题是牛客上的一道题&#xff0c;它呢和我们之前的排座位游戏非常之相似&#xff0c;但是&#xff0c;排座位问题选择行和列是不会改变元素的值的&#xff0c;这道题呢每每选一行都会把这行或者这列清零&#xff0c;所以我们的策略就是先用二进制把选择所有行的情况全部枚举…

Spring Boot项目@Cacheable注解的使用

Cacheable 是 Spring 框架中用于缓存的注解之一&#xff0c;它可以帮助你轻松地将方法的结果缓存起来&#xff0c;从而提高应用的性能。下面详细介绍如何使用 Cacheable 注解以及相关的配置和注意事项。 1. 基本用法 1.1 添加依赖 首先&#xff0c;确保你的项目中包含了 Spr…

Skype for Business网络延迟怎么办?

解决Skype for Business网络延迟的方法 1. 优化网络带宽和稳定性 确保网络带宽充足是解决Skype for Business延迟问题的首要步骤。您可以采取以下措施来优化网络带宽和稳定性&#xff1a; 升级带宽&#xff1a;如果企业内部使用的网络带宽较低&#xff0c;可以考虑升级带宽&a…

pytorch 参数理解

model.parameters() import torch import torch.nn as nnclass SimpleModel(nn.Module):def __init__(self):super(SimpleModel, self).__init__()self.fc1 nn.Linear(10, 5) # 输入维度为10&#xff0c;输出维度为5self.fc2 nn.Linear(5, 2) # 输入维度为5&#xff0c;输…

bean的管理-01.bean的获取

一.获取bean 在默认情况下&#xff0c;Spring项目启动时&#xff0c;会将bean都创建好放在IOC容器中&#xff0c;我们可以通过Autowired注解将所需要的bean对象注入进来&#xff0c;其实也可以通过Spring给我们提供的这些方法主动从IOC容器中获取bean对象。那么如何从IOC容器中…

linux里面的过滤符号 | 是如何实现的

ls -l | grep ".txt" 的实现过程涉及无名管道的创建、进程的创建&#xff08;fork()&#xff09;以及输入输出的重定向&#xff08;dup2()&#xff09;。以下是详细的实现步骤和代码示例&#xff1a; 实现步骤 创建无名管道&#xff1a; 使用pipe()系统调用创建一个无…

说说 Spring MVC 的执行流程

Spring MVC 是一个基于 Java 的轻量级、开源的 Web 框架&#xff0c;用于构建 Web 应用程序。它通过将请求处理的各个阶段解耦&#xff0c;使得开发更加灵活和模块化。以下是 Spring MVC 的执行流程&#xff0c;从用户发起请求到返回响应的整个过程&#xff1a; --- ### 1. 用…