AWDP合集

使用到的优秀插件

Accenture/VulFi: IDA Pro plugin for query based searching within the binary useful mainly for vulnerability research.

2025省赛电信量子杯

这次的patch都很简单,但是还是要注意很多细节,比如patch.sh文件不能写错,challenge写漏了一个e导致浪费了16次机会(我就说这exp怎么这么厉害我改这么多都能利用成功),sh文件也就是执行shell的文件,用于把修改过的ELF文件替换到服务器上

打包命令

1
tar czvf patch.tar.gz patch.sh patch_ok

patch.sh

一定要仔细检查有没有写对啊

1
2
#!/bin/bash 
cp patch_ok /home/ctf/challenge/challenge

heap

一道很典型的堆题应该是可以利用double free但是我不会打,但是漏洞还是知道的

1

ptr指针释放后未指零

出题人很友善在下面放了一个置零操作,那么来到汇编

1

改free下面那个偏移改成8即可,尝试过直接修改汇编但是没改成,然后学会了修字节

把10改成08即可

1

修改后就成功把ptr指针置零了,防御成功

gorun

一个很简洁的程序,乍一看以为是简单的栈溢出,就在疑惑为什么没人打难道是打了防御就没分吗,结果发现没有pop_rdi的时候就知道这个栈溢出不简单

但是修起来还是很简单的

1

溢出0x10个字节应该是要修改rbp栈迁移但是只有read函数想不到怎么泄露libc

那么来到汇编

1

把40改成29即可

pri_exe

1

格式化字符串漏洞(没看出来怎么用)尝试把snprintf(s, 5, “%04d”, v1);改为snprintf(s, 4, “%04d”, v1);

1

这里直接改汇编即可

my_code

1

把/bin/sh改掉即可,我是把00 00 改成了ff ff这道题比较阴,以为在IDA9.0能解析出来这个后门所在函数,但是在7.7就没解析出来,还有这道题因为patch.sh文件少写了个e导致一直exp利用成功,下次一直成功的时候要好好检查patch.sh文件了

小结

线下赛ak pwn patch了!!!!第一天什么都没做出来研究了一天的逆向异或,但是第二天状态极佳,在patch的过程中也学到了很多,首先就是用工具找漏洞,感觉没找到几个,然后就是修改过程中,9.0的IDA只能修改字节,可能是我的插件有问题,所以一直用7.7修,然后就是很多时候不能直接修汇编,是字节的问题,应该是不会直接分配更大的空间导致修改后会覆盖别的汇编,这时候就只能一个字节一个字节的改,但是不知道汇编对应的字节是什么,可以学一下,写shellcode的时候也能用上