[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

相关推荐
zzh0819 分钟前
MySQL数据库操作笔记
数据库·笔记·mysql
6+h12 分钟前
【Redis】底层原理解析(SDS / 跳表 / IO多路复用 / 单线程模型)
数据库·redis·bootstrap
idolao13 分钟前
CentOS 7 安装 nginx-1.3.15.tar.gz 详细步骤(从源码编译到启动配置)
linux·运维·数据库
EnCi Zheng21 分钟前
J7A-已有数据表如何安全添加新字段 [特殊字符]️
数据库·安全·oracle
biubiuibiu33 分钟前
探秘新飞机:从包装到起飞的全程指南
数据库·python
专注VB编程开发20年1 小时前
SQL SERVER数据库DTE加密和字段加密
数据库·sql server
星霜笔记1 小时前
GitMob — 手机端 GitHub 管理工具
android·kotlin·github·android jetpack
pupudawang1 小时前
MySQL中日期和时间戳的转换:字符到DATE和TIMESTAMP的相互转换
数据库·mysql
V1ncent Chen1 小时前
SQL大师之路 12 函数基础
数据库·sql·mysql·数据分析
LiuYaoheng1 小时前
问题记录:Android Studio Low memory
android·ide·android studio