极客巅峰2020
Last Update:
Word Count:
Read Time:
极客巅峰 2020
本来都可以进线下的, 但我二进制这边没有输出, 先来个中午时web历史辉煌一刻:
只怪自己太菜, 连累了队伍, 最后掉到后40了….
PWN
这次比赛两个盲打, 一个blind heap另一个不知道是啥题, 类似与抓的awd抓的流量包…还有一个是python 的溢出利用
这次的pwn
只有个bheap有点思路, 其他两个pwn完全没思路, 但是一个也没弄出来, (菜~)。
bheap
bheap存在uaf漏洞, double free之后没有报错, 那可以猜想为libc.so.2.26 ~ libc.so.2.27, 且在本地写了个模拟了一个逻辑差不多的程序, 使用dup修改top chunk size 故意报错, 远程也是如此,也很肯定猜想是正确的. 比较麻烦的是如何泄漏libc, 且开辟的次数不能超过10次。若用dup打入IO_FILE泄漏Libc的话, 开辟次数非常多, 加上再次劫持mallo_hook或free_hook,次数就超过10次很多了, 这点问题就把我kill掉了….菜~等wp吧….
RE
virus
是一个简单的迷宫题.采用4个迷宫, 需要自己根据字符串长度调整迷宫顺序.
主逻辑代码
1 |
|
解释一下, 要求输入四个’-‘, 在输入’-‘之前必须为数字, 然后在对字符串的进行’-‘分割, ‘-’后面的长度分别为: 19, 25, 26, 28.这个从step[i] != v11
所判断的, 如下:
1 |
|
通过以上逻辑, 输入的格式必须满足 -str1-str2-str3-str4
接着看check_flag函数:
1 |
|
就是一个典型的迷宫了,使用wsad
字符来控制.
那么我们所输入的就需要这四个字符来控制了, 先找一下迷宫的地图, 且进行宽度为20进行补齐如下:
1 |
|
从s出发到d结束, 那么四个迷宫分别步骤如下:
dddddddddsssssaaaaaaaaawww
sdsdsdsdsdsdsddwdwdwdwdwdwdw
aaaaaaaaasssssssddddddddd
wwwwwdddddddddsssss
当我输入 -dddddddddsssssaaaaaaaaawww-sdsdsdsdsdsdsddwdwdwdwdwdwdw-aaaaaaaaasssssssddddddddd-wwwwwdddddddddsssss
发现, 在调用check_flag传入map参数执偏离原map很大的一个地址,且进入check_flag函数获取map中的值都是0,原来在输入步骤之前需要指定地图的顺序.
根据前面我们知道每个字符串的长度(19, 25, 26, 28)来指定:
那就是-wwwwwdddddddddsssss-aaaaaaaaasssssssddddddddd-dddddddddsssssaaaaaaaaawww-sdsdsdsdsdsdsddwdwdwdwdwdwdw
在确定一下迷宫的顺序为:
4312
那么输入的就是:
4312-wwwwwdddddddddsssss-aaaaaaaaasssssssddddddddd-dddddddddsssssaaaaaaaaawww-sdsdsdsdsdsdsddwdwdwdwdwdwdw
那么就出flag啦…
fu!k_py
通过饭编译pyc文件
解密网站: http://www.llang.net/sudoku/calsudoku.html
或者:
1 |
|
1 |
|
- d,l,h分别表示3x3块,列,行
- 先判断列表的长度是否为9
- check求和
是一个9x9的数独游戏,根据已知数据,求解未知就行
将一下生成的内容导入到数独求解器中求解即可.
1 |
|
1 |
|
求得
1 |
|
即flag为flag{145327698839654127672918543496185372218473956753296481367542819984761235521839764}