[极客大挑战 2019]HardSQL 1 学习笔记

这次做的是sql注入类型的题目,上来先试一下单引号,双引号,判断是否为字符型注入,发现并判断其闭合是单引号还是双引号
在这里插入图片描述
这里我先测试的单引号,发现有报错返回,分析报错信息,这里应该是由双引号闭合的,所以我们考虑利用报错注入,这里报错注入我所掌握的是updatexml函数和extractvalue函数,利用这两个报错函数返回报错信息。
首先了解下updatexml()函数
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
改变XML_document中符合XPATH_string的值
而我们的注入语句为:
updatexml(1,concat(0x7e,(select database()),0x7e),1)
其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,然后将错误爆出。
1、尝试使用updatexml函数报错注入
在这里插入图片描述
发现这里无法注入,说明我们有字符串被过滤了,这里我们与原来能发生报错的字符串比较,发现第一个先是or有报错,但发现将or修改为^或者直接只写一个or,发现并没关联,所以后面到空格,这里将空格用括号代替使用,发现成功注入成功。
在这里插入图片描述
这里我们就知道空格被作为过滤的关键字符,然后我们就开始逐次爆破
爆破表名
在这里插入图片描述
这里的开始爆破后发现又有关键字符被过滤了,因为之前的select等都没问题,经测试其他几个字符后发现是=有问题,这里我们可以用sql里面的like的模糊查询,可以构造成like(‘geek’)
在这里插入图片描述
这里已经爆破出了表名,接着开始爆破列名
在这里插入图片描述
这里发现返回的数据超过1行,所以我们需要使用group_concat()函数,它的大概作用为返回同一列分区的信息作为列表返回,因为我们的列名都在同一分区下,所以直接返回全部列的名字信息
在这里插入图片描述
这里已经爆破出了列表名,然后我们就可以爆破password
在这里插入图片描述
这里我们可以看到,我们爆破出了flag,但只是半段,所以要利用right函数爆破出后半段flag
在这里插入图片描述
这里将后半段flag合并就可以了

最后还有一种方法,使用extractvalue函数替换updatexml函数,它是使用方式为
extractvalue(1,concat(0x7e,select database(),0x7e)),然后操作方式与updataxml相同,可以试一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值