Sql注入的定义,
百度了一下结果是
Sql全称:Structured Query Language,叫做结构化查询语言
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
虽然是一个恶意的命令但是在网络安全中也极其重要,只有先学会注入的过程,才能防止其攻击
注入主要是在浏览器然后按F12 出现一个框架 你可以注入一些语句。比如火狐浏览器 max hackbar 就可以
万能密码:
万能密码就是在一个用户登陆框中输入1‘or 1=1# 然后成功绕过输入密码这一阶段进行登录
其中登陆的条件是username=username&&password=password
而1‘or 1=1# 这一逻辑语句正好满足这条件即1=1
但这些只适用于研究,在真正的登陆页面还是不切实际的
进入搭建好的靶场后
然后点击第二个,会出现一些关卡和靶场内容
联合查询
我们在实际应用中,或许会用到关于sql的联合查询的应用,下面来总结一下联合查询的具体应用,做一下记录便于记忆。
首先,通过一个实例来讲一下联合查询(关键词 union)
语法:
select …
union
select …
union
…
改用union的用法
select * from empoloyees where email like "%a%"
union
select * from empoloyees where department_id >90;
可能很多人不理解,为什么明明可以整合到一起用or解决,为什么还要选择用更为复杂的union
其实,union在下面的情形中使用才会显出优势来。
*查询中国用户中男性的信息和外国用户中男性用户的信息,数据是分别存在两个不同的数据表格中,且数据的字段名不一致*
select id, cname ,csex from t_ca where csex='男'
union
select t_id ,tName,tGender from t_ua where tGender='male';
所以我们通过上面的例子可以看出来联合查询的应用场景就是:
要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息是一致的。
那我们在使用联合查询时需要注意的事项都有哪些,一起来看一下:
1、要求多条查询语句的查询列数是一致的。
2、要求多条查询语句的查询的每一列的类型和顺序最好是对应一致的。
3、注意union的去重,如果不想去重,使用union all可以包含重复项
这是我现在想到的,以后有新的知识点,再添加(再次感谢大佬的帮助)