第一次试水buf

Posted zuoanfengxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次试水buf相关的知识,希望对你有一定的参考价值。

https://www.jarvisoj.com/challenges(pwn网址)
nc pwn2.jarvisoj.com 9881(远程连接)
在ubuntu16.04上进行连接,看下图
技术图片
连接之后屏幕出现一行字符
在pwn的网址上看到:
技术图片
使用file指令
hacker@ubuntu:~$ file level0
level0: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.32, BuildID[sha1]=8dc0b3ec5a7b489e61a71bc1afa7974135b0d3d4, not stripped
可知为64位程序,丢到ida64中,main函数伪代码如下:
技术图片
分析可知:write使之显示Hello World,进入易受攻击的函数vulnerable_function();技术图片
buf大小0x80,但可读入0x200,所以可以实现数据的覆盖
技术图片
看到函数列表:callsystem,进入发现有
技术图片
紧接着想办法查到callsystem的函数地址,两种方法均可
技术图片
gdb-peda$ p callsystem
$1 = {<text variable, no debug info>} 0x400596
均可知其地址为0x400596
技术图片
利用vim写exp.py
技术图片

注意第一行是必须带上的
在前面加上

!/usr/bin/python

申明l这是个python脚本,要用python解释器来运行:
由于程序先显示一行,在进入vulnerable_function(),所以才有了recvuntil
相当于跳过了交互的第一步。
技术图片
这样就可以成功得到flag ^_^

以上是关于第一次试水buf的主要内容,如果未能解决你的问题,请参考以下文章

初学Jmeter的摘抄学习总结----------第一次试水badboy录制并用jmeter打开

区块链赋能民生“第一单”:200多套房源试水,“链宜租”租房系统上线

为啥 io.reader 读完后会变空?

在用单片机接受串口数据的时候,第一位是0x0A

渣硕试水字节跳动,本以为简历都过不了,123+HR面直接拿到意向书

分割字符串