2018 网鼎杯 | pwn wp

fgo

  • 漏洞点 :
    • delete 函数 uaf
  • 利用过程:
    • add(0x10) 两个组合 0x10(pointer) + 0x18(content)
    • del 0 -> del 1
    • add(0x8) , 0x10(pointer | chunk 1 pointer) + 0x10(content | chunk 0 pointer) ,从而可以 修改 chunk 0 的指针域为 secret 函数
    • 调用 print(0) , 从而触发后门函数

exp


GUESS

  • 流程分析:
    • 读入 flag 到栈上
    • 3轮 指定栈上字符串输入 , gets 输入造成溢出
    • 输入与 flag对比
  • 利用过程:
  • 该 题目 利用stack stamsh 的点进行指定地点的leak
    • tip : 这道题目需要用多次 stack smash进行leak , 能持续进行输入程序不崩溃的原因是 ,输入的函数是用fork启动的。
    1. leak , puts 函数地址,得到libc地址
    1. 根据 libc 地址计算出 libc["__environ"] 的地址 ,leak __environ 得到一个栈上的地址
    1. 根据2中的栈地址的相对偏移计算出flag地址, leak flag

exp


easyFMT

  • 功能分析
    • while True 的 字符串输入 , 然后输出 | 长度限制 0x64
  • 漏洞点: 格式化字符串
  • 利用方法:
      1. leak printf@got , 得到 printf 地址
      1. 计算得到 system 地址
      1. 修改 printf@got 的值 为 system
      1. 输入 /bin/sh getshell

exp


babyheap

  • 这道题目 考察了堆利用的技巧结合...
    • 学到了 unlink 的后向合并
    • 还利用到了 fastbin attack
  • 功能分析:
    • alloc :
      • 分配到指定index 一个 0x30 大小的chunk | malloc(0x20)
      • 并且进行 0x20 的输入
    • edit
      • 编辑指定 index 的 chunk , 做一个 0x20 的 输入
      • 最多 编辑3次
    • delete
      • free 指定 index 的 chunk | uaf
    • show
      • 输出 指定index的地址 上的值
  • 利用 过程
      1. 分配 6 个chunk , 做好 fastbin attack 和 unlink 的准备工作
      1. leak heap 地址
      1. 根据 heap 地址,edit(0) 构造条件,使用 fastbin attack 分配一个chunk到 堆上 , 将 uaf 拓展成 堆溢出
      1. 用堆溢出 修改 chunk 1 的 size 为 0xa1
      1. free chunk 1 | free 0xa1 大小的chunk 进行 unsorted bin leak , 并且进行 unlink (后向)
      1. 根据 libc 地址 计算出 one_gadget 地址
      1. edit(4) | 使用 unlink 覆盖 ptr[1] 为 __free_hook 地址 | Full Relro 不可修改got表
      1. edit(1) | 覆盖 __free_hook 为one_gadget

exp


blind

  • 这个题目 学到了 io_file 的利用 , 看来还是要再好好看看 io_file_plus 的结构体和相关调用。
  • 参考链接 : https://www.jianshu.com/p/f14adeda85df
  • 功能分析:
    • new | 分配一个 0x68 大小的chunk 到指定 index
    • change | 修改 指定 index 的 chunk 内容
    • release | free 指定 index 的 chunk | uaf 漏洞
  • 漏洞点:
    • uaf
      • 构成 fastbin attack
  • 利用过程:
      1. 利用 fastbin attack , 分配 chunk 到 0x60204d(stderr + 5 + 8) , 从而可以控制 ptr 数组
      1. 控制 ptr 数组为 &stdout , &bss+0x300 + 0x68 * n (n : 0 - 3)
      1. 布置 bss + 0x300 开始 为 fake_io_file 和 fake_vtable
      • 3.1 这次构造 发现可以布置除了 flag 和 vtable 之外的值全为 null , 但是还是要详细了解下原理。。。。
      • 3.2 如果设置其他值的 , io_read_* ,io_write_* 最好不要覆盖。
      • 3.3 可以把 fake_io_file 和 fake_vtable 布置在一起,但是需要主意 3.2 , 并且设置好 vtable的地址
      • 3.4 先布置好vtable 然后再修改 *stdout 为 &fake_io_file

exp 1 , 2 的区别是 fake_io_file 和 fake_vtable 是否分开
exp1
exp2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容

  • 网鼎杯第一场wp guess防护机制:image.png 开启了canary和NX 简单的看了下反编译的逻辑 发现...
    zs0zrc阅读 1,976评论 0 4
  • pwn1防御机制: 运行了下 ,发现是一个模拟聊天软件的程序,功能一共有 8个 通过ida分析程序,程序一开时就分...
    zs0zrc阅读 2,302评论 2 4
  • 参考文章: 关于heap overflow的一些笔记 by ETenal [CTF]Heap vuln -- u...
    BJChangAn阅读 2,660评论 2 5
  • 0x00 前言 Pwn弱鸡,比赛划水,只好跟着大佬的博客刷刷一些题目才能维持尊严,在刷题目的时候又发现了一些新姿势...
    Fish_o0O阅读 1,530评论 0 6
  • 0x01 Guess 程序功能程序先将flag读入内存中,然后与用户输入相比较,程序会fork三次,在三次之后还猜...
    Fish_o0O阅读 1,097评论 0 5