2019年CTF4月比赛记录(二):“掘安杯”、TJCTF部分Web题目writeup与重解

2024-03-10 04:50

本文主要是介绍2019年CTF4月比赛记录(二):“掘安杯”、TJCTF部分Web题目writeup与重解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面的:
这次比赛总体上还好吧,虽然并没有做出特别多的题目,只有8道,但是经过这个比赛,包括后面的复现,还是能学到点东西的,对自己而言也算是一种提升吧。起码相较于两个月前还是能感觉到自己的进步的。
具体的writeup官方也给出来了,我只在这里写出自己的做题记录,可能有的比较复杂,复现的过程也比较繁琐,还望见谅。
这一阵子事情挺多的,掘安和TJ的时间有点久了
比赛时间:2019年4月6日
复现时间:2019年4月10日至4月14日

一、Writeup:(基本上是密码、MISC、Web,具体的分类我记不太清了)
(一)、MISC:
首先一个文本文档:
在这里插入图片描述
一看就知道Quoted-printable编码,解码:
在这里插入图片描述
很简单,与佛论禅:
在这里插入图片描述
到了这一步后,一开始我是懵逼的,我一开始还以为汉字编码,整了半天,后来才想起来有个社会主义核心价值观编码,不得不说,这思想觉悟真不错:
在这里插入图片描述
(二)、MISC:
签到水题,直接关注公众号拿flag:
在这里插入图片描述
(三)、Web:
这是道web题,打开题目后出现一个链接,让我们下载:
在这里插入图片描述
唔,不在这里,那就view-source看一下:
在这里插入图片描述
提示来了,flag.php,那就直接放到地址栏里,然后出来了一个文件:
在这里插入图片描述
两个值在最后面已经给出来了,而且程序也给了,直接跑一下就可以了:
在这里插入图片描述(四)、Web:
这也是道web题,题目描述是网站被黑了,打开链接看一下:
在这里插入图片描述
说实话,当看到这个页面后,还是比较失(欣)望(喜)的,这是道原题,直接御剑后台扫一波:
在这里插入图片描述
找到第二个网址,shell.php:
在这里插入图片描述
需要提交才能获得flag,直接抓包爆破,最后的密码连改都没改,还是hack,提交直接得到flag。
(五)、Web:
这也是web题:
在这里插入图片描述
但是直接点击后,出现如下界面:
在这里插入图片描述
咦,这是什么情况,view-source走一下:
在这里插入图片描述
我们可以看到,链接是flag.php但是当我们点击后,重定向到了404.php,我一开始也是不知道该怎么整,后来curl看了一下:
在这里插入图片描述
发现Flag,解码走一下:

在这里插入图片描述
(六)、Crypto:
密码学签到水题,直接base16走一下:
在这里插入图片描述
(七)、Crypto:
题目给的很明确,base16、base32、base64全部都参与编码,既然这样的话,普通的解码是得不到flag的,因为是循环的,那就只能python脚本爆破,从网上找了一个,直接用:
在这里插入图片描述(八)、Crypto:
在这里插入图片描述
罗马帝国的奠基者,很明显,凯撒么。但是普通的凯撒加密不能解密,观察格式应该知道这是变异凯撒,通过去找相对应的ascii码,python脚本求解:
在这里插入图片描述
二、复现:(主要是web题目)
(一)、Web:
这道题打开后也是一段代码:
在这里插入图片描述
乍一看还是可以理解的,以GET的方式提交两个变量,一个是action,一个是arg。然后正则匹配,对于action匹配字母数字和下划线,然后就不知道了,后来看了看官方给的writeup,利用create_function()代码注入,绕过正则过滤。
(@_@)表示没太看懂,可能还是太菜了?。按照它说的,找到了P神当年的文章,看了一遍,大体上知道是个怎么个情况。对于正则匹配的那一部分代码,在数字字母下划线都被禁用的情况下调用函数,因为正则里面用了^$,就有可能在开头或结尾加入某个字符绕过正则且函数依旧能正常执行。利用字典fuzz,发现\可以绕过。最后构造出payload,扫描当前目录,找到以下内容:
在这里插入图片描述
直接构造payload打开文件,拿flag:

在这里插入图片描述
这道题如果直接用之前那道题目的payload显然是行不通的,说实话我也不知道为什么,这一部分知识还是欠缺蛮多的,做了一段时间的代码审计也只不过知道一点皮毛,现在也才意识到自己还有许多盲区待扫。
(二)、Web:
打开后又是代码审计:
在这里插入图片描述
前面还有一部分str1、str2、str3、str4的代码,但那部分还是比较好构造的,主要还是后面的str5、str6、str7、str8、str9。
在这里插入图片描述
首先,第一个对于str1、str2、str3、str4,之前遇到过这种题,直接利用弱类型比较,数组绕过。str[]=1&str[]2=2&str[]=3&str[]=4;那么下一步,对于str5、str6、str7,出现了强制类型转化,官方wp给出了通过传入文件使其md5相等,这一点还是当时没想到,有必要记录下来。最后对于a、b、m、n,我们可以看到a必须为大写字母,b为数字而且长度为6,m和n长度小于4。对于str8和str9,我们可以看到str8是对a作hash加密,str9是对b作hash加密,然后把m替换为n。当然我们也能看到,str8和str9还是利用的弱类型比较。我们知道md5的弱类型比较绕过有很多种方法,官方给出的是0e,我个人感觉这也是日常做题可以想到的,因为常用的字母串也就那些,然后对于str9,b通过hash加密后可以满足0e开头,但是为了满足长度为6,就需要利用后面的替换,把0e后不是数字的替换为数字。官方wp也给出了最后的脚本,直接运行得到flag。

三、TJCTF:
(一)、签到水题:
1.blurry(web):
直接view-source:
在这里插入图片描述
在这里插入图片描述
2.Touch Base(Crtpto):
直接解码:
在这里插入图片描述
3.Cable(Forensics):
直接wireshark:
在这里插入图片描述

TJCTF的web题目就不复现了,以我现在的能力还搞不懂,现down下来回头看看再说吧

小结

1.就一个感受,会编写一个python脚本好重要,该努力学学python了,不然以后题都没得做。
2.日常感谢wp提供者。
3.掘安杯好像又出了几道新的cyrpto、misc题目,没时间看了,当然这次比赛还是不错的。
4.前几天的西湖论剑也参加了,昨天参加了一个东南大学主办的“永信杯”,下一篇写写这两个比赛的writeup、复现和感受。

这篇关于2019年CTF4月比赛记录(二):“掘安杯”、TJCTF部分Web题目writeup与重解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho