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
2022的ShellCTF之web_WP的更多相关文章
- CJOJ 2022 【一本通】简单的背包问题(搜索)
CJOJ 2022 [一本通]简单的背包问题(搜索) Description 设有一个背包可以放入的物品重量为S,现有n件物品,重量分别是w1,w2,w3,-wn. 问能否从这n件物品中选择若干件放入 ...
- HDU 2022 海选女主角
http://acm.hdu.edu.cn/showproblem.php?pid=2022 Problem Description potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业 ...
- ural 2022 Riding a Toad
2022. Riding a Toad Time limit: 1.0 secondMemory limit: 64 MB A tribe of leafmen live in the old for ...
- [LOJ 2022]「AHOI / HNOI2017」队长快跑
[LOJ 2022]「AHOI / HNOI2017」队长快跑 链接 链接 题解 不难看出,除了影响到起点和终点的射线以外,射线的角度没有意义,因为如果一定要从该射线的射出一侧过去,必然会撞到射线 因 ...
- [翻译]正式宣布 Visual Studio 2022
原文: [Visual Studio 2022] 首先,我们要感谢正在阅读这篇文章的你,我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意见,或 ...
- 它来了!!!有史以来第一个64位Visual Studio(2022)预览版将在今夏发布!
美国时间2021年4月19日,微软产品研发部一位负责人Amanda Silver在其博客上发布一则<Visual Studio 2022>的消息,表示将在今年(2021年)夏天发布Visu ...
- .NET6系列:微软正式宣布Visual Studio 2022
系列目录 [已更新最新开发文章,点击查看详细] 首先,我们要感谢正在阅读这篇文章的你,我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意 ...
- .NET6系列:Visual Studio 2022 线路图
系列目录 [已更新最新开发文章,点击查看详细] 在上一篇博客<Visual Studio 2022>中介绍了VS2022的性能改进与重要功能.本文主要介绍在 Visual Stud ...
- 微软发布了Visual Studio 2022 Preview 1 以及.NET 6 Preview 5
Microsoft 今天宣布了Visual Studio 2022 的第一个预览版,并且同时也发布了.NET 6 Preview 5. https://devblogs.microsoft.com/v ...
随机推荐
- Django 之ModelAdmin对象
一.后台管理系统配置 1 在该表对应的models类里面添加一个Meta类 class Meta: verbose_name_plural = '用户表' #指定该表在admin后台的名字为:用户表 ...
- ClickHouse(07)ClickHouse数据库引擎解析
目录 Atomic 建表语句 特性 Table UUID RENAME TABLES DROP/DETACH TABLES EXCHANGE TABLES ReplicatedMergeTree in ...
- Mybatis PageHelper 使用的注意事项
什么时候会导致不安全的分页? PageHelper 方法使用了静态的 ThreadLocal 参数,分页参数和线程是绑定的. 只要你可以保证在 PageHelper 方法调用后紧跟 MyBatis 查 ...
- 关于for循环当中发生强制类型转换的问题
Map map1 = new HashMap(); Map map2 = new HashMap(); Map map3 = new HashMap(); List<Map> list = ...
- .NET Core C#系列之XiaoFeng.Threading.JobScheduler作业调度
作业调度其实就是一个定时器,定时完成某件事, 比如:每分钟执行一次,每小时执行一次,每天执行一次,第二周几执行,每月几号几点执行,间隔多少个小时执行一次等. 作业类:XiaoFeng.Threadin ...
- HTML躬行记(2)——WebRTC基础实践
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,在 2011 年由 Google 提出,经过 10 年的发展,W3C 于 2021 年正式发布 WebR ...
- 第一阶段:linux运维基础·1
1. 服务器的主要硬件是?以及其作用是? cpu 相当于人体的大脑,负责计算机的运算和控制 内存 解决cpu与硬盘之间速度不匹配的问题 磁盘 永久存放数据的存储器 主板 直接或间接的将所有的设备连接在 ...
- Landau-Vishkin
基础算法 假设我们有两个字符串:,每个字符串由A C G T四个字母组成. 在两个字符串上,都有三种可能的编辑操作(突变): 删除某个字符 在某个位置插入字符 改变某个字符 每一个编辑操作都有惩罚值. ...
- 关于ASP.NET Core WebSocket实现集群的思考
前言 提到WebSocket相信大家都听说过,它的初衷是为了解决客户端浏览器与服务端进行双向通信,是在单个TCP连接上进行全双工通讯的协议.在没有WebSocket之前只能通过浏览器到服务端的请求应答 ...
- js高级之对象高级部分
基于尚硅谷的尚硅谷JavaScript高级教程提供笔记撰写,加入一些个人理解 github源码 博客下载 对象的创建模式 Object构造函数模式 套路: 先创建空Object对象, 再动态添加属性/ ...