基础入门-WEB源码拓展
- 1、WEB源码拓展
- (1)关于web源码目录结构
- (2)关于 WEB 源码脚本类型
- (3)关于 WEB 源码应用分类
- 2、演示案例
- (1)asp、php等源码测试
- (2)平台识别-某CMS无漏洞-默认数据库平台
- 1.人工观察分析
- 2.工具识别----扫描特定文件(不推荐)
- 3.**在线cms识别网站**
- (3)源码应用针对漏洞
- (4)简要目标识别源码获取
- 3、总结
- 4、涉及资源
1、WEB源码拓展
前言:WEB源码在安全测试中是非常重要的信息来源,可以用来代码审计漏洞也可以用来做信息突破口,其中WEB源码有很多技术需要简明分析。比如:获取某ASP源码后可以采用默认数据库下载为突破,获取某其他脚本源码漏洞可以进行代码审计挖掘或分析其业务逻辑等,总之源码的获取将为后期的安全测试提供了更多的思路。
- 关于WEB源码目录结构
- 关于WEB源码脚本类型
- 关于WEB源码应用分类
- 关于WEB源码其他说明
#数据库配置文件,后台目录,模版目录,数据库目录等
#ASP,PHP,ASPX,JSP,JAVAWEB等脚本类型源码安全问题
#社交,论坛,门户,第三方,博客等不同的代码机制对应漏洞
#开源,未开源问题,框架非框架问题,关于CMS识别问题及后续等
#关于源码获取的相关途径:搜索,咸鱼淘宝,第三方源码站,各种行业对应
#总结:
关注应用分类及脚本类型估摸出可能存在的漏洞(其中框架类例外),在获取源码后可进行本地安全测试或代码审计,也可以分析其目录工作原理(数据库备份,bak文件等),未获取到的源码采用各种方法想办法获取!
参考文档:https://websec.readthedocs.io/zh/latest/
第三方源码获取:https://www.cnyma.com/
(1)关于web源码目录结构
-
网站的脚本类型 — asp脚本 — 从index.asp判断出。
-
网站的管理后台 — admin目录。
-
网站的数据 — data(Database)目录 — 包含数据库配置文件。
#asp脚本的数据库为.mdb文件 ----使用的Access打开
#查看管理员
#查看会员
#最主要是数据库配置文件 — config.脚本类型
- 模板文件 — template目录 — 网站的架构、模板
(2)关于 WEB 源码脚本类型
ASP,PHP,ASPX,JSP,JAVAWEB 等脚本类型源码安全问题
https://websec.readthedocs.io/zh/latest/language/index.html
(3)关于 WEB 源码应用分类
-
框架开发 — 直接找脚本语言框架的漏洞
-
非框架开发 ---- 找代码的漏洞
-
cms识别(网上开源代码)— 如何判断是用什么程序搭建的 — 网上公开漏洞
#开源 — 能识别并且在网上下载(白盒)
#内部 — 没有源码或不知道—常规的渗透测试(黑盒)
#源码获取 — 扫描工具扫描备份文件 — cms获取源码 — 特定渠道(非法网站源码)
-
社交,论坛,门户,第三方,博客等不同的代码机制对应漏洞
-
关于源码获取的相关途径:搜索,咸鱼淘宝,第三方源码站 — 菜鸟源码(大概率已经倒闭),各种行业对应—源码之家,站长下载
-
总结:关注应用分类及脚本类型估摸出可能存在的漏洞(其中框架类例外),在获取源码后可进行本地安全测试(自己搭建扫描)或代码审计,也可以分析其目录工作原理(数据库备份,bak 文件等),未获取到的源码采用各种方法想办法获取
2、演示案例
(1)asp、php等源码测试
平台识别 - 某 CMS 无漏洞 - 默认数据库
平台识别 - 某 CMS 有漏洞 - 漏洞利用
- 查看网站信息。
可以看到该网站的框架是 iaspcms。
- 信息识别 — 在网站下载一个 iaspcms 的源码。
- 通过源码查看数据库的位置。(应该是自己下载下来的源码,由于我没有找到可以下载的源码,就查看了靶场网站的源码)
-
知道 iaspcms框架的数据库位置后,靶场网站访问路径下载数据库。
#访问的时候若出现问题,该文件的扩展名被拒绝访问。
#将该扩展名添加为允许访问(真实环境下不能够添加为允许访问,这里是测试)。
- 访问后,该数据库文件被下载。
- 通过数据库获得管理员的密码 — password要解密才行。
- md5解密。
- 访问后台—这个网站没有管理员登录界面
- 根据CMS的类型查找漏洞—根据漏洞提示进行渗透测试
(2)平台识别-某CMS无漏洞-默认数据库平台
1.人工观察分析
2.工具识别----扫描特定文件(不推荐)
- 访问网站。
- 保存网站的logo文件并查看md5值 — 一般为网站的ico文件(favicon.ico)。
- 查看文件的md5值。
certutil -hashfile filename MD5
- 将MD5 的值复制粘贴在CMS指纹识别库中匹配 — 搜索看也没有匹配的md5值。
- 也可以通过获取 特定文件的md5值 进行比对。
- 利用下载工具将该文件进行下载。
- 获取md5值。
这里的命令写错了,应该是
certutil -hashfile style.css MD5
- 在字典库里面进行搜索对比。
3.在线cms识别网站
网站 | 优点 | 缺点 |
---|---|---|
https://www.yunsee.cn/ | 相应的速度快 | 企业版收费 |
http://whatweb.bugscaner.com/ | 可以在线和多个cms识别 | 广告 |
(3)源码应用针对漏洞
niushop电商类关注漏洞点-业务逻辑
参考地址:https://www.niushop.com.cn/download.html
电商类网站的主要漏洞就是网站的支付问题。
(4)简要目标识别源码获取
本地演示个人博客-手工发现其CMS-漏洞搜索或下载分析
http://weipan.1016sangshen.cn/ 内部搭建的靶场
工爆框架-搜索特定url-获取其他相符站点-漏洞测试
借助特定行业源码或咸鱼进行搜索获取-本地搭建-代码审计或其他
- 手工发现其 CMS-漏洞搜索或下载分析。
#访问网站首页 — 检查元素 — 查看特殊的文件名(自己判断)。
- 根据特殊文件名搜索 — 检索有用的信息 。
靶场测试 ---- http://weipan.1016sangshen.cn/ 内部搭建的靶场(不能访问,梳理思路)。
- 故意在网站的路径上打一些错误的路径,让网页报错。
- 检索thinkPHP v5.05框架的漏洞—网上查找。
- 检索thinkPHP的利用工具—thinkPHP_getshell—输入目的网站,检测是否有漏洞。
- 检索网站的路径 — 搜索特定 url — 获取其他相符站点 ---- 漏洞测试。
#找到具有相同特殊url的网站。
---->该站点与靶场网站存在的漏洞一样。
3、总结
- 先登录网站的文件路径 — 报错查看是否为框架 — 工具查找漏洞。
- 不是框架就CMS识别。
- 人工识别 — 底部的如:ZHCMS,ASPCMS等搜索,获得网站源码,以及文件的路径;网站的部分目录;网站的响应包的特殊路径。
- 工具识别 — 点击logo一般为网站的ico图片,通过查看MD5,匹配自己的ICM识别库,获取文件的路径。
- 平台识别 — 通过查找域名,获取信息。
- 源码的获取。
- 站长之家。
- 咸鱼、淘宝 。
4、涉及资源
菜鸟源码(已经无法打开):https://cnmmm.com
云悉互联网WEB资产在线梳理:https://www.yunsee.cn
CMS指纹字典下载(小迪的网站,无法访问):https://w.ddosi.workers.dev
cms 扫描:http://whatweb.bugscaner.com
https://github.com.Lucifer1993/cmsprint
https://github.com.M4tir/Github-Monitor
Web安全学习笔记:https://websec.readthedocs.io/zh/latest