WeChall - CGX#10 - SQL Injection
Challenge
CGX#10 是 Codegeex 系列的 SQL 注入训练挑战,包含两个登录表单(mask1 / mask2),需要分别注入获取 secret word。挑战描述为 "training challenge",属于 Training / Exploit / MySQL 分类。
Solution
Problem #1
源码位于 mask1.code:
1 | $user = $_POST['username']; |
单引号字符串拼接,无任何过滤。password 用 MD5 处理但不影响注入——可以在 username 中闭合引号并注释掉 password 检查:
1 | username = admin' -- |
-- 后必须有空格。登录成功后页面显示第一个 secret
word:silverbullet。
Problem #2
mask2.code 只有一行有效代码:
1 | require 'solution2.php'; |
源码不可见,但测试发现改用双引号作为字符串定界符:
1 | username = admin" OR "1"="1" -- |
利用双引号闭合方式绕过。登录后显示第二个 secret word:firestarter。
答案
两个 secret word 拼接后提交:
silverbulletfirestarter