目录
今日目标
Ephemeral Accountant.
要求是,登陆一个不存在的用户账户,这个账户名称是 acc0unt4nt@juice-sh.op
,职务是 accouting
。通过注册的方式无法完成挑战,是能通过 SQL 注入的方式,在运行时登陆到这个用户的账户,也就是说,这个用户的数据并不在数据库中,是临时生成的。
先看一下这个挑战可以让我们学到哪些东西。
可以学到什么?
首先,做 SQL 注入到高级的时候会十分的复杂,单纯依靠头脑和纸笔,无法完成这样的任务。自己搭建一个 SQL 后台又太麻烦。因此,下面就会给大家推荐一个很好的在线 SQL 模拟器。支持 SQLite,MariaDB,PostgreSQL 等,测试 SQLite 和 MySQL 都没有问题,同时可以自定义数据表,十分灵活,为测试提供了很大的便利。
另外,最最大的收获将会是学习到如何构造临时(实际不存在的)数据。
好用的 SQL 在线模拟器
推荐两个,一个是 https://paiza.io/en/languages/mysql,后端是 MySQL。
另一个是 https://sqliteonline.com/,有更多的数据库支持。
因为 JuiceShop 后台使用的 SQLite,在讲完 SQLite 之后,我会把相应的 MySQL 对应的操作流程也做出来。
我们需要跟 JuiceShop 一样的数据来测试,直观地看到数据的变化。
根据 JuiceShop 中的 Users 表的列名创建一张 Users 表。如何获取到 Users 表的所有列名看我系列文章的前篇。
然后写入一个测试用户 Sam。
确保连接上 SQLite 数据库。
SQLite 版本 Schema。直接复制粘贴到 slqiteonline 执行即可。
# 创建 Users 表
CREATE TABLE Users (
id INT(6) PRIMARY KEY,
usern