Bootstrap

CMS(内容管理系统)

简介

CMS是英语 Content Management System 的缩写,翻译过来就是内容管理系统,是⼀种软
件⼯具,允许我们创建,编辑和发布内容!CMS其实是⼀个很⼴泛的称呼,从⼀般的博客程序,
新闻发布程序,到综合性的⽹站管理程序都可以被称为内容管理系统。
# 常⻅ CMS 系统
- 企业⽹站系统: MetInfo( ⽶拓 ) 、蝉知、 SiteServer CMS
- B2C 商城系统:商派 shopex ecshop hishop xpshop niushop
- ⻔户建站系统: DedeCMS( 织梦 ) 、帝国 CMS PHPCMS 、动易、 cmstop
- 博客系统: wordpress Z-Blog
- 论坛社区: discuz phpwind wecenter
- 问题系统: Tipask whatsns
- 知识百科系统: HDwiki
- B2B ⻔户系统: destoon B2Bbuilder 、友邻 B2B
- ⼈才招聘⽹站系统:骑⼠ CMS PHP 云⼈才管理系统
- 房产⽹站系统: FangCMS
- 在线教育建站系统: kesion( 科汛 ) EduSoho ⽹校
- 电影⽹站系统:苹果 cms ctcms movcms
- ⼩说⽂学建站系统: JIEQI CMS

 》》》在线⼯具识别《《《

# ⼯具地址
国外识别平台:
https://whatcms.org/
国内识别平台:
bugscaner http://whatweb.bugscaner.com/
whatweb https://www.whatweb.net/
云悉: https://www.yunsee.cn/
潮汐: http://finger.tidesec.net/
TSscan:https://scan.dyboy.cn/web/
github 直接找:
https://github.com/search?q=cms 识别

 》》》线下⼯具识别《《《

1.CMSmap

项⽬地址: https://github.com/Dionach/CMSmap
参数:
-f W/J/D, --force W/J/D
强制扫描 (W)ordpress (J)oomla (D)rupal
-F, --fullscan 使⽤⼤型插件列表进⾏全⾯扫描。误报和缓慢!
-t , --threads 线程数(默认 5
-a , --agent 设置⾃定义⽤户代理
-H , --header 添加⾃定义标题(例如 授权:基本 ABCD...”
-i , --input 扫描给定⽂件中列出的多个⽬标
-o , --output 将输出保存在⽂件中
-E, --noedb 枚举插件⽽不搜索漏洞
-c, --nocleanurls 仅对 Drupal 禁⽤⼲净的 url
-s, --nosslcheck 不验证服务器的证书
-d, --dictattack 在扫描期间运⾏低强度字典攻击(每个⽤户 5 次尝试)
-u , --usr ⽤户名或⽤户名⽂件
-p , --psw 密码或密码⽂件
-x, --noxmlrpc 在没有 XML-RPC 的情况下暴⼒破解 WordPress
使⽤实例:
cmsmap.py https://example.com
cmsmap.py https://example.com -f W -F --noedb -d
cmsmap.py https://example.com -i targets.txt -o output.txt
cmsmap.py https://example.com -u admin -p passwords.txt

2.Ehole

 项⽬地址:https://github.com/EdgeSecurityTeam/EHole

  参数:
-f 字符串
fofa 搜索的资产,⽀持 IP IP 段。( 192.168.1.1 | 192.168.1.0/24
-ftime 字符串
fofa 超时(默认 “ 10 ”
-h 这个帮助
-json 字符串
输出 json
-l 字符串
基于本地⽂件的探测
- ⽇志字符串
⽇志⽂件名(默认 “ server.log ”
-t 字符串
线程(默认 “ 100 ”
使⽤:
本地识别: EHole -l url.txt //URL 地址需带上协议,每⾏⼀个
FOFA 识别: EHole -f 192.168.1.1/24 // ⽀持单 IP IP
注意:从 FOFA 识别需要配置 FOFA 密码以及邮箱,在 config.ini 内配置好密码以及邮
箱使⽤。
结果输出: EHole -l url.txt -json export.json // 结果输出⾄ export.json ⽂件

3.CMSeek

 项⽬地址:https://github.com/Tuhinshubhra/CMSeeK

⽅法⼀:
python3 cmseek.py
如果提示没有安装,选择 y ,进⾏安装
选择 1 ,进⾏ cms 基本检测,结果会⾃动保存
选择 2 ,多个域名扫描,⽤ “,” 隔开
结果会保存在 /Result/{ 域名 }/*.json ⽂件内
⽅法⼆:
python3 cmseek.py -u example.com
# 直接扫描
python3 cmseek.py -l /home/user/target.txt
# 扫描 target.txt 中指定的站点(逗号分隔)
python3 cmseek.py -u example.com --user-agent Mozilla 5.0
# 使⽤⾃定义 user-Agent 扫描 example.com 这⾥使⽤的是 Mozilla 5.0
python3 cmseek.py -u example.com --random-agent
# 使⽤随机⽤户代理扫描 example.com
python3 cmseek.py -v -u example.com
# 在扫描 example.com 时启⽤详细输出

4.Whatweb

来源:Kali系统自带

 5.插件识别

# firefox 插件
wappalyzer https://www.wappalyzer.com
whatruns https://www.whatruns.com/

 》》》⼿⼯判断识别《《《

识别⽬标主要有: 开发语⾔/开发框架/第三⽅组件/CMS程序/数据库....
1. 后缀名识别: asp,php,jsp
如果⽆法通过后缀名识别,可以通过抓包查看与后台的交互点,如:登录,查询
2. http 返回消息头: x-Powered-By
Cookie: PHPSESSID-->php , JSPSESSID-->jsp , ASPSESSID-->asp

 

php Thinkphp 框架识别⽅法特定的 ico https://www.thinkphp.cn/index/index
Action 后缀 90% 机率是 struts2 或者 webwork
do 后缀 50% 机率是 spring mvc
url 路径 /action/xxx 70% 机率是 struts2
form 后缀 60% 机率是 spring mvc
Vm 后缀 90% 机率是 VelocityViewServlet
jsf 后缀 99% 机率是 java server faces
http 返回消息头: X-Generator: Swiftlet 很多时候没有显示

 

robots.txt ⽂件识别:(相关⼚商下的 cms (内容管理系统)程序⽂件包含说明当前 cms 名称及版本
的特征码)
Disallow: /plus/feedback_js.php
Disallow: /plus/mytag_js.php
Disallow: /plus/rss.php
Disallow: /plus/search.php
Disallow: /plus/recommend.php
Disallow: /plus/stow.php
Disallow: /plus/count.php
看到这个基本可以判断为 dedecms
⽹站 favicon 图标
常规判断: asp-->sql server , php-->mysql , jsp-->oracle
⽹站错误信息
端⼝服务: 1433-->sql server , 3306-->mysql , 1521-->oracle

 

引擎搜索

》》》⽩引擎搜索《《《

# 搜索引擎
百度: www.baidu.com
bing www.bing.com
Yahoo www.search.yahoo.com
aol www.search.aol.com
google google.cn
# 搜索语法 Google Hacker 语法
intitle: 标题关键字 eg:intitle 后台登陆
inurl: URL 关键特征 eg:inurl admin.php
intext: 内容关键词 eg:intext ⽂件上传
filetype: 指定类型⽂件 // 例如: bak , mdb , asp , php , jsp
site: 指定域名
link: baidu.com // 表示返回所有和 baidu.com 做了链接的⽹站
info: 查找指定站点的⼀些基本信息
cache: 搜索 google ⾥关于某些内容的缓存
intitle: 标题关键字 查询在⽹站标题中存在该关键字的站点
inurl:URL 关键字 查询在 URL 路径中存在该关键字的站点
intext: 内容关键词 查询在⽹站主体中存在该关键字的站点
filetype :⽂件类型 查询存在指定⽂件类型的站点
site: 指定域名 查询在搜索引擎下的所收录的资产
举例:
intext: 管理
filetype:mdb
inurl:file
site:http://xx.com filetype:txt
site:http://xx.com filetype:asp
site:tw inurl:asp?id= // 查找台湾的
intitle: 旁注 - ⽹站 filetype:asp
http://lmb.scsio.cas.cn/xzzx/201411/P020141121459287656532.xls
# Google Hacker Database GHDB
https://www.exploit-db.com/google-hacking-database

 》》》⿊暗引擎搜索《《《

# 搜索引擎
fofa.info
www.shodan.io
www.zoomeye.org
quake.360.cn
# 搜索帮助
--- 》官⽅⼿册⽂档

站点目录

》》》目录扫描《《《

 

其对其进⾏⽬录扫描的⽬的主要有以下⼏种:
● 寻找⽹站的后台登录地址
● 寻找未授权访问的⻚⾯
● 寻找⽹站更多隐藏的信息

 

通常我们所说的敏感⽂件、敏感⽬录⼤概有以下⼏种:
后台
robots.txt --- 》 让搜索引擎爬⾍收录哪些⽬录
数据库 log
sitemap.xml
mysql.sql
licence.txt
Git
hg/Mercurial
svn/Subversion
bzr/Bazaar
Cvs
WEB-INF 泄露
备份⽂件泄露、配置⽂件泄露

 

# 常⻅后台
admin/
admin. 后缀
admin/login. 后缀
manage
webmanager
等等
# ⽂件路径
查看⽹站图⽚,其中⽬录很可能包含管理⽬录,这⾥查看要躲在⼏个地⽅查看 ;
1. ⾸⻚
2. 新闻中⼼
3. 上传点
就是查看的图⽚要有不同上传点上传的图⽚,如果图⽚保存路径在后台的下级⽬录,那么这种⽅法屡
试不爽。
# robots.txt
Robots 协议 " ⽹络爬⾍排除标准 " ,⽹站通过 Robots 协议告诉搜索引擎哪些⻚⾯可以抓取,哪些⻚
⾯不能抓取;同时也记录⽹站所具有的基本的⽬录;
http://www.baidu.com/robots.txt
# 搜索引擎
搜索引擎会爬取⽹站下⽬录,并且不需要触碰⽹站任何防御设备;
语法: site:360.cn

 

# 爆破枚举
原理:通过字典匹配⽹站是否返回响应正确状态码,然后列出存在的⽬录;
爆破可能会触发⽹站防⽕墙规则拦截,造成封禁 IP 现象;
# 相关字典
kali 默认字典:
cd /usr/share/wordlists/
https://gitee.com/molok/Blasting_dictionary
https://github.com/TheKingOfDuck/fuzzDicts
https://github.com/fuzz-security/SuperWordlist
# 枚举⼯具
Dirb/Dirbuster/DirMap/ 御剑 /7kbstorm...
dirb http://example.com
dirsearch -u http://example.com
# ⼯具项⽬
https://github.com/foryujian/yjdirscan
https://github.com/7kbstorm/7kbscan-WebPathBrute

 》》》物理路径《《《

 

# 报错信息
在处理报错信息的问题上如果处理不当,就可导致路径信息泄露,⽐如访问⼀些不存在的⽂件等思
路;报错⽅法很多,说不完的,具体还要根据实际情况操作;
报错⽅法:
1. 有动态 URL 的地⽅可以替换参数 替换参数值为不存在的,很多时候都能爆物理路径;
2. 访问不存在的⽂件名 ⽂件 或者改正常后缀为不⽀持的后缀;
* IIS7.0 以上,如果没有修改 404 ⻚⾯,只要浏览 web 任意不存在的⽂件,都会直接暴出绝对路
径;
* 同理, thinkphp 也有这个性质。 在 id=1 的注⼊点,使⽤各种不⽀持的字符,⽐如 id=1’ id
=? id=-1 id=\ id=/ 都有可能暴出绝对路径;
* 还有的时候传⼀些错误图⽚会报错 windows 不⽀持的符号, ?:<> 之类的,还有 windows 不⽀
持的⽂件名 aux Windows 服务器上传 aux ⽂件或者新建 aux ⽂件夹,因为不允许这种⽂件存在⽽报错
泄露绝对路径;
3. 尤其是 php 框架写的站,上传很容易爆出物理路径,根据具体情况了,⽐如提交允许的后缀,整体
提交时抓包改为不⽀持的后缀,放包,很多时候都能爆出物理路径。 有⼀部分都是 sql 语句报错, sq
l 很多时候会爆物理路径;
# 后台地址
可以登录后台的话,后台⾸⻚⼀般都有服务器信息的,⼤部分情况下物理路径都在⾥⾯;
# 功能点
上传图⽚处 :
第⼀点:在上传图⽚处,这⾥是最可能存在问题的点,就是关于上传相关证明,进⾏实名制上传信息
等功能⻚⾯,在上传图⽚时进⾏抓包,然后查看返回包,那么就可看到当前服务器的绝对路径信息
# 容器特性
如: Apache Tomcat Struts2 CMS zabix Nginx 等等,例如 Nginx 的某版本解析漏洞,就
可造成路径信息泄露;
1. IIS ⼤于 6 的版本,基本都是 导致他 404 就可以爆出物理路径、 IIS 名、 IIS 版本。这个很简单,
随便访问个不存在的⽬录或⽂件就可以;
2. nginx ⽂件类型错误解析爆路径 :
说明:要求 Web 服务器是 nginx ,且存在⽂件类型解析漏洞;
有时在图⽚地址后加 /x.php ,该图⽚不但会被当作 php ⽂件执⾏,有可能爆出物理路径 ww
w.xxx.com/xx.jpg/x.php
# 探针⽂件
site.php
info.php
phpinfo.php
php_info.php
1.php
a.php
test.php
ceshi.php
# PHPMyadmin 爆路径
⼀旦找到 phpmyadmin 的管理⻚⾯,再访问该⽬录下的某些特定⽂件,就很有可能爆出物理路径;⾄
phpmyadmin 的地址可以⽤ wwwscan 这类的⼯具去扫,也可以选择 google
○ /phpmyadmin/libraries/lect_lang.lib.php
○ /phpMyAdmin/index.php?lang[]=1
○ /phpMyAdmin/phpinfo.php load_file()
○ /phpmyadmin/themes/darkblue_orange/layout.inc.php
○ /phpmyadmin/libraries/select_lang.lib.php
○ /phpmyadmin/libraries/lect_lang.lib.php
○ /phpmyadmin/libraries/mcrypt.lib.php
# 配置⽂件找路径
如果注⼊点有⽂件读取权限,就可以⼿⼯ load_file 或⼯具读取配置⽂件,再从中寻找路径信息(⼀
般在⽂件末尾),各平台下 Web 服务器和 PHP 的配置⽂件默认路径可以上⽹查;
常⻅配置⽂件:
○ c:\windows\php.ini php 配置⽂件
○ c:\windows\system32\inetsrv\MetaBase.xml IIS 虚拟主机配置⽂件
○ C:\xampp\apache\conf\httpd.conf
○ /var/www/conf/httpd.conf
常⻅集成环境默认⽬录,后⾯往往还有以域名命名的⽬录:
○ C:\Inetpub\wwwroot
○ C:\xampp\htdocs
○ D: \phpStudy\WWW
○ /home/wwwroot/ /www/users/
# 默认路径
linux 还可以⽤瞎蒙⼤法;
○ /var/www/html/ ⽹站名
○ /etc/php.ini php 配置⽂件
○ /etc/httpd/conf.d/php.conf
○ /etc/httpd/conf/httpd.conf Apache 配置⽂件
○ /usr/local/apache/conf/httpd.conf
○ /usr/local/apache2/conf/httpd.conf
○ /usr/local/apache/conf/extra/httpd-vhosts.conf 虚拟⽬录配置⽂件

免责声明:互联网并非法外之地,请大家谨慎操作,不要侵犯他人的合法权益。 

;