GHCTF_PWN部分题解
想说的话:作为一个练习时长半学期的PWN小萌新, 正好来打打这个GHCTF。看了下主办方说是新生赛,实际上他们面向的对象是练习了一学期的新生,所以有些题看到的第一时间还是比较懵的,不过好在最后成功做出来了5 / 8题,还算可以吧。PWN学习之路还很长,慢慢坚持就好了。 1.Welcome come to the world of PWN0x01 前言:签到题,简单的ret2text和pie 0x02 分析:check一下:有pie,上ida看看:直奔主题,这里可以溢出,再看看有没有可以用的:发现了后门函数,而且跟main函数是连续的,所以只需要覆盖两个字节就能绕过pie 0x03 EXP:from pwn import *from ctypes import *context(log_level = 'debug', arch = 'amd64', os =...
ez_pz_hackover_2016
0x01:前言vc哥通过这题给我讲解了很多pwn题的细节,通过写这题的wp简单的记录一下,题目本身一个strcmp绕过+ret2libc 0x02:题目分析check:没有NX?ida看看吧:跟进header():继续往下看:可以看到fgets()但是读取的长度不足以溢出,继续往下看,发现有个vuln函数,跟进:发现memcpy()且第三个参数很大,可以溢出,那么我们要构造的payload就是先绕过chall()函数里面的strcmp(),最后做个ret2libc: printf_got=elf.got['printf']printf_plt=elf.plt['printf']chall_addr=0x08048603payload=b'crashme\x00'+b'a'*(0x32+4-8)+p32(printf_plt)+p32(chall_addr)+p32(printf_got)debug()sla('>...
[西湖论剑 2025]BitDance
0x01 前言:遇见的第一题没有附件的RE题,原来这种题目叫黑盒测试? 0x02 分析题目只给了一个靶机,连接上去之后提示输入:(没存图片,这里借队友的用一下)输入不同长度的字符串会提示Wrong length, 总之先把长度给爆破出来,这里可以使用python的pwn库,也就是pwn常用工具pwntools: //字符长度爆破脚本from pwn import *context(log_level = 'debug', arch = 'amd64', os = 'linux')xihu='139.155.126.78'stop=1text_len=''while(stop): p = remote(xihu,24847) text_len+='a' p.sendlineafter('Welcome to dance: ',text_len) if b'Wrong' in...
[NewStarCTF 2023]canary
0x01 前言:初见Canary保护,主要还是了解Canary的原理以及如何绕过 0x02 分析:check: 可以看到开了canary保护 原理是在一个函数的入口,先从fs/gs寄存器中取出一个四字节(eax)或者八字节的rax的值存在栈上(最低位都是\x00),当函数结束是会检查这个栈上的值是否和存在去的值一致,若一致则正常退出,如果是栈溢出或者其他原因导致canary的值发生变化,那么程序就会执行___stack_chk_fali函数,继而保护程序 我们先打开ida看看:可以看到有printf, 大致的思路就是通过字符串格式化漏洞, 把字符串的偏移给找出来, 然后通过下面的read做栈溢出, 正常溢出到后门函数, 但是在溢出的时候我们把canary的值给修改了, 所以在构造payload的时候需要注意payload的结构, 首先我们先执行下这个程序:可以看到字符串的偏移是6, 接下来用gdb看看canary在哪里, 我们先在main函数的call printf这里下一个断点:首先启动gdb, 输入 gdb ./canary 打上断点: pwndbg>...
SUCTF_SU_BBRE
0x01 前言:小弟第一回参加SUCTF,只打了day1,这题算是re的签到吧,很可惜最后也没有做出来,就差了中间地址跳转这一步 0x02 分析:上来是一大段汇编, 可以选择硬看或者问ai去让他转换成一个c语言 .text:004021DD.text:004021DD ; =============== S U B R O U T I N E =======================================.text:004021DD.text:004021DD ; Attributes: bp-based frame fuzzy-sp.text:004021DD.text:004021DD ; int __cdecl main(int argc, const char **argv, const char **envp).text:004021DD public main.text:004021DD main proc near ; DATA XREF:...
[VNCTF2 025]Fuko's starfish
0x01:前言主要还是加密算法识别,花指令识别,dll反调试(非必要) 0x02:分析比赛版当中的分析题目提供了一个exe以及一个dll,exe无壳,ida启动:暂时没看到flag的密文,考虑硬玩ing第一个是猜1到100的随机数,第二个游戏是贪吃蛇怎么操作噢在dll里面这里接收输入贪吃蛇游戏界面,wasd操作我先玩玩还有一个,先在ida里面翻一下好像是这个函数,有花:去一下flag密文应该是这一串, 就是那个while(里面的byte_1800A890) unsigned char ida_chars[] ={ 0x3D, 0x01, 0x1C, 0x19, 0x0B, 0xA0, 0x90, 0x81, 0x5F, 0x67, 0x27, 0x31, 0xA8, 0x9A, 0xA4, 0x74, 0x97, 0x36, 0x21, 0x67, 0xAB, 0x2E, 0xB4, 0xA0, 0x94, 0x18, 0xD3, 0x7D, 0x93, 0xE6, 0x46, 0xE7}; 看起来明文长度应该是16,...


![[西湖论剑 2025]BitDance](/image/cover/blackbox.png)
![[NewStarCTF 2023]canary](/image/cover/canary.jpg)

![[VNCTF2 025]Fuko's starfish](/image/cover/starfish.jpg)