- 博客(10)
- 收藏
- 关注
原创 基本ROP之ret2libc2
gets读取的字符串放在bx寄存器中的存的地址,然后返回地址system,system的返回地址,/bin/sh的返回地址 就酱理解吧!gdb调试elf文件查看plt表发现有system的plt表项,需要我们自己调用gets函数来读取字符串'/bin/sh'0x804a000~0x804b000有write权限 都能写。检查保护机制 只开了堆栈不可执行。考虑一下这个字符串写哪里。用vmmap查看一下权限。
2023-04-02 22:13:58 85
原创 基本ROP之ROPgadget
把对应获取 shell 的系统调用的参数放到对应的寄存器中,那么我们在执行 int 0x80 就可执行对应的系统调用。例题: bamboofox 中的 ret2syscall。检查保护机制 堆栈不可执行 随机地址没开。获得 /bin/sh 字符串对应的地址。寻找控制 ebx 的gadgets。寻找控制 eax 的gadgets。利用gadgets获得shell。bx bin/sh的地址。int 80 的地址。
2023-04-02 16:45:08 842
原创 [XCTF]stack2(你的疑问可以在这里找到答案)
前面的必要流程就不多说啦 这道题开了栈溢出保护 运行一下似乎找不到可以利用的点 那就看看这里吧 v13这个数组 在第三个选项change的时候没有限制 so 我们可以在main函数结束的时候改变返回地址 hackhere函数里有个system('/bin/bash')不同于system('/bin/sh')打通之后会出现没有bash所以我们不能直接利用hackhere这个函数的地址当作main函数的返回地址!我们可以把plt表的system函数的地址当作返回地址,传参'sh'思路有啦 我们接下来就要考虑在哪
2022-07-10 17:25:15 232
原创 forgot XCTF(你的疑问都可以在这里找到答案)
基本操作这里就不多说啦 直接进入正题执行文件呢 会看到是关于有限状态自动机会不会被吓到呢(纳尼!?)哈哈 其实是吓唬我们的 下面是主程序的关键部分 已知 char v2[32] 那strlen(v2)=32 for 循环可以改写为 for(i=0;i>=32;++i)注意注意 下面的switch语句 default:continue不同于default:默认为break但是如果是default:continue 就会执行continue语句 跳出此次循环 i++之后继续执行switch语句红框框圈起来的是不
2022-07-01 22:27:58 701
原创 CGfsb pwn
格式化字符串漏洞 标志 printf(&s)查看一下保护运行一下第十个参数是我们传的分析程序可得pwnme==8的时候 cat flag利用fgets函数 改掉pwnme的值 改为8脚本from pwn import *#r=process("./CGfsb")r=remote('111.200.241.244',53697)pwnme_addr=0x0804A068payload=p32(pwnme_addr)+b'%4c%10$n'r.sendlineaf.
2022-04-08 16:26:55 308
原创 string 格式化字符串漏洞 xctf
借着这道题了解一下格式化字符串漏洞查看一下保护 放进64位的IDA分析一下程序这道题涉及C语言的指针 好好学Cmain()分析得v3=v4v4(v3) 8ull 前四位是68 后四位85 执行sud_400D72() 传的参数是v4继续执行 分析一下 输入 个名字 不能太长 然后east 1 关键的部分来了print(&format,&format)格式化字符串漏洞 给我个地址 就是第一个秘密 (好好思考一下 关键是悟)把85传进去 看一下是第几个参数呢
2022-04-07 17:56:44 3468
原创 int_flow pwn
规矩走一下查看main() 反汇编翻译一下 肯定得登陆吧 所以当收到'Your chioce'时咱得扣1进入login()函数浅看一下两个read()函数都不能溢出 看一下check_passwd()函数参数s从buf里提取浅看一下这个函数s的长度换成无符号整型int8得在3和8之间才能提示success 接着fflush是一个清栈的操作浅看一下strcpy 这也是一个危险函数会导致栈溢出打开what_is_this()from pwn im...
2022-03-26 18:04:36 292
原创 攻防世界 level0
常规操作:可以看到no canary found 没有栈保护机制 可以利用栈溢出pwn掉程序(NX,Canary,Relro,PIE保护机制的讲解文末聊)64位放进ida64分析:主函数的内容 :write()函数(write函数和read函数文末聊) 返回值是vulnerable_founction函数里的内容 点开看一下返回值是read()函数的内容 有个栈 看一下.........
2022-03-21 22:19:27 566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人