- 博客(10)
- 收藏
- 关注
原创 pwn做题之ret2libc1
(shellcraft.sh(),asm(shellcraft.sh()))这两条都是不能在这题派上用场。system(里面的参数要的是/bin/sh而不是shell!开启了NX意味着通常情况下不能执行自己编写的shellcode。找到system_plt的地址最后也能执行system真实地址。system("/bin/sh")才算拿到程序控制权。虽然有system但是没起到后门函数的作用。system参数位置在往上俩个字节。攻击这道题的通用结构。
2024-01-24 17:16:50
1083
1
原创 ret2syscall
最后构造payload=falt([b'A'*112,eax,0xb,edx_ecx_ebx,0,0,bin/sh,int_80])ret2syscall为静态链接,libc都已安装在文件不用去别的地方获取。在gdb中找ebp-exa(要换成10进制)的值加四。观察是否有/bin/sh和system后门函数。有/bin/sh但没有system。最后在ROP里面找int 0x80。找eax ebx ecx edx。接下来用ROP找eax的地址。ebx就是bin/sh的地址。也可在python里面找。
2024-01-21 17:27:02
716
1
原创 pwn做题之ret2shellcode
将二进制文件拖入ida发现无后门程序,想到要生成shellcode,用shellcraft.sh()生成,asm(shellcraft.sh()),用gdb找ebx-eax的值,payload=(ebp-eax)转换成10进制+4(文件为32字节,64字节应为8)+p32(bass区地址).
2024-01-20 13:53:44
1076
原创 pwn做题经历之ret2text
所以payload应该为16+4个字符+shell地址。ebp-eax=10(16进制)=16(10进制)可见解题关键是vulnerable()函数。ebp本身有4个字节(32字节程序)将二进制(32字节)文件托入ida。在虚拟机用gdb ret2text。然后进入vulnerable函数。gets读入数据长度不受限制。漏洞十分明显gets栈溢出。F5显示出代码的c源码。
2024-01-19 01:08:36
357
2
原创 pwn做题过程
将二进制文件拖入ida发现无后门程序,想到要生成shellcode,用shellcraft.sh()生成,asm(shellcraft.sh()),用gdb找ebx-eax的值,payload=(ebp-eax)转换成10进制+4(文件为32字节,64字节应为8)+p32(bass区地址).
2024-01-19 01:05:54
357
2
原创 gdb生成shellcode
shellcode=shellcode.ljust(字符数, b'A')当ida发现无get_shell后门函数时,可在虚拟机里面输入。shellcraft.sh()#用于生成shellcode。64位程序应该是asm(shellcraft.sh())接下来可以放心写payload。
2024-01-19 01:03:34
464
2
空空如也
ubuntu22.04
2023-12-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人