2019年CTF5月比赛记录(一):ISCC_2019线上赛部分题目writeup

2023-12-27 23:10

本文主要是介绍2019年CTF5月比赛记录(一):ISCC_2019线上赛部分题目writeup,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ISCC战线拉得蛮长的,从5月1号一直干到25号。我之前也没参加过ISCC,就第一次参加做题情况来看,除了第一天结束后排名在前100,之后就再也没往上走过,尼玛一直掉啊,每天退步一点点,垂直下降,心疼啊。我一个web手竟然要靠做Misc上分?
就参赛的选手来讲,直观感觉就是HN-大佬真多啊,前面有好多诶??;就题目而言,web前四道题好水啊,不是原题就是改编题,Misc纯脑洞,不解释。

强网杯前练练手

比赛时间:2019年5月1日至2019年5月25日

Writeup

一、Web:
1.web1:
这题改编来的:
在这里插入图片描述
直接代码审计,需要GET传两个参数,一个value,一个password。
先看value,通过后面的代码不难看出,value是数组赋值,而且value[$i]的ascii值不能在32到127之间,然后经过chr()把value传到username里,从而进行username的比较,需要使username=‘w3lc0me_To_ISCC2019’,这样看的话矛盾出现了,因为前面的条件限制了我们直接对value赋username所对应的值,既然这样,看看能不能用别的方法。注意到chr()函数在转换时会自动取模256,所以我们只需在相对应的ascii码上加上256就可以。
再看password,主要解决intval()的问题就行了,如果我们传入16进制的数值,intval(password)在这里会直接返回0,但是intval(password+1)在转换时会将16进制数先转换成10进制数再加1,然后输出。
最后构造payload得到flag:
在这里插入图片描述
2.web2:
这题考的算是burp的intruder和图形验证码,但是最后是可以试出来的。而且最后的密码是"996"不得不说,还是紧贴时政的?。
在这里插入图片描述
三位数字密码直接000-999,关键就是验证码。这道题是图片的,我曾经在蓝鲸CTF打卡练习场里做过另一个含验证码爆破的,但那个比这个简单,直接在burp里设置宏。对于这道题,这是个图片的,所以直接上工具PKAV,最后得到flag:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.web3:
这题考的二次注入,是sql-libs上的题目,应该是没怎么改动,比较讨厌的是大佬们把能注册的用户名都注册了一遍?,后来实在没办法注册了个"admin ‘#",然后就是常规的修改密码,最后再用admin登陆拿到flag:
在这里插入图片描述
在这里插入图片描述
4.web4:
这道题其实也是个改编题,来自国外某CTF的一个php审计题目。打开后一段代码,开始审计:
在这里插入图片描述
这尼玛有点秀啊,cxk都出来了,怀着一刻好奇心看一下:
在这里插入图片描述
呵呵呵,我尼玛动态图:
在这里插入图片描述
好了回归正题,开始代码审计,需要GET传参,先是action,直接赋值"auth",比较有意思的是下面的内容,他是想让我们sha256的值相等,一开觉得有点意思,后来又看了看前面的代码,发现一个东西"parse_str()“这是一个变量覆盖的函数,可以查php手册找到,我在别的地方查的手册:
在这里插入图片描述
所以一切就变得简单了,我们只要GET传一个key值,然后再传key的sha256值,进行覆盖,我这里取得0,直接就可以得到flag。
在这里插入图片描述
5.web5、6:(未完成)
web6这道题的话先注册一个账号,注册这就卡了一会,一开始注册的几个用户名都会显示"false”:
在这里插入图片描述
在这里插入图片描述
然后继续,找到一段代码,和相关的源码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就没然后了,等着看师傅们的wp了
web5应该是注入,但是没找到登陆口,一开始的话修改一下User-Agent,里面加上一个Union.373,提示输入用户名,密码。这一部分应该是要有注入的了,然后同理,坐等…
二、MISC:
MISC的题目看脑洞了,只要脑洞大,就能拿flag,但是flag的提交格式真是千变万化??。
1.隐藏的信息:
打开文件后是一串进制数,先观察一下,就我当时想的就是应该是8进制,因为没有出现7以上的数,那么直接找对应的ASCII码:
在这里插入图片描述
很明显是一段base64编码,直接解码:
在这里插入图片描述
2.倒立屋:
这题我尼玛真是神了,先给一张图,直接放stegsolve里分析,然后一个一个试,一开始看到了一个:
在这里插入图片描述
我一开始以为没个什么卵用,继续找,找了好长一段时间,啥也没找到,什么方法都试过了,最后又回到这个地方,那就试试这个呗,正着输没用,那就反着来,最后尼玛竟然真是flag,"9102_cCsI"我勒个擦,真是服了。??
3.Welcome:
这题也还好吧,打开后又是一个文本文件,一堆繁体字,还是蛮有规律的繁体字,当时想的是’01’编码或是’—.'之类的,然后就是一个一个试。
先是01,根据他的分组,有两个情况,第一个是以逃开始的文字段编为1;长开头的编为0。另外一个是逃开始的位0,长开头的为1。无论怎样都是8位编为1组,最后在第二组里二进制转码得到flag:
在这里插入图片描述
在这里插入图片描述
4.最危险的地方就是最安全的地方:
这个也是先打开发现图片文件损坏,没办法看,notepad打开看了一下,里面还有其他的隐藏图片,打开foremost分离出来:
在这里插入图片描述
看了一下全部都是二维码,批量解码:
在这里插入图片描述
在这里插入图片描述
第50个png有问题,winhex看一眼得到flag;
在这里插入图片描述
5.无法运行的exe:
打开后一个exe文件,无法运行,惯例notepad看一眼,是一堆编码,姑且当作base64:
在这里插入图片描述
然后转一下:
在这里插入图片描述
发现出来个png,先把转换出来的转换到本地,后缀名改为png,发现仍然打不开,还是winhex走一波,这里比较靠脑洞的就是要修改一个值"00"改为"0A",再保存到本地,出现了二维码:
在这里插入图片描述
解码即可得到flag:
在这里插入图片描述
6.High起来!:
这个也是一张图片文件打不开,老套路winhex看一眼,发现文件头不是png的,改一下保存出现二维码,扫一下:
在这里插入图片描述
在这里插入图片描述
当铺密码解一下:
在这里插入图片描述
我一开始以为这就是,后来又想了一下,这题应该还有音频,暂且放着不管。foremost继续分离文件,发现"01.mp3"文件:
在这里插入图片描述
然后听了会,嗯还行,继续放到mp3stego下,我一开始没用过这软件,因为之前没遇到过音频隐写,CSDN上搜了一下操作流程,发现有个-P password,第一次没用,啥玩意也没出来,后来想了一下欸,之前的数字好像可以用上了,开始操作:
在这里插入图片描述
最后出来txt文件,打开直接转ASCII码,得到flag:
在这里插入图片描述
7.他们能在一起吗?:
直接一个二维码,扫码得到一串base64文件,解码:
在这里插入图片描述
url再解一下:
在这里插入图片描述
出来的东西先留着,因为二维码里还有东西,同样foremost分离出来:
在这里插入图片描述
在zip文件夹里有我们想要的东西,但是需要输入密码,直接用前面的那个,放进去得到flag:
在这里插入图片描述
8.Aesop’s secret:
打开是一个gif动态图,直接按帧数分离:
在这里插入图片描述
一开始以为是个二维码拼接起来发现不是,是个ISCC,还是不知道有啥用,那就stegsolve看一下,发现一段代码:
在这里插入图片描述
一开始想着是不是base64,试了一下不是,后来又想了一下应该是有密码之类的,得用上"ISCC",结合题目名称,确定是AES,解码开始,连结两次码,得到flag:
在这里插入图片描述
在这里插入图片描述
9.Keyes’ secret:
这题蛮狠的,考的键盘编码,看完眼睛都快废掉了,给了一大长串密码,最后的落脚点就是在"{WSXIUYHNBVTRFVBTRFVBQWERTYQAZSCEWSXCDEEFVTYHNMKJTGBNMJUYGRDXCVBMNBVCDRTGHUWSXCFEQWERTYTRFVBWSXNBVCXSWERFRFVGYHNWSXCDEMNBVCDRTGHU}"上面,按照我自己的理解尝试了许多次,可能下面的也存在错的,但是最后提交对了?
1.“WSX”:I; 2.“IUYHNBV”:S; 3.“TRFVB”:C; 4.与3相同; 5."QWERTY"对应的是空格; 6.“QAZSCE”:K; 7.“WSXCDE”:E; 8.“EFVT”:Y; 9.“YHNMKJ+GRDXCVB”:B; 10.“TGBNMJUY”: O; 11.“MNBVCDRTGHU”:R; 12.“WSXCFE”: D; 13.同5; 14.与3相同:C; 15.与1相同:I; 16.“NBVCXSWERF”: P; 17.“RFVGYHN”:H; 18.与7相同:E; 19.与11相同:R;
总结一下{ISCC KEYBOARD CIPHER},提交的格式我记不清了。

这篇关于2019年CTF5月比赛记录(一):ISCC_2019线上赛部分题目writeup的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/544547

相关文章

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定