Python识别CMS与批量资产收集拓展

漫画最开始的时候,孙悟空一个人待在水帘洞里,他不知道自己在等谁,也不知道等了多久,唐三藏走进水帘洞说,是你呼唤我么?孙悟空说我没有呼唤谁啊。唐三藏沉默了很久说,那你跟我走吧。然后他拉了孙悟空的手,孙悟空就跟他走了。在那个故事里,唐三藏是个使左轮枪的大帅哥而孙悟空是个傻猴子。这个世界上有很多种猴子,有的猴子被唐三藏从水帘洞里领出来之后,就变成聪明猴子了,翻着跟头就跑掉了,而有的猴子就只会跟着唐三藏走。我就是后面那种猴子,我在水帘洞里待的太久了,待傻了。全文约7.5K字,大致阅读完约10分钟,包含主要知识点
摘要由CSDN通过智能技术生成
漫画最开始的时候,孙悟空一个人待在水帘洞里,他不知道自己在等谁,也不知道等了多久,唐三藏走进水帘洞说,是你呼唤我么?孙悟空说我没有呼唤谁啊。唐三藏沉默了很久说,那你跟我走吧。然后他拉了孙悟空的手,孙悟空就跟他走了。在那个故事里,唐三藏是个使左轮枪的大帅哥而孙悟空是个傻猴子。这个世界上有很多种猴子,有的猴子被唐三藏从水帘洞里领出来之后,就变成聪明猴子了,翻着跟头就跑掉了,而有的猴子就只会跟着唐三藏走。我就是后面那种猴子,我在水帘洞里待的太久了,待傻了。

全文约7.5K字,大致阅读完约10分钟,包含主要知识点:CMS概述与识别的意义根据页面内容识别CMS类型根据请求头内容识别CMS类型根据robots.txt文件识别CMS类型根据网站文件md5值识别CMS类型根据指定网页内容识别CMS类型Python识别CMS代码工程设计实现与拓展、其中关键部位文字使用橙色重点标注,网址使用绿色重点标注,代码以及相关指纹库下载链接在文末。

目录:

  • CMS概述与识别的意义

  • 根据页面内容识别CMS类型

  • 根据请求头内容识别CMS类型

  • 根据robots.txt文件识别CMS类型

  • 根据网站文件md5值识别CMS类型

  • 根据指定网页内容识别CMS类型

  • Python识别CMS代码工程设计实现与拓展

  • 指纹库获取

附言:

最近相关开发文章都需要具有一定的python基础,但是许多朋友没有接触学习过,所以许多地方会觉得这讲的什么鸟玩意儿,其实这种情况是我很不想的。后面时间主要应用于视频课程的录制,从最基础的开始教学到后面完整的开发课程,一步一步的学习,并且将所学内容的功能写成相关工具,现学现用加强理解。其中也有一些个人原因,由于没有录制的经验,会经常笑场导致录制失败….

CMS概述与识别的意义

CMS是Content Management System的缩写,意为"内容管理系统"。可以简单理解为网站的模板,从零开始开发一个完整的网站系统需要大量的时间和人力成本,如果使用现成的模板套用则能节约大量的开发成本和人力资源。因此网络上有大量优秀的CMS模板提供选择使用:

优点:

  1. 节约开发成本,人力资源

  2. 快速上线整个网站系统

  3. 自带多样优秀丰富的插件功能,后台管理系统,提供不同风格的界面

  4. 简单易上手,能快速搭建网站

缺点:

  1. 安全性较低,因为使用的统一的模板,如果爆出该相关漏洞,那么你的网站也很可能被入侵

  2. 使用不当可能会造成版权问题

  3. 使用模板的话,网站的结构重复度太高,不利于搜索引擎优化

回归到本文的主旨,在渗透测试中检测目标网址是否基于CMS模板开发,判断使用的CMS类型是非常重要的一步,可以查找网上已曝光的CMS程序漏洞,运气好能一步到位拿到权限,如果该CMS系统开源,还能下载相对应的源码进行代码审计。

根据个人经验,总结一下识别网站CMS类型的五种方法,本质上都是根据网页内容或者网页文件的特征进行识别。只是根据不同类型的网页大概分成五类,方便理解和阅读,至于在网上找到在线识别CMS网站的接口然后加到爬虫中,省时省力却不在本文的讨论范围之内,当然会在以后视频课程的爬虫专栏会专门讲。

根据页面内容识别CMS类型

许多CMS系统会在网站的首页加上一些象征该CMS的关键词,举个例子,WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网站,如果使用该程序搭建网站,会在该网站的首页出现关键词。下图目标网址案例就是使用WordPress搭建:

我们策略判断该网址是使用WordPress系统搭建的,这样我们识别出来后,就继续确认该网站使用Wordpress的版本号,然后搜索该版本是否出现过相关漏洞,方便下一步渗透测试工作的进行。

那么只需要准备一个指纹库,然后访问目标网站后,对照指纹库的内容,如果命中关键词,则直接判断该网址的CMS类型。

指纹库文件需要不断地收集更新整理,本文中整理好的指纹库获取方式放在文末自取。

如果使用代码实现,粗略的大体结构大概就是如下设计:

# -*- coding:utf-8 -*-
import requests
body = {
'content="WordPress':'WordPress',
 'wp-includes':'WordPress',
 'pma_password':'phpMyAdmin',
 'hexo':'hexo',
}
def CheckCmsFromBody(url):
    try:
        r = requests.get(url)
        encoding = requests.utils.get_encodings_from_content(r.text)[0]
        url_content = r.content.decode(encoding, 'replace')
        for k,v in body.items():
            if k in url_content:
                print('目标网址:{} 识别CMS为:{}'.format(url,v))
    except Exception as e:
        print(e)
url = 'http://www.langzi.fun'
CheckCmsFromBody(url)

代码粗略功能就是获取首页的内容,然后从指纹库寻找是否出现关键词判定CMS类型。

根据请求头内容识别CMS类型

除了上文中从网页内容识别CMS类型,还可以从请求头消息中获取相关信息,某些CMS系统返回的请求头信息中也会添加独特的特征码。如下图目标网站就是使用PowerEasy(动易系统)搭建的网站,可以直接从请求头中获取到特征码,从而判断出使用CMS的类型。

所以在渗透测试的信息收集中,对任何地方都不要放过呀~细心谨慎才能挖到更多的信息。

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子燕青啦啦啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值