Cassandra 注入 (Cassandra Injection)
Apache Cassandra 是一款免费、开源的分布式宽列存储 NoSQL 数据库管理系统。
摘要 (Summary)
- CQL 注入的局限性 (#cql-injection-limitations)
- Cassandra 注释 (#cassandra-comment)
- Cassandra 登录绕过 (#cassandra-login-bypass)
- 参考资料 (#references)
CQL 注入的局限性 (CQL Injection Limitations)
-
Cassandra 是一款非关系型数据库,因此 CQL 不支持
JOIN或UNION语句,这使得跨表查询极具挑战。 -
此外,Cassandra 缺乏像
DATABASE()或USER()这样用于获取数据库元数据的便捷内置函数。 -
另一个局限性是 CQL 中缺失
OR运算符,这阻止了创建恒真条件;例如,像SELECT * FROM table WHERE col1='a' OR col2='b';这样的查询将被拒绝。 -
基于时间的攻击通常依赖于
SLEEP()函数产生延迟,由于 CQL 并不包含SLEEP()函数,因此在 CQL 中也很难执行此类攻击。 -
CQL 不支持子查询或其他嵌套语句,因此像
SELECT * FROM table WHERE column=(SELECT column FROM table LIMIT 1);这样的查询将被拒绝。
Cassandra 注释 (Cassandra Comment)
Cassandra 登录绕过 (Cassandra Login Bypass)
示例 #1
示例 #2
注入后的 SQL 查询如下所示: