- 博客(51)
- 收藏
- 关注
原创 BUUCTF-PWN-inndy_rop
可以栈溢出,没有system函数,使用系统调用利用ROPgadget的功能直接利用程序中的片段拼凑rop链。
2023-03-05 15:16:40 382
原创 BUUCTF-wustctf2020_getshell1
这题没有什么过多解释的,就是一道简单的ret2text,有shell的地址应该是太简单了做的人少就放在了BUUCTF的第二页,按照顺序做的,也就写上了
2022-12-04 21:48:53 223
原创 BUUCTF-jarvisoj_level3_x64
很简单的程序,栈溢出 没有system (bin/sh) 很明显了 64位的ret2libc3老规矩的脚本
2022-12-04 21:30:04 374
原创 BUUCTF-ez_pz_hackover_2016
challC 库函数 - strcmp()C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。strcmp只能比较字符串,比较数组和字符串常量,不能比较数字等其他形式的参数。两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止strcmp的返回值可控,传入空字符串即可strlen同样遇0截断。
2022-11-28 00:19:48 447
原创 BUUCTF-jarvisoj_level3
main很明显的溢出点再没有其它有用的信息,而且本题没有system,bin/sh既然如此,解决思路就有了,泄露libc,32位的ret2libc3。
2022-11-27 19:54:11 228
原创 BUUCTF-[HarekazeCTF2019]baby_rop2
泄露libc基地址,计算system,bin/sh地址,覆盖返回地址。最后ls没有发现flag,寻找flag。还要注意64位传参,寄存器的使用。直接cat flag在的位置即可。
2022-11-08 12:42:42 370
原创 BUUCTF-jarvisoj_tell_me_something
read有栈溢出flag.txt进行栈溢出将返回地址覆盖为fopen函数地址。
2022-11-07 22:43:21 131
原创 BUUCTF-pwn2_sctf_2016
无符号Int,输入-1进行溢出 ,绕过长度限制利用printf函数泄露libc,利用system('bin/sh')
2022-11-07 21:58:21 127
原创 BUUCTF-not_the_same_3dsctf_2016
只开启了NX保护main跟进v4 offset=0x3cget_secret flag被写在bss段利用:
2022-09-24 16:35:08 125
原创 BUUCTF-PWN-pwnable_asm-Sandbox
检查允许的系统调用orw是允许的,用open()打开flag文件,通过read()和write()读取并输出。
2022-07-21 08:49:39 314 2
原创 BUUCTF-PWN-pwnable_hacknote-UAF
标准的菜单模式canary和NX保护2.sub_80487D4()3.sub_80488A5()利用思路泄露libc,调用system,执行bin/sh/,获取shellprint note可以打印泄露地址传入该函数的参数是note结构体自身,无法直接传入字符串“\bin\sh”,原来的note_puts(arg0)是对puts(arg0+4)的封装,而现在的system(arg0)中arg0并不指向字符串而指向system的地址,所以这里需要system参数截断,system
2022-07-10 20:30:00 1091 2
原创 pwn--wp
64位,NX/Canary保护竟然有flag,不过肯定不是,说明远程flag就在flag_addr=0x601080printf,而且程序开了canary保护,可以想到借助格式化字符串漏洞绕过canary将flag写在了栈上那个位置,可以利用格式化字符串打印栈上内容,泄露出flag跟进usr0x601160-0x6010E0=0x80 dec=128填充可以用'\x00'来覆盖0x601160的低位-----0x601100,就可利用格式化字符串确定偏移offset offset=0x28然后不太会
2022-07-02 12:08:50 164
原创 浅谈mprotect函数和mmap函数
在Linux中,mprotect()函数可以用来修改一段指定内存区域的权限。细说参数一句话mprotect()函数把自start开始的、长度为len的内存区的保护属性修改为prot指定的值。注意几点: mmap函数首先了解内存映射:内存映射:(可以类别数学中函数的映射关系,抽象类比的理解这种关系或者说是过程)将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间通俗点理解嘛:就是你和镜子中的你,你发
2022-06-27 18:57:24 1144
原创 攻防世界--进阶区--forgot
32位/只有NX保护输入的地方,是溢出点__isoc99_scanf("%s", v2);fgets(s, 32, stdin);fgets函数对输入的数据有限制,所以不会造成溢出 可以拿到flag的函数地址 main函数的内容还挺多的,1张没截完第二张是一个for循环额...........最后一行的代码不是很好看,查了查,可以看看它的汇编应该是调用v3[--v5]的一个函数[esp+78h]就是v5的位置要是可以控制v5也就可以调用函数了在for循环内v5的值一直在发生改变,所以不能让v5进入循环让v
2022-06-19 19:46:37 308
原创 BUUCTF PWN [HarekazeCTF2019]baby_rop
1.checksec+运行64位/NX堆栈不可执行2.IDA进行中1.main函数本题函数倒不是很多很明显,格式化字符串漏洞2.system bin/sh3.offset总体来看64位寄存器传参3.EXPfrom pwn import* p=remote('node4.buuoj.cn',27198) shell=0x601048system=0x400496rdi=0x400683 payload=b'a'*(...
2022-05-27 10:12:57 337
原创 BUUCTF PWN OGeek2019 babyrop
1.checksec+运行32位/ NX保护开启/还有Full RELRO2.IDA进行中
2022-05-01 08:00:00 359
原创 BUUCTF 第五空间2019PWN5
1.checksec+运行32位/NX保护/canary保护2.IDA进行中1.main()函数printf()函数 考虑格式化字符串漏洞通过0x61616161可以确定参数在第10个位置上if ( atoi(nptr) == dword_804C044 ) { puts("ok!!"); system("/bin/sh"); }如何拿到binsh程序也给出了直接利用格式化字符串改写unk_804C044之中的数据,然后输入数据对比得到.
2022-04-23 23:21:36 2121
原创 BUUCTF PWN get_started_3dsctf_2016
1.checksec +运行32位/NX保护2.32位IDA1.main函数gets()函数溢出跟进v4看看偏移offset=0x38这个题有些不同,看看调用函数的汇编该题没有用ebp寻址,用的是esp寻址也就是说不需要覆盖ebp四字节这就说明有时候后卡住回去仔细看看汇编2.get_flagif ( a1 == 814536271 && a2 == 425138641 )a1/a2满足条件即可得到flag.tx...
2022-04-23 22:17:48 364
原创 BUUCTF PWN bjdctf_2020_babystack
1.checksec+运行64位/NX保护2.64位IDA进行中1.main函数read()函数溢出跟进buf,看看偏移offset=0x10+8但要注意一点:read(0, buf, (unsigned int)nbytes);无符号整型,需要输入-1,进行整型溢出接下来就是常规的操作backdoor函数地址3.直接上脚本from pwn import*#p=process('./12babystack')p=remote...
2022-04-23 10:32:09 340
原创 BUUCTF PWN ciscn_2019_s_9
1.checksec+运行32位/没有保护2.32IDA进行中1.hint函数提示函数,很有帮助,解题关键点直接跳到esp栈顶指针2.pwn函数明显的fgets()函数溢出跟进s看看偏移offset = 0x20+4向s里写入shellcode注意一点:如果直接用pwntools生成的shellcode,会很长,s里写不下所以这就需要我们优化shellcode的长度shellcode ='''xor eax,eax ..
2022-04-22 20:31:06 274
原创 BUUCTF PWN warmup_csaw_2016
1.checksec+运行64位/没有保护2.64位IDA进行1.main 函数明显的溢出函数gets()跟进v5看看offset = 0x40+8shift+f12真不错,cat flag.txt找它的地址3.上脚本from pwn import*#p=process('./3warmup')p=remote("node4.buuoj.cn",28180)flag_addr=0x400611payload=b'a'*(0...
2022-04-22 16:57:39 420
原创 BUUCTF ciscn_2019_c_1(64位ret2libc3)
1.checksec+运行64位/NX保护运行起来貌似很有意思,是一个加解密操作后来发现只能加密不能解密2. 强大的IDA进行中1.main函数貌似看不出什么2.encrypt函数加密具体操作大小写字母/数字进行异或运算发现gets()栈溢出s大小0x50需要先把加密函数绕过该函数的功能就是循环对输入的字符串进行加密,在加密前都有一个检查,只要v0的值大于或等于字符串的长度就跳出循环,通过strlen来计算字符串长度的,strlen计算字.
2022-04-10 13:23:08 4569
原创 攻防世界格式化字符串漏洞greeting150
1.checksec+运行32位/NX堆栈不可执行/Canary保护注意一点:没有RELRO保护,got表完全可写2.IDA常规操作1.main函数2.getnline函数看到以上信息可以 泄露任意地址的内存但是........上面的看着感觉不是很多对原来是这样出现了aaaa---->0x61616161,参数在格式化字符串第12个位置aaaaaa%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,...
2022-04-10 10:01:07 449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人