
pwn
bunner_
这个作者很懒,什么都没留下…
展开
-
adworld-pwn-guess_num
本题考查知识点 srand()函数和rand()函数的随机数生成规则 gets()函数漏洞 – 实现栈溢出 check_sec 扔到IDA分析代码逻辑 srand()函数和rand()函数 前者设置随机种子,后者产生随机数 设置随机种子之后,随机数是循环产生的 从上图中可以看到v8和seed之间的位置关系,而v8是通过gets()函数输入的,我们可以通过栈溢出,从而达到设置seed的目的 v8 占用0x20个字节 seed 占用8个字节 所以我们构造下面的payload即可设置se.原创 2020-10-21 23:47:16 · 235 阅读 · 0 评论 -
adworld-pwn-level2
必要知识点: 32位系统函数调用使用堆栈传参 其调用时栈的结构如下: 返回地址 -> 参数n -> 参数n-1 -> … -> 参数1 将elf文件扔到IDA中 跟进到vulnerable函数,里面有输入函数,可以用来做栈溢出 再看到有system函数 又在shift+f12字符串窗口里面看到/bin/sh 所以就是构造ROP链,通过栈溢出调用system函数,并将/bin/sh压入栈中作为参数 找到system的地址: 0x08048320 找到/bin/sh地址:0x080原创 2020-10-17 00:23:03 · 225 阅读 · 0 评论 -
adworld-pwn-int_overflow
查保护机制NX,查架构32位 扔到IDA中,发现是让你登录,输入用户名,输入密码,再绕过检测即可 所以这里就是控制密码位数,然后在相应位置插入我们的目标地址,使得check_password函数的返回地址为目标地址 目标地址怎么找? 传统艺能[shift+F12] 找到了what_is_this函数,其首地址为0x0804868B 绕过长度限制需要我们的payload的长度为[260, 264] 目标地址填充在哪? dest的首地址为[ebp - 14h] 栈的结构是这样的: 位置 内容原创 2020-10-16 21:41:34 · 121 阅读 · 0 评论 -
adworld-pwn-level0
工具:kali + IDA + pwndbg + pwntools 1、将文件扔到IDA中,跟着main函数走找到vulnerable_function 上述可以看出来buf的空间只有0x80B,而_read却读入了0x200B的数据,明显的栈溢出 利用shift+F12查看字符串 发现了这玩意,跟过去发现它被callsystem函数调用 那么,我们接下来的操作就是通过栈溢出让vulnerable_function的返回指令返回到callsystem来 根据vulnerable的汇编代码来看原创 2020-10-16 11:15:23 · 275 阅读 · 0 评论