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,就纯脑洞解题
ILLUSION:
考点是命令执行漏洞,加上一些过滤
怎么知道是命令执行的?猜测,乱试,试的时候要考虑有过滤,要不然你就以为不是这个方面的漏洞,然后走向错误的方向。归根结底就是经验之谈,加上一些特征发现。
如下,我发现打开的页面提交按钮是一个run,就去猜测是命令执行。
测试ls,无果,尝试双写绕过,测试llss,得到回应,验证猜测。
命令执行成功,根据提示
所以我们找出这个文件,然后cat
接下来就是目录遍历。逐级查看,最终发现flag文件
然后发现只是过滤了一些关键字,没有过滤cat
得到flag:
总结:
这些题对做过很多题有经验的人来说,就非常简单,没做过什么题的没经验的,都是抓瞎,能不能做出来,就看灵机一动,或者百度大法。就说本人自己,那道xss的题,我用xxe去打,打了一下午,都没结果,还不知道自己已经走错方法,以为只是出题者过滤掉了一些关键字,然后百度在那在如何绕过xx等等。真就那句话:会者不难:)