SQL注入基础(课堂笔记)

1.什么是SQL注入

SQL注入就是指Web应用程序对用户输入数据的合理性没有进行判断,前端传入后端的参数是攻击者可控制的,并且根据参数带入数据库查询,通过SQL语句,实现无账号登录,甚至篡改数据库。不是利用BUG,而是程序员编写时的疏忽造成潜在危险!

我的理解就是:通过构造一条精巧的语句,来查询想要得到的结果!!!

2.注入分类

1.按照查询字段:

字符型:输入参数为字符串类型,默认为字符串类型的注入

数字型:输入参数为整形类型,默认为数字型类型的注入

2.按照注入方法:

union注入,报错注入,布尔注入,时间注入

3.什么是注入点

访问数据库的连接

那怎么查找注入点呢?就是不断尝试前端输入和后端有交互的点!

有几个常见的就是:

①xxx.xxx.xxx/xxx.php?id=1.....(从数据库中获取数据的过程)

②对网站进行抓包,注意有post参数的数据包

③网站的搜索框

4.如何判断是字符型注入还是数字型注入

①使用xxx.xxx.xxx/xxx.php?id=1 and1=1xxx.xxx.xxx/xxx.php?id=1 and1=2来判断!

若两个都提交且都能正常回显页面,则不可能是数字型,那就是字符型

若提交xxx.xxx.xxx/xxx.php?id=1 and1=2没有正常回显,则是数字型

②使用xxx.xxx.xxx/xxx.php?id=2-1来判断

若为数字型,则可以正常回显,因为字符型不能做“减法”

5.闭合

字符型需要闭合

数字型不需要闭合符来闭合

常见的闭合方式有   '  (英文单引号)       "  (英文双引号)         ') (英文单引号和英文括号)

                                ")  (英文双引号和英文括号)

闭合作用:手工提交闭合符号,结束前一段查询语句,后面即可加入其它语句,查询需要的参数。

不需要的语句可以用注释符号“--+”  或  "#"  或  "%23" 来注释掉!

6.union联合注入

闭合之后,先用group by n(n为当前页面的数据列数量)用二分法判断默认页面数据列数量!

然后union select  1,2,......,n(1~n就是当前页面的数据列数量)database()

可以回显某一列中的数据,记住第一列没有回显位

页面只能显示一列内容,第二列的内容是不显示的,可以把第一列的内容改为数据库不存在的数据

比如xxx.xxx.xxx/xxx.php?id=0或者?id=-1

7.一般步骤

①查找注入点

②判断是字符型还是数字型

③如果是字符型,找到闭合方式

④判断查询列数 ,用 group by 或者 order by

⑤查询回显位置 ,如id=0或者id=-1

注意:一定要都是英文符号!!!!!!!!!!!

以上就是今天学习的内容,如有不对的知识点,请大家指出,我认真修改!

谢谢大家的支持!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值