第一关 检测 NoSQL 注入
这一关就是靶场的产品类别的数据由MongoDB数据库提供,容易受到nosql注入攻击,通过检测到存在nosql注入,进行攻击后,可以检索出所有产品
提示:1、靶场的产品类别过滤器由 MongoDB NoSQL 数据库提供支持。它容易受到 NoSQL 注入的攻击。
2、要解决该实验室,请执行导致应用程序显示未发布产品的 NoSQL 注入攻击。
具体操作:
1、随便选个类别点击

2、把这个类别过滤器数据包发往repeater

3、然后在 Repeater 中,在 category 参数中提交一个 ' 字符。请注意,这会导致 JavaScript 语法错误。这可能表明用户输入未正确过滤或清理。
响应返回500,页面显示“内部服务器错误”,

4、在类别查询参数的值中提交有效的 JavaScript 有效负载。可以使用以下有效负载:
category=Accessories'+'
通过突出显示类别参数的值(有效负载)并使用 Ctrl+u快捷键对有效负载进行 URL 编码。注意,它不会导致语法错误。这表示可能正在发生某种形式的服务器端注入。
鼠标左键划过类别的值,突显类别的值后,快捷键ctrl+u,对突显的参数类别的值进行 URL 编码
category=Accessories'%2b'
显示了插入的语句,说明正常进行服务端的注入

再尝试下确定是否可以注入布尔条件来更改响应
在 category 参数中插入 false 条件。例如
category=Accessories' && 0 && 'x
确保对有效负载进行 URL 编码。请注意,不会检索任何产品。
category=Accessories'+%26%26+0+%26%26+'x
显示插入的语句,说明向服务端注入成功,但是没有检索任何产品。

接着尝试在 category 参数中插入 true 条件:
category=Accessories' && 1 && 'x
确保对有效负载进行 URL 编码。注意,已检索“礼品”类别中的产品。
category=Accessories'+%26%26+1+%26%26+'x
响应返回:显示插入的语句,还进行的产品筛选

分析完,知道注入布尔条件有效果
那么先提交一个布尔条件,该条件在类别参数中始终计算为 true:
category=Accessories'||1||'
显示所有类别的产品,包括未发布的,类别有关系还是没关系的都会显示出来

刷新浏览器,靶场过关
