摘要:
查壳:开了Canary和NX,没开Pie ida查看每个函数的有用的意义(a1==v4) 函数 意义 main 引导进入sub_400D72 sub_400D72 获取输入,长度<12继续 sub_400A7D 获取输入,直到输入为 east 为止才能进行下一个流程 sub_400BB9 获取输入, 阅读全文
摘要:
查壳,只开了NX,可以去拿shell 看ida,的确找不到system有关的函数,但发现了read的漏洞(read开的大小为100,比buf大),只能去拿附件中的另一个文件下手,这是一个运行库文件通过它来获得两者的地址 使用 pwntools,获得 write 和 system 的相对位置,0x99 阅读全文
摘要:
查壳,只开了NX,可以利用栈溢出 level0是直接覆盖到运行system('/bin/sh')的函数,level2是先覆盖到call system的地址,然后覆盖/bin/sh 注意,如果覆盖的是system的地址,则要加上四位覆盖call之后的eip压栈,运行gdb可以看到eip压栈 shift 阅读全文
摘要:
查壳,只开了NX,可以利用栈溢出 ida中的callsystem函数调用了/bin/sh 这题练习一下elf调用函数地址写exp #!/usr/bin/env python from pwn import * p = remote('111.200.241.244',35917) elf = ELF 阅读全文
摘要:
查壳,Pie没开,但开了canary和NX,无法直接覆盖返回地址或使用shellcode 逛该ida 发现pwnme是拿到flag的关键 利用printf(%s)的特性可以泄露偏移地址 可以看这个博客学习格式化字符漏洞 得到偏移量为10(数一数)41414141是第几个出现的 编写exp,利用%n修 阅读全文
摘要:
日常查壳,只开了NX保护,没有Pie,name的位置不会变 ida逛该,发现了system函数 要是system执行的是'/bin/sh'多好啊,刚好给了一个name可以用于构造'/bin/sh',后面的s用来覆盖就ebp就好了 exp直接payload #!/usr/bin/env python 阅读全文
摘要:
查壳 ida分析(注意是32位的),找到目标地址0x0804868B 既然题目叫做整型溢出,我们来看看哪里可以溢出 这里我们需要利用&dest覆盖到ebp来达到重定位到上面whatisthis的目的,就必须使程序绕过if的限制条件,观察到strlen赋值的是一个unsigned_int8的数,读取完 阅读全文
摘要:
第一步 checksec查壳 ida分析,可发现执行sub_C3E()时可以得到flag 于是我们想办法让程序执行到sub_C3E,需要连续猜对10次数字,我们发现程序通过seed生成随机数,如果能把seed覆盖为已知数,就很容易完成了,前面的gets刚好给我们覆盖的机会 gets的地址是var_3 阅读全文
摘要:
本题是简单的栈覆盖,先查壳checksec 发现没开Pie ida显示自相矛盾 #看到gets想到利用v4将v5覆盖,查看栈帧发现0x18与0x20之间差8,直接写exp #!/usr/bin/env python from pwn import * p = remote('111.200.241. 阅读全文