02 2021 档案
摘要:查壳 ida观察代码,发现echo函数内的s2是可溢出的,但是溢出过程中不能出现
阅读全文
摘要:第一道FUZZ 模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法 没给附件,先看一下nc出来是什么 给了一个地址,应该是可以在这个地址栈溢出,由于不知道是32位的还是64位的,疯狂nc爆破就行 #exp注释一下 #!/usr/bin/env pyth
阅读全文
摘要:查壳 ida中很明显告诉我们有栈溢出漏洞和字符串漏洞,有后门 先用格式化字符串泄露偏移去找到canary 偏移为6,看看作为canary的v2离buf有多远 0x90-0x8=0x88,0x88=136,136/8=17,17+偏移6=23,泄露第23个地址的值就行 计算栈溢出 buf的88+can
阅读全文
摘要:查壳,没开栈保护和NX 这个题目的ida变量有点多,慢慢读 fgets没啥漏洞,原来漏洞在scanf这里 然后查找有没有system函数,没有需要利用第一个fgets写,但这里还是有的,把v3改成我们需要的函数名即可 #exp #!/usr/bin/env python from pwn impor
阅读全文
摘要:查壳 看ida,和guess_number那题一样有seed,并且一样是猜数字连续猜中得到flag,看看能不能覆盖把seed改成我们想要的 read是50,但栈中seed在10的位置,可以直接通过buf覆盖到seed 编写exp #!/usr/bin/env python from pwn impo
阅读全文
摘要:查壳。。。什么都没开 看ida s开的208,fgets却是512,明显用%p泄露格式化字符串地址的偏移,然后覆盖key就行 偏移为12 但是覆盖key的时候容易发现,key要求的的数为35795746,转换为十六进制是0x2223322,单纯用%index$n是不行的,要将key要求的数转换成十六
阅读全文
摘要:查壳:开了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.
阅读全文
摘要:告诉你shell是什么,就是这个system("/bin/sh") 这题直接白给了,nc一下就能ls看到flag
阅读全文
摘要:最简单的栈溢出 ida查看main函数的C代码,发现如果if为真我们就能得到flag: 我们可利用的&unk_601068离dword_60106C四个字节的距离编写exp 最后得到flag
阅读全文

浙公网安备 33010602011771号