美文网首页
强网杯2019 随便注

强网杯2019 随便注

作者: jun123123 | 来源:发表于2019-10-13 21:38 被阅读0次

buuctf第二题。
根据题目提示可知是sql注入题
先进入页面,发现一个输入框且有缺省值1,先在1后加上单引号,出现报错:


1.png

可以大概确认为单字符型注入,在url中添加参数inject=1'%23发现成功回显,可注入
(不是在输入框中输入)
构造联合查询时发现后端对输入语句进行严格过滤:


2.png
可以看到过滤了select等sql关键字及'.'符号,切不区分大小写。
到这里时,我首先用布尔注入的方式得到数据库名,但后面就不知道怎么做了。于是查了一下wp,发现了堆叠注入的思路。

在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products服务器端生成的sql语句为:(因未对输入的参数进行过滤)Select * from products where productid=1;DELETE FROM products当执行查询后,第一条显示查询信息,第二条则将整个表进行删除。
构造url:

http://**:**/?inject=0';show databases--+
4.png

查询到一共有6个库,根据之前布尔注入的结果可知,supersqli是我们使用的库,构造url查询该库中的表:

http://**:**/?inject=0';show tables--+
5.png
再分别构造以下两个url查询这两个表的结构:
http://**:**/?inject=0';desc words
http://**:**/?inject=0';desc `1919810931114514`
注:在mysql中,对表名为纯数字的表进行操作时,要在表名前后加上`符号
查询结果:
6.png
7.png
words表中有两列分别为'id','data',1919810931114514表中有一列名为'flag'。根据列名猜测1919810931114514表中储存了flag,同时根据刚开始时输入参数inject=1时的查询结果有两个,猜测sql语句查询所用到的表为words,但是由于过滤了select等关键字,无法直接对其进行查询。
接下来就不知道怎么办了,再看wp,发现了一顿骚操作。
既然原sql语句是对words表中的id和data列进行查询,那么我们将words表改成其他名字,然后把1919810931114514表改名为words,并将其中flag列改名为words,再加入id列,即可利用原语句对flag进行查询。
构造url:
http://**:**/?inject=0';alter table words rename to word;alter table`1919810931114514` rename to words;alter table words change flag data varchar(100);alter table words add column id int(10) default 1 --+

注:这里要注意几个问题:

  • 对表名为纯数字的表进行操作时,要在前后加上`符号。由于刚开始不知道,在这卡了一段时间。
  • 对列名进行更改时,要在后面指定修改后的数据类型
  • 添加id列时,设置默认值,方便后面查询(1' or 1=1也可)
  • 当其中一个语句执行失败时,其后语句都不会再执行,而我们对表名的修改已经完成。若我们重新填写参数,此时的words表(原1919810931114514表)不存在id列和data列,原sql语句无法执行成功,我们后面填写的语句均不能执行,此时只能重新创建环境。
8.png
9.png

可以看到成功更改表名和列名,再次查询,可以看到回显了flag。

相关文章

  • 强网杯2019 随便注

    buuctf第二题。根据题目提示可知是sql注入题先进入页面,发现一个输入框且有缺省值1,先在1后加上单引号,出现...

  • [强网杯 2019] 随便注

    每天学习网络安全知识,本文记录强网杯的一个SQL注入题。 使用单引号测试,发现页面报错,说明此处存在SQL注入漏洞...

  • 强网杯2019-WEB-随便注

    漏洞复现地址https://buuoj.cn/challenges#[强网杯%202019]随便注] 考察SQL注...

  • BUUCTF-[强网杯 2019]随便注 记录

    [强网杯 2019]随便注 进入该界面 正常步骤注入: 存在注入,order by 看看几个字段,3返回错误,说明...

  • BUUCTF/强网杯2019 随便注.堆叠注入?

    尝试注入发现过滤 /i不区分大小写匹配,也过滤了.sqlmap跑一波 能跑出数据库为surpersqli,但是因为...

  • 2019-强网杯-Web-随便注

    复现环境 https://buuoj.cn/challenges#[%E5%BC%BA%E7%BD%91%E6%9...

  • 2019-09-15 BUUCTF [强网杯 2019]随便注

    首先尝试了直接无过滤提取数据数据库,发现失败了(select等关键词被过滤)查看了别人的题解发现这题支持多语句执行...

  • 浅析mysql存储过程

    去年的强网杯,出了一道mysql堆叠注入叫随便注,这道题被好多比赛玩了一整年,直到现在还是有各种新姿势,但是今天我...

  • 强网杯2019 wp

    膜大佬们太强了,弱小的我只能鞭尸强网先锋。 签到 直接提交 强网先锋-上单 进入页面http://49.4.15....

  • 2019广东强网杯_wp

    Pwn pwn1 Run函数有个条件竞争,可以泄漏libc,后面libc换了2.27,所以条件竞争配合uaf写fd...

网友评论

      本文标题:强网杯2019 随便注

      本文链接:https://www.haomeiwen.com/subject/zcukmctx.html