
[DASCTF 2023六月挑战赛|二进制专项] 5个pwn - CSDN博客
2023年6月5日 · 找一条链,由于数据没写到栈上,所以需要栈上的指针写,一般常规的方法是用argv [0],偏移17处是一个指向argv [0]字符串指针的指针: 11->37->pwn ,先通过17将37修改为指向目的地址,然后就可以改栈上数据了。 这里3次已经用了两次,最后一次用作修改次数,将i改大。 改多大,最后走着看。 这里还有个坑,就是这个链距离ret太近了,会被ROP覆盖,所以中间需要换一个链,反正次数可以无限,问题也不大。 改用17-37这条链. v1 = (stack+off) & 0xff. …
DASCTF 2024最后一战|寒夜破晓,冬至终章(部分wp)
我在网上查了一下,其需要使用 del sys.modules['os'] 来对其进行删除,然后再import导入,说实话有点麻烦了。 还是使用pker. b"cbuiltins\ngetattr\np0\n0cbuiltins\nopen\np1\n0g1\n (S'/flag'\ntRp2\n0g0\n (g2\nS'read'\ntRp3\n0g1\n (S'./app.py'\nS'w'\ntRp4\n0g0\n (g4\nS'write'\ntRp5\n0g3\n (tRp6\n0g5\n (g6\ntR." 补充:比赛的时候自己好像想麻烦了,并不用手搓。 感觉我这两题都是用非预期写的.
DAS10月月赛PWN出题心路&&CVE-2023-40930的介绍 - kanxue
2023年10月22日 · 具体的解法就是在ping中的system,通过分割符执行echo命令,把padding和rop写到result.txt中,再通过catCommand去读完成溢出劫持到rop. (1)命令注入解法: 注的手法很多,这里就不赘述. (2)栈溢出解法: (ps:这里通过base64加解码是因为rop中有"\x00"会截断字符串) 这题设计的还是有一定缺陷的,比如指向性太差,一般不会有人考虑栈溢出的解法,然后其实离真实设备还有一定差距,下次如果有机会的话,可以改一个openwrt的docker来出题. 这题 …
DASCTF 2023 Apr 月赛 Pwn WriteUp - Unauth401's Blog
2023年4月23日 · from pwn import * context (arch = 'amd64', os = 'linux', log_level = 'debug') s = process ("./2pwn") elf = ELF ("./2pwn") libc = ELF ("./libc-2.31.so") ld = ELF ("./ld-2.31.so") def menu (ch): s. sendlineafter (b "Please Enter Your Choice: \n ", str (ch). encode ()) def admin_login (): menu (3) s. sendlineafter (b "Please Enter the username \n ...
官方Write Up|DASCTF六月赛 · 二进制专项 - CTF导航
2023年6月5日 · 6月4日,DASCTF二进制专项赛于BUU平台顺利开赛。 本场竞赛特别邀请了国内知名战队的二进制优秀选手为赛事保驾护航。 特此发布官方WP供大家复盘学习~ (点击文末“阅读原文”获得完整版WP) k1=[ord(i) for i in "you get the right key!"] print(i^j,end= ',') factor(796192737278561537484199099160091818919833721026691718207595201542597) SIQS elapsed time = 33.3969 seconds. _fields_ = [ ('cb', c_ulong), ('lpReserved', c_char_p),
DASCTF x 0psu3 2023Nov Pwn WriteUp - Unauth401's Blog
2023年12月13日 · from pwn import * import tty context (arch = 'amd64', os = 'linux', log_level = 'debug') #s=process("./challenge") s = remote ("node4.buuoj.cn", 25335) elf = ELF ("./challenge") libc = ELF ("./libc.so.6") time_interval = 0.1 def menu (ch): sleep (time_interval) #s.sendlineafter(b"choice: ",str(ch).encode()) s. sendline (str (ch). encode ()) def ...
DASCTF X GFCTF 2024|四月开启第一局[PWN] wp(详解) - CSDN …
2024年7月8日 · 🚀思路:1.既然不能改返回地址那么就进行栈迁移,如果异常被上一个函数的catch捕获,那么上个函数的rbp就会变成上这个函数的rbp,所以我们控制rbp实现迁移。 2.通过迁移到bss段上的gift(因为一开始我们可以对gift处地址进行输入),由于ebx被赋值为0了,所以要找一个合适的gadget来帮rdx赋值. 3.找到一个很好的gadget(0x446200)mov rdx, [rsi-8]经过调试,得到是把rdx的值赋值为0x91. 4.返回0x402221处刚刚好把rsi赋值为gift,而且可以进行读入操作,然后 …
DASCTF 2023六月挑战赛|二进制专项 pwn - CSDN博客
2023年7月3日 · 首先需要通过认证,这里需要判断对应的key文件是否存在,我们可以通过输入很多/来绕过。 接着有一个任意 命令执行 ,过滤掉了一些字符,不过我们仍然可以通过cat flag来获取;由于过滤了空格,所以我们可以用 \t 代替,由于有长度限制,我们需要使用通配符,最终执行 '\ncat\tfl*\n。 程序只有add,delete操作,在add的pushinfo中存在off by null漏洞. add限制堆块最大0x800,最多申请16次,所以采用填满tcache不可取,因为堆块不够用,需要直接申请大 …
2023DASCTF X 0psu3十一月挑战赛|越艰巨·越狂热-pwn-Writeups
2023年11月25日 · from pwn import * s = lambda data: io. send (data) sa = lambda delim, data: io. sendafter (str (delim), data) sl = lambda data: io. sendline (data) sla = lambda delim, data: io. sendlineafter (str (delim), data) r = lambda num: io. recv (num) ru = lambda delims, drop = True: io. recvuntil (delims, drop) itr = lambda: io. interactive uu32 ...
[原创]DAS9月月赛PWN题出题心路 - kanxue
2022年9月20日 · 其实就是一个非常经典的利用——填满tcache,然后继续放进UB合并先后放入的chunk1,chunk2(2位于高地址),取走tcache一个堆块,double free chunk2放入tcache,这样就能获得一块既在UB里面,又在tcache里面的堆块了,然后切割合并的堆块就能在没有edit的情况下,修改tcache chunk的fd指针为libc地址. 感觉挺有意思的中等题,应该不太需要改了hhh. 什么,提高难度? 加house? 加高版本? 有几斤小马珍珠敢这么出题? [培训]内核驱动高级班,冲 …
- 某些结果已被删除