17、SQL显错注入

1.判断是否存在注入,先通过 and 1=1 或 1=2 判断是否存在sql注入,如下图,1=1在sql中运算是为真,1=2为假,所以判断添加的注入是生效了,所以存在SQL注入。

2.猜字段数,通过order by 的形式猜当前查询语句一共有几个字段,通过如下图得出结论 user表一共有三个字段。

 

3.猜表名,注入免不了联合查询,既然前面是三个字段哪么联合查询左边和右边查询出来的字段数是必须要匹配的。

作为一个新手,我并不记得老师讲课时注入的具体代码,反正英文挺长的,但记得提到了mysql里默认有一个information_schema的数据库,里面保存了所有数据库的基本信息,所以用phpstudy在本地搭了一个数据库,对着表里面的字段先在数据库里运行起来。
如下图,查information_schema库中的tables表中,table_schema(数据库里所有的库名)是当前库的所有表。

这里通过翻页查询,发现该库一共只有2个表,一个是use一个是error_flag,我要的flag就在error_flag里面。
这里要注意的是,因为user是三个字段,所以后面查表名的时候也要查三个字段出来,所以就select 1,2,table_name 实际上用到的数据就只有table_name而己,加上1,2只是为了匹配user字段而己。

 

4、查询字段,上面查出来了表名为”error_flag”,知道表名后,哪么就查询该error_flag里数据了,作为菜鸟,同样的先在本地把语名写好并测试,因为我本地不存在error_flag,所以只测试了前半句,后面只是条件而己,只要表存在就没问题。如下图一共查到了error_flag存在三个字段,分别为mima,id,flag

 

5.查询数据,把表 “errof_flag”中的flag字段的数据查询出来。

6.因为上面查询出来的是错误的,然后翻页,一个个尝试提交,然而翻到第二页时提交flag 正确。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读