1.2022Pwnhub春季赛相关体验及wp
2.第二届“强网杯”部分题目writeup
2022Pwnhub春季赛相关体验及wp
首次参加Pwnhub举办的大型公开赛,体验令人满意。Pwnhub的声誉名副其实,比赛中只有四个解题,且难度集中在easyrop。比赛前期的小小忍者源码宣传充分到位,Pwnhub历来以举办公开月赛闻名,此次公开赛规模空前,奖励丰厚。
比赛题目多样,涵盖了web、misc、crypto、re、pwn等多个方向,还加入了ACM、网页监测源码OCR、以及汇编等不同类型的题目,甚至引入了网页版的传奇游戏,以减轻比赛的枯燥性。题目设计全面,从多个方面考验参赛者的个人能力。
比赛流程流畅,靶机启动迅速,不限制数量,后期取消了靶机时间限制,但在所有靶机都开放在同一IP地址上,端口号可以遍历,加之不是动态flag,可能导致蹭取flag的情况。
首次在CTF比赛中遇到使用Flash游戏的python整数源码题目,新颖有趣,促使我迅速安装Flash并进入主办方设置的游戏。游戏类题目共有四个小题,最后一个题需要获取服务器的shell,可以视为半个web挑战。
注册账号,创建角色登录游戏,发现公告栏中明确显示了flag,十分友好。下一步是购买题目中的元宝召唤道具,但需要通过抽奖将绑定元宝转化为元宝,再购买。打死召唤出的怪物后,会掉落flag之书1,注意掉落的天地系统源码flag之书可以被其他玩家捡走,谨防被抢,我的flag为flag{ nonono_notmola}。
主办方放出服务器源码,虽然经过修改,但仍能从中找出一些漏洞。从log.php中可以获取生成token的密钥,允许任意用户登录其他账户。在log.php中,理论上存在注入漏洞,但线上复现不成功。web方面的其他漏洞未能发现,获取shell需要对游戏服务器文件进行逆向工程。
web部分考察知识新颖且难度适中。在EzPDFParser中,通过java写的源码整合网站PDF解析器在解析PDF时触发log4j2漏洞,搭建恶意JNDI服务器,修改PDF文件即可触发漏洞。在easyCMS中,通过测试MySQL联通性,利用MySQL读取文件,通过Rogue-MySql-Server实现,使用PHP脚本操作。
在baby_flask中,利用flask模板渲染不会更新的问题,通过生成个模板并在缓存刷新时执行payload,即可获取flag。Misc部分需要使用裸眼3d技巧,借助stegsolve工具将两张图分开,获取flag{ nice_pwnhub}。在其他页面的签到中,通过关于页面的视频中的二维码找到flag。
比赛持续小时,时间较长,但某些类别的题目数量似乎不是很多,如web部分,队伍数量较多,完成三个题后,期待后期上新题,可惜未能如愿。整体体验良好,通过赛题学习到许多知识,期待Pwnhub举办更多类似的公开赛!
第二届“强网杯”部分题目writeup
第二届“强网杯”部分题目解答 本文作者:tinyfisher 周末参加比赛,虽解决题目数量不多,但收获颇丰。特记录解题过程及思路,以下为题解: 一、Welcome 题目描述:文件头为D,判断为bmp文件。尝试使用notepad查看文件内容,无flag发现;使用binwalk未发现隐藏文件;使用stegsolve打开时,出现异常,当offset设置为时,发现flag。 二、web签到 题目描述:包含三关,考察弱类型判断及md5碰撞。 第一关:源代码为弱类型判断。绕过方式为构造数据或md5 0e开头的字符串。 第二关:源代码为===判断,字符串不进行类型转换。绕过方式为传入数组。 第三关:源代码为强判断,强制转换为string类型进行比较。需通过md5碰撞绕过。 三、streamgame1 题目介绍:算法及key给出。尝试直接爆破,按照算法遍历flag和key,匹配后确定flag。 四、streamgame2 题目描述:与streamgame 1类似,但长度变化。遍历过程调整。 五、streamgame4 题目描述:长度虽变,但flag长度固定。继续遍历解决。 六、simplecheck 题目描述:给出apk,需输入flag,错误提示为“sorry its wrong”。通过反编译apk,查看关键代码,需让函数a返回true,实现逆向解出flag。 算法描述:定义数组a、b、c、d,flag长度需等于b数组长度,。新数组arrayOfInt[0]=0,flag赋值到arrayOfInt[1]- arrayOfInt[]。关键代码遍历m,条件为且操作,可尝试利用爆破法解决。