NoSQL注入实验室搭建与实战指南

本文详细介绍了如何搭建NoSQL注入实验环境,使用MongoDB构建两种漏洞场景:传统注入和NoSQL特有的脚本注入攻击,包含环境配置步骤和故障排查方法。

NoSQLi Lab

随着NoSQL的普及,我决定构建一个实验室来实践攻击NoSQL数据库的各种技术。这就是最终成果…

由于之前开发工作中使用过Redis,本次实验选择MongoDB。实验室包含两种攻击场景:等效于SQL注入"or 1=1"的漏洞类型,以及NoSQL特有的脚本注入攻击。后续可能增加更多场景,但目前这两个已足够入门。

环境安装指南

实验环境安装简便,唯一需要注意的是确保Linux发行版包含最新的PHP MongoDB驱动。正确驱动为:

1
php-mongodb - MongoDB driver for PHP

错误驱动为:

1
php5-mongo - MongoDB database driver

实验室代码托管于Github:https://github.com/digininja/nosqlilab。以下演示在Debian Stretch上的部署步骤(Jessie使用旧版驱动无法运行):

1
2
3
4
5
6
apt-get update && apt-get dist-upgrade
apt-get install php-mongodb apache2 vim mongodb git php

cd /var/www/html/
rm index.html 
git clone https://github.com/digininja/nosqlilab

访问服务器IP应显示实验室首页。

数据库初始化

首先通过"Reset Database"链接填充测试数据。成功时页面显示"Database Reset Successfully"且无报错。

若出现PHP源码显示,说明PHP未安装或未启用;若页面渲染中断且无成功消息,可能是MongoDB库缺失,请检查Apache错误日志。可通过phpinfo()页面验证驱动安装状态。

漏洞测试页面

环境就绪后存在两个漏洞页面:

  • Guess The Key
  • User Lookup

具体攻击方法不再赘述,可参考OWASP NoSQL注入测试指南。如遇困难,解决方案章节提供示例答案。

问题反馈


支持本站:本站项目均为无偿开发,可通过affiliate链接支持作者(获得账户积分或返现)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计