Cacti介绍:
Cacti是一款利用RRDTool数据存储和图形化功能的完整网络图形化解决方案。
漏洞概述:
在Cacti 1.2.28及以前版本中存在一个命令注入漏洞,该漏洞允许已认证用户在Web服务器上创建任意PHP文件,从而可能导致远程代码执行。
此漏洞出现在图形模板功能中,用户输入的RRDTool命令参数,如--right-axis-label,未被正确过滤。虽然Cacti尝试使用cacti_escapeshellarg()函数转义shell元字符,但它未能处理换行符。这允许攻击者突破预期的命令上下文并注入其他RRDTool命令,最终能够向Web根目录写入恶意PHP文件。
漏洞版本:
Cacti <=1.2.28
Fofa&Shodan:
FOFA: app="Cacti-Monitoring" ZoomEye:app:"Cacti" Shodan: http.html:"Login to Cacti"
搭建环境:
使用docker 容器搭建,采用vulhub中的docker-compose.yml以及entrypoint.sh文件,相关文件内容如下:
docker-compose.yml
services: web: image: vulhub/cacti:1.2.28 ports: - "8080:80" depends_on: - db entrypoint: - bash - /entrypoint.sh volumes: - ./entrypoint.sh:/entrypoint.sh command: apache2-foreground db: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=cacti command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ports: - "3306:3306"
entrypoint.sh
#!/bin/bash set -ex wait-for-it db:3306 -t 300 -- echo "database is connected" if [[ ! $(mysql --host=db --user=root --password=root cacti -e "show tables") =~ "automation_devices" ]]; then mysql --host=db --user=root --password=root cacti < /var/www/html/cacti.sql mysql --host=db --user=root --password=root cacti -e "UPDATE user_auth SET must_change_password='' WHERE username = 'admin'" mysql --host=db --user=root --password=root cacti -e "SET GLOBAL time_zone = 'UTC'" fi cron # first arg is `-f` or `--some-option` if [ "${1#-}" != "$1" ]; then set -- apache2-foreground "$@" fi exec "$@"
将两个文件放入到同一个文件夹中,执行如下命令启动Cacti 1.2.28:
docker-compose up -d
服务启动后,访问htt
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)