「字符型」注入
一、数值型注入
前台页面输入的参数是「数字」。
比如下面这个根据ID查询用户的功能。
后台对应的SQL如下,字段类型是数值型,这种就是数值型注入。
select \* from user where id = 1;
二、字符型注入
前台页面输入的参数是「字符串」。
比如下面这个登录功能,输入的用户名和密码是字符串。
后台对应的SQL如下,字段类型是字符型,这种就是字符型注入。
select \* from user
where username = 'zhangsan' and password = '123abc';
字符可以使用单引号包裹,也可以使用双引号包裹,根据包裹字符串的「引号」不同,字符型注入可以分为:「单引号字符型」注入和「双引号字符型」注入。
1)单引号字符型注入
参数使用「单引号」包裹时,叫做单引号字符型注入,比如下面这个SQL,就是单引号字符型注入。
select \* from user where username = 'zhangsan';
2)双引号字符型注入
参数使用「双引号」包裹时,叫做双引号字符型注入,比如下面这个SQL,就是双引号字符型注入。
select \* from user where username = "zhangsan";
3)带有括号的注入
理论上来说,只有数值型和字符型两种注入类型。
SQL的语法,支持使用一个或多个「括号」包裹参数,使得这两个基础的注入类型存在一些变种。
a. 数值型+括号的注入
使用括号包裹数值型参数,比如下面这种SQL。
select \* from user where id = (1);
select \* from user where id = ((1));
包裹多个括号……
b. 单引号字符串+括号的注入
使用括号和单引号包裹参数,比如下面这种SQL。
select \* from user where username = ('zhangsan');
select \* from user where username = (('zhangsan'));
包裹多个括号……
c. 双引号字符串+括号的注入
使用括号和双引号包裹参数,比如下面这种SQL
select \* from user where username = ("zhangsan");
select \* from user where username = (("zhangsan"));
包裹多个括号……
三、其他类型
除了根据参数的分类以外,还有其他分类方式。
根据数据的「提交方式」分类:
- GET注入:使用get请求提交数据,比如 xxx.php?id=1.
- POST注入:使用post请求提交数据,比如表单。
- Cookie注入:使用Cookie的某个字段提交数据,比如在Cookie中保存用户信息。
- HTTP Header注入:使用请求头提交数据,比如检测HTTP中的源地址、主机IP等。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!