[LitCTF 2023]这是什么?SQL !注一下 !

知识点补充

借用探姬师傅的sql文档

https://github.com/ProbiusOfficial/CTF-QuickStart/blob/main/SQL注入入门.md

解题思路

1.根据sql语句提示,随便传入一个数字,先闭合括号 然后用注释符号注释掉后面的括号,我们就能在中间执行对应的SQL语句

sql 复制代码
sql = "SELECT username,password FROM users WHERE id = ".'(((((('.$_GET["id"].'))))))';
sql = "SELECT username,password FROM users WHERE id = ":这是一个SQL查询的一部分,目的是从users表中选择username和password字段,条件是基于id字段。

'(((((('.$_GET["id"].'))))))':这部分使用PHP的字符串连接操作符(.)将多个括号和$_GET["id"]的值添加到SQL字符串中。

$_GET["id"]:从URL的GET参数中获取名为id的值。例如,如果URL是http://example.com/page.php?id=1,那么$_GET["id"]就是1。

整个表达式在$_GET["id"]值的前后各添加了五个括号:前面是(((((,后面是)))))。

2.根据sql内容可以知道这里面只有两列(字段),借助HackBar的自带预处理语句进行注入

3.先对库名进行爆破(列数一定要大于等于输出的数)

4.得到回显

5.根据回显分析得出最有可能存在flag的在ctftraining,test,ctf这几个表中,一个一个进行爆破(在爆ctftraining发现里面存在flag)

6.得知flag在 ctftraining 库中的 ctf 表里面,所以使用联合查询直接拿flag

相关推荐
十年编程老舅20 小时前
Linux DRM:底层逻辑与实践架构
数据库·mysql
The Sheep 202320 小时前
Vue复习
linux·服务器·数据库
qeen8720 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
故渊at21 小时前
第二板块:Android 四大组件标准化学理 | 第九篇:BroadcastReceiver 事件分发与有序广播
android·gitee·broadcast·广播·动态注册·静态注册
云边有个稻草人21 小时前
深度解析:KingbaseES高可用架构落地原理与生产运维实战
数据库·读写分离·数据库运维·金仓数据库·国产数据库技术·数据备份恢复
满天星830357721 小时前
【Qt】信号和槽(二) (自定义信号和槽)
开发语言·数据库·qt
JohnnyDeng9421 小时前
【Android】Room 数据库高级用法与性能调优:从查询瓶颈到毫秒级响应
android·性能优化·kotlin·room
zeqinjie21 小时前
Flutter 折叠屏 iPad / 宽屏适配实践
android·前端·flutter
ab_dg_dp21 小时前
Android 17+ 提取 AIDL 生成 Java 文件的实用脚本
android·java·python