从0开始学SQL 注⼊(超详细)
前⾔:
杂谈:
送给萌新的⼏句话:
对于想学安全⽅⾯的⼈来说算是⼀个很基础的知识,
所以不要以为学完了SQL注⼊⾃⼰就是⼤神了,路还远着呢。
学习⽹络安全⽅⾯,实操很重要!很重要!很重要!
所以这⽅⾯的学习⼀定要以理论和实操相结合的⽅式,这样你才会真正有所收获和成长。SQL注⼊⽅⾯的实操
线上可以去CTFhub,墨者,或者⼀些免费的线上靶场练练⼿(这⾥不提供了,⾃⼰勤快点)线下可以⾃⾏搭建实验靶场,然后诸如DVWA,Sqlilabs,等等环境(多动⼿很有⽤的)怎么搭靶场可以参考我前⾯写的⼀篇⽂章
SQL 注⼊
⼀.SQL 注⼊原理:
进⼊⽹页⾥请求的要进⼊到数据库进⾏查询,如果查询语句不做限制就极有可能泄露数据库的数据⼆.SQL 注⼊分类:按查询的分类:数字型SQL注⼊:查询语句是这样的:select * from user where id=1字符型SQL注⼊:查询语句是这样的:select * from user where name='lihua’搜索型SQL注⼊:查询语句是这样的:select * from user where search like '%1%'按http的提交⽅式可以分为:GET型注⼊POST型注⼊coookie型注⼊http请求头注⼊
UserAgent注⼊按效果可以分为:报错注⼊联合查询注⼊盲注(⼜可分为布尔盲注和时间盲注)
堆查询注⼊终于是吧cracer 的渗透教程看完了,也终于是有点时间来整理这些凌乱的笔记了,关于SQL 注⼊后⾯会陆续把写的笔记整理成⽂章,敬请期待!
有什么疑问可以评论也可以直接私信
1
2
3
4
sql容易学吗三.注⼊步骤:
1.⾸先判断是否有注⼊(例如利⽤1=1,1=2)
2.判断注⼊类型(例如加上‘’看是否报错)
3.判断数据库类型(构造不同的查询特征语句)
4.这⼀步众说纷纭,可以开始注⼊,也可先确定数据库权限再开始
5.查数据库的库名,表名,列名以及相应的数据
四. 数据库类型
⽬前主流的数据库有三种,Mysql,Ms sql servel,Oracle(Access暂且不提)
所以简单说说三种数据库的语句区别
(初学者也只能简单学习,想学好SQL注⼊这三种数据库还是要好好研究的)
注意1前⾯和最后的那个b后⾯没有’这个符号,因为要构成sql注⼊语句(设置成了字符型SQL注⼊)1’ or ‘ab’='a+'b --------------MS SQLserver数据库,字符串连接,成功这返回永真条件1’ or ‘ab’=‘a’'b ---------------Mysql数据库,字符串连接,成功这返回永真条件
1’ or ‘ab’=‘a’||'b -------------Oracle数据库,字符串连接,成功这返回永真条件
之后的注⼊就以Mysql注⼊为例
五.注⼊分类详解
1.按查询类型分类注⼊
(1)数字型:
(2)字符型:
(3)搜索型:
2.判断是否存在三种注⼊漏洞
(1)数字型
(2)字符型
(3)搜索型
待续…