安全软件
点击放大

!badmoodle
badmoodle's purpose is to help penetration testers, bug hunters and security researchers find more on moodle instances.
Since badmoodle is community-based, it will scan for two different kind of :
* Official : The canonical ones published in Moodle security ad blog;
* Community : The non-canonical ones that are not present in Moodle security ad blog.
The community scan can run in two modes:
* Check mode: Only checks if the host is or not;
* Exploit mode: If the host is , exploit the .
If not specified, the scan will run in check mode.
* Clone the repository:
* Dive into "badmoodle" directory:
* Install requirements for Python:
* Gi permissions to "badmoodle.py":
* Run "badmoodle.py":
If you see the badmoodle logo and help with no errors you are good to go :)
Using badmoodle is also very simple. Once installed you can run it with the following options:
* -h, --help
Show logo and help with options and their descriptions, then exit
* -u TARGET_URL, --url TARGET_URL
Moodle target URL (required)
* -a USERNAME:PASSWORD, --auth USERNAME:PASSWORD
Moodle username and password separated by ":" (default: none)
* -p PROXY_ADDRESS:PORT, --proxy PROXY_ADDRESS:PORT
Proxy used for connecting to moodle (default: none)
* -H HEADER, --header HEADER
Headers used for HTTP connections
* -l LEVEL, --le
Level of tests to perform (default: 1):
* Level 1: simple check by parsing 404 page (MAJOR.MINOR)
* Level 2: simple and specific check by parsing 404 page and confronting pages hash (MAJOR.MINOR.PATCH)
* Level 3: all of the above and plugin/themes enumeration
* -, --
level (default: 1)
* -r, --random-agent
Use a random User Agent for HTTP requests (default: Chrome Win10)
* -e, --exploit
Enable exploit mode (default: check mode)
* -s, --scrape
Scraping mode: scrape all the pages from moodle and save the result in a JSON file (default: disabled)
* -o OUTFILE, --outfile OUTFILE
Save scan results to a JSON file
* -m, --list-modules
Option to list all the community modules and check which ones are enabled
* -U, --update
Update badmoodle official database by scraping Moodle security blog, update plugin and themes list by using Moodle API and retrieve new community modules from GitHub repository
Since Moodle is so strict about their disclosure program, a lot of that security researchers discover and share with Moodle end up rejected or put on hold forever.
All these will never see the light, they will be left unfixed and forgotten by Moodle... but not by badmoodle ;)
You can just add a community module with your exploit code and badmoodle will execute it for you :)
badmoodle is modular, which means that you can add a community module that will be executed by badmoodle without interfering with the rest of the code.
Adding a community module is very simple: just create a .py file inside the "vulns" directory and badmoodle will execute it alongside the other modules.
badmoodle needs only 2 requirements to make your module work:
* It must have a boolean enabled and a string name.
The enabled boolean is used to determine wether badmoodle should run the module or not. This allows to enable or disable modules by simply editing this without removing it from the "vulns" folder.
The name string is just the name, that will be printed in the core.
* It must have the functions check(args, sess, ) and exploit(args, sess, )
These are the main functions of the module, the ones badmoodle will call in the core. Through these functions badmoodle will pass to the module the script arguments, the request session object of the script (useful for authenticated sessions) and moodle .
The check function is a boolean function that only checks whether the host is or not, the exploit function instead will exploit that .
If in check mode badmoodle will call only the check function to only determine whether the host is or not, if in exploit mode badmoodle will also call the exploit function for exploiting the .
You are also free to include all the logging and output functions you need by using from utils.output import * for colored output functions and from utils.logging import * for logging functions.
There follows a template for a badmoodle community module:
badmoodle comes with 2 community modules built-in:
* A module for a Dashboard Stored XSS
* A module for an Atto Editor Stored XSS
Pull requests with new community modules are very welcome :)
Also, if you want to report a bug, feel free to open an issue or contact me via mail at
A special thanks to Panfilo Salutari for the idea of the concept of the tool.
Thanks to moodlescan () for the specific check technique and its database.
开发语言:Python
Star 数:62
该项目属于安全软件方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕Moodle community-based vulnerability scanner展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | badmoodle - Moodle community-based vulnerability scanner |
| 所属分类 | 安全软件 |
| 发布作者 | admin |
| 发布时间 | 2026-10-05 22:44:33 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 216 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |