欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 挖src实用脚本开发(二)

挖src实用脚本开发(二)

2025/2/28 18:02:23 来源:https://blog.csdn.net/m0_73452266/article/details/145916509  浏览:    关键词:挖src实用脚本开发(二)

文章目录

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

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

技术原理

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

代码实现一

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

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值。

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进行收集,制作自己的指纹库。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词