标题 攻防世界 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} 然后就是下一关啦 第一次写博客还望多多海涵!!!
|