2020年11月

picoCTF 2020mini 总结和wp索引

总结

picoCTF 2020mini Competition 在10/1开始,10/30结束
本次比赛是由美国卡内基梅隆大学(CMU)主办的一个信息安全竞赛
比赛由谷歌赞助,应该是有奖品的
全球参赛人数4822,完成全部6道挑战题的有50个人
我到21号才发现的,出于好奇就试了下题目,做完感觉就是坑不多,但知识点覆盖的还是相对可以的(肯定没法大规模覆盖,一共就6道题)
由于发现晚了,等我开始的时候已经好多人都结束了,我做完后也就只拿了个48名,还是有点可惜。。。

题目分析和write up索引

Nothing Up My Sleeve

分类:General Skills
这道题真的是送分题,就不给wp了,因为太简单了
题目描述中有一个附件flag.txt,下载下来就是flag了

Pitter, Patter, Platters

分类:Forensics
完成情况:320 solves / 1,825 attempts (18%)
这道题考的是取证,其实也很简单,所以也没wp
主要就是让大家了解下取证思想
简单的来说就是用autospy打开来分析后发现有个文件是包含提示信息的,然后根据提示信息用hex软件搜索下就找到flag了
具体wp也有一个推荐(英文版):https://medium.com/@xploiter/pitter-patter-platters-picoctf2020-writeup-fe30a45b5f5c

Web Gauntlet

分类:Web Exploitation
完成情况:414 solves / 746 attempts (55%)
这道题考的是sql注入,有意思的是,需要注入5轮,并且每轮的对注入字符的要求都会越来越严格(会有越来越多的字符被禁止使用)
wp(英文版):https://frc6.com/index.php/archives/42/
wp(中文版):TODO

OTP Implementation

分类:Reverse Engineering
完成情况:163 solves / 853 attempts (19%)
这道题考的是逆向,主要就是要反汇编然后分析算法下,然后找出输入的key
我用的方法比较笨,用了在部分地方用了穷举,我是想不出直接逆向过来的办法,有大佬有办法的话告诉我下非常感谢
wp(英文版):https://frc6.com/index.php/archives/39/
wp(中文版):https://frc6.com/index.php/archives/68/

Gussing Exploitation 1

分类:Binary Exploitation
完成情况:152 solves / 1,156 attempts (13%)
这道题考的通过栈溢出攻击来劫持eip,然后构造ROP链进入shell
wp(英文版):https://frc6.com/index.php/archives/45/
wp(中文版):https://frc6.com/index.php/archives/69/

Gussing Exploitation 2

分类:Binary Exploitation
完成情况:89 solves / 398 attempts (22%)
这道题和上道题一样也是考的通过栈溢出攻击来劫持eip,目的也是进入shell,但是不能使用ROP链了,因为找不到,system的Gadget了,所以采用ret2libc的办法。
覆盖的知识也很多:需要利用格式化字符串漏洞来从栈中泄露canary,再泄露GOT表地址,利用GOT表找到并泄露函数地址,然后用泄露的函数地址确定libc库版本(泄露libc库版本),然后找动态加载的libc基地址,最终算出system/bin/sh的地址,再通过栈溢出漏洞来调用system('/bin/sh')
当然,这只是我用的方法,还有很多别的方法,欢迎交流
wp(英文版):https://frc6.com/index.php/archives/49/
wp(中文版):TODO

最后

英文版write-up也可以再Github找到,喜欢可以加星(谢谢):https://github.com/frc123/CTF/tree/main/picoCTF/2020%20Mini%20Competition

谢谢阅读