[极客大挑战 2019]EasySQL

文章讲述了在靶场环境中,通过尝试登录框注入技术,使用万能密码直接成功登录并获取到flag的过程。

进入靶场:
在这里插入图片描述

  • 登录界面,直接先尝试一下登录框注入,万能密码。

在这里插入图片描述

直接拿到flag。

给定引用中未包含极客挑战2019 easysql 2的相关内容,不过可以依据一般SQL注入题目的解题思路来推测其可能的解题步骤。 通常对于SQL注入题目,首先要判断注入点和闭合方式。可以尝试输入一些特殊字符,如单引号 `'`、双引号 `"`、括号 `()` 等,观察页面的响应变化。若输入特殊字符后页面报错,可能存在注入点,并且能根据报错信息判断闭合方式。就像在某些题目中输入 `1'`,与原本的单引号形成 `1''`,数据库会将其处理成 `1'` 的字符串,从而影响SQL语句的正常闭合和执行 [^3]。 判断出闭合方式后,接着要判断数据库类型和版本。可以使用一些数据库特定的函数和语句,如 `version()` 获取数据库版本,`database()` 获取当前数据库名。 之后是爆库、爆表和爆列。爆库可以使用类似 `union select 1,2,group_concat(schema_name) from information_schema.schemata` 的语句;爆表则是在确定数据库名后,用 `union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='数据库名'`;爆列就是在确定表名后,用 `union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='表名'`,如同在 [极客挑战 2019]LoveSQL1 中爆 `l0ve1ysq1` 表的列一样 [^1]。 最后,获取所需数据,即根据前面爆出来的列名,使用 `union select 列1,列2,... from 表名` 来获取具体的数据,可能就是题目要求的 flag。 以下是一个简单的Python脚本示例,用于尝试注入: ```python import requests url = "http://example.com" # 替换为实际的题目URL payloads = ["1'", "1\"", "1')", "1\")"] for payload in payloads: data = { "username": payload, "password": "123" # 可根据实际情况修改 } response = requests.post(url, data=data) if "error" in response.text.lower(): print(f"可能的注入点和闭合方式:{payload}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值