记一次SRC—从 Drupal 自定义模块源码泄露到任意文件读取和sql注入
原创
zkaq-诚信友善
zkaq-诚信友善
掌控安全EDU
2026年10月15日 12:26
江西
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
扫码领资料
获网安教程
本文由掌控安全学院 - shs 投稿
来Track安全社区投稿~
千元稿费!还有保底奖励~( https://bbs.zkaq.cn )****
本文所述漏洞测试流程与技术细节,仅用于网络安全领域的经验交流与防御技术研究。文中所涉及的所有系统漏洞,均已在披露前完成修复。严禁任何个人或组织将文中技术用于未授权系统的攻击、入侵或破坏行为。任何因违反此声明、擅自利用相关技术而引发的法律责任及不良后果,均由实际操作者自行承担,与本文作者及发布平台无关
测试过程总结
本次测试从一个需要登录的 Drupal 站点开始,通过页面源代码识别出 Drupal 7,并从前端 JavaScript 引用中发现 /sites/all/modules/custom/common/ 自定义模块路径。随后依据 Drupal 模块命名规则尝试访问 common.info 和 common.module,成功获取模块源码。
开局一个首页无权限,需要登录
查看页面源代码发现使用了 Drupal 7 cms
并且发现引用的js资源存在于此路径 /sites/all/modules/custom/ 下,此路径是Drupal的站点自定义模块
查看其中 /sites/all/modules/custom/common/xxxx\_xxxx\_view.js
发现资源下载相关路径:?q=xxxx/xxxx/downloadResource/ 这说明站点存在资源下载功能
按照 Drupal 7 的模块文件命名规则,/sites/all/modules/custom/common中目录名为 common 的模块通常包含:
common.info
common.module
于是 尝试访问 https://xxxx/sites/all/modules/custom/common/common.module
成功下载源码
审计源码发现三个关键证据:
- 真实路由是 downloadResourceBegin/%。
- 回调函数是 downloadResourceBegin。
- access callback => true 表示该路由没有登录权限判断。
继续查看源码中正常下载函数:
由此可以确定,正常业务会把文件 URI 拼接到:
?q=downloadResourceBegin/<下载文件的路径>
尝试构造请求,成功实现任意文件读取:
后续继续审计还发现一个布尔sql注入
设置1=2条件为假,立马响应
1=1 条件为真,响应超时,推测是sleep时间设置太长了,数据库会执行多次sleep导致的超时
把sleep时间设置为0.3,成功延迟20秒后响应:
通过fofa语法检索,发现32条匹配结果,证明为通用系统
总结
本次测试并不是从盲目扫描或直接构造攻击载荷开始,而是沿着“页面线索—技术识别—前端资源—自定义模块源码—源码审计—行为验证”的路径逐步推进。各位师傅在发现目标使用Drupal时也可以按照文章中 自定义模块 的方向尝试推进
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,
所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
没看够~?欢迎关注!
分享本文到朋友圈,可以凭截图找老师领取
上千教程+工具+交流群+靶场账号哦
分享后扫码加我!
回顾往期内容
代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!
点赞+在看支持一下吧~感谢看官老爷~
你的点赞是我更新的动力
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论