BUUCTF Web [强网杯 2019]随便注

举报
士别三日wyx 发表于 2021/12/23 22:51:38 2021/12/23
【摘要】 「作者主页」:士别三日wyx   此文章已录入专栏《网络攻防》,持续更新热门靶场的通关教程 「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击...

「作者主页」:士别三日wyx
  此文章已录入专栏《网络攻防》,持续更新热门靶场的通关教程
「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之九十九的同期选手。

一、题目简介

进入题目链接后,是一个「查询」功能,在输入框中提交id,即可返回「响应」的内容。

在这里插入图片描述
在输入框中输入一个2,即可查询2对应的内容
在这里插入图片描述

二、思路分析

这一关是一个「SQL注入漏洞」,推荐使用堆叠注入,show + handler命令获取表中数据
右键查看页面源代码,「注释」里面说sqlmap是没有灵魂的,众所周知,sqlmap是SQL注入神器,这也变相说明这关考察的是SQL注入漏洞
在这里插入图片描述

1)判断注入点

使用数值型、字符型等各种类型的「万能账号」进行测试(参考《万能账号密码使用详解》),正确响应的payload如下:

0' or true -- a

  
 
  • 1

页面中返回了多条数据,因为万能账号使SQL恒成立,后端查询出了表中的「所有数据」
在这里插入图片描述
由此可知,注入点为「单引号字符型」注入。

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即可过关
在这里插入图片描述

四、总结

喜欢一个东西首先要先学会「尊重」,虽然网络安全的圈子不乏各种灰产,以及高调宣传自己是黑客的脚本小子,但不可否认,这个圈子仍有不少人保持着「举世皆浊我独清,众人皆醉我独醒」的心态,努力磨砺技术,提升自身修养,让互联网变得更加安全

文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wangyuxiang946/article/details/120951594

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。