2022的ShellCTF之web_WP

Extractor:

考点是SQL注入,不过数据库不是mysql,而是sqlite

首先尝试了:1' or 1=1#

 

 尝试1‘ or 1=1 --

 

 发现有东西,使用 :order by 判断列表,知道有4列

然后尝试获取数据库名:1' union select 1,database(),3,4 -- 

返回无法找到database列,以为过滤的括号,后面才知道是sqlite数据库

于是,构造payload:1’ union select 1,sqlite_verion,3,4 --

返回sqlite数据库版本号,确认了是sqlite数据库

因为sqlite数据库中有sqlite_master内置的数据库,类似于mysql中information_schema,且默认情况下有type,name,sql三个字段

其中最重要的是sql字段,它的意义如下表:

 

 所以我们构造payload如下:1' union select 1,2,3,sql from sqlite_master -- 

返回结果:

 

 可以知道表名Admins,以及该表中有id,user,pass,content 三个字段

所以我们构造payload去读取字段中的内容:1' union select 1,user,pass,content from Admins --

得到结果:

 

 Choosy:

打开页面如下:

 

 在输入框随便输入什么内容,都会打印出来

 

 随便看看请求头,在Accept请求头中发现text/html,application/xml,猜测有xxe注入,或者xss

 

 在输入框输入:<h1>h1</h1>,发现可以插入到前端页面中

 

于是尝试xxe,无果。尝试xss,构造代码调用js弹窗 

一顿乱试,发现payload:<img src=x onerror=alert(document.cookies)>可以

得到flag:

Colour Cookie:

打开页面如下:

 

 额,这题一开始真的不知道考什么,赛后也不是很懂,只知道解题过程

直接crtl+u看源码,发现有一个自己的css,和题目名称一样代cookies(脑洞)

 

 点进去也没发现什么东西,后来随便上下滑动滚轮才发现,下面有写东西:

 

 单这样看还以为要name=C0loR呢,结果是把参数name改成C0loR,然后参数C0loR要接受什么呢?结果是blue,就纯脑洞解题

于是payload:check?C0loR=blue

ILLUSION:

考点是命令执行漏洞,加上一些过滤

怎么知道是命令执行的?猜测,乱试,试的时候要考虑有过滤,要不然你就以为不是这个方面的漏洞,然后走向错误的方向。归根结底就是经验之谈,加上一些特征发现。

如下,我发现打开的页面提交按钮是一个run,就去猜测是命令执行。

 

 测试ls,无果,尝试双写绕过,测试llss,得到回应,验证猜测。

 

 命令执行成功,根据提示

 

 所以我们找出这个文件,然后cat

接下来就是目录遍历。逐级查看,最终发现flag文件

 

 然后发现只是过滤了一些关键字,没有过滤cat

 

 得到flag:

 

总结:

这些题对做过很多题有经验的人来说,就非常简单,没做过什么题的没经验的,都是抓瞎,能不能做出来,就看灵机一动,或者百度大法。就说本人自己,那道xss的题,我用xxe去打,打了一下午,都没结果,还不知道自己已经走错方法,以为只是出题者过滤掉了一些关键字,然后百度在那在如何绕过xx等等。真就那句话:会者不难:)

外链:

(152条消息) SQLite sqlite_master_丸子叮咚响的博客-CSDN博客_sqlite_master

posted @ 2022-08-15 00:47  nLesxw  阅读(107)  评论(0编辑  收藏  举报