美文网首页
picoctf-2018 | pwn wp

picoctf-2018 | pwn wp

作者: fantasy_learner | 来源:发表于2019-01-13 15:25 被阅读0次

bufferoverflow0

  • 功能分析 :
    • 绑定 11 信号为 错误函数(输出 flag)。
  • 利用过程:
    • 输入长度 超过 0x1c ,会破坏 ret。
    • 从而 触发 11 信号的绑定函数.
    • tip : 因为 flag 在 bss段 , 还可以 栈溢出 , 设置 为 puts(&flag)
      exp

bufferoverflow1

  • 漏洞点 : 输入长度不限制,造成栈溢出
  • 利用 : 覆盖 ret 为 win 函数
    exp

bufferoverflow2

  • 漏洞点 : 输入长度不限制 , 造成栈溢出
  • 利用 : 与 bufferoverflow1 相比, 需要利用栈溢出 , 调用传参函数 win(0xdeadbeef , 0xdeadc0de)

exp


bufferoverflow3

  • 功能分析:
      1. 读入 canary.txt , 取出前 4 个字符为 canary
      1. 根据输入指定 输入长度 | 栈溢出
      1. 对 栈上地址 进行指定长度的输入
      1. 判断 canary 是否被改变 , 没有被改变过,就ret
  • 利用过程:
    • 因为 canary 是从文件中的读取的4字节,所以不会变化,可以爆破获得
      • tip: 应该 利用 read 的特点(不会为输入的尾部加上 \x00),逐个字符进行爆破,从而降低爆破的难度 (全部字符直接进行爆破 , 难度 256 ^ 4 , 逐个字符爆破 , 难度 256 * 4)

exp


can-you-gets-me

  • x86 elf | 静态链接
  • 漏洞点:
    • gets 输入造成栈溢出
  • 利用过程:
    • ret2syscall (execve("/bin/sh\x00" , null , null))
        1. 将 /bin/sh 输入到 bss段 (利用 pop ecx 和 pop [ecx])
        1. eax , 0xb
        1. ebx , bss
        1. ecx , 0 (null)
        1. edx , 0 (null)
        1. int 0x80 | 执行函数

exp


echoo

  • 漏洞点:格式化字符串
  • 流程分析 :
      1. 读入 flag 在栈中
      1. 循环 读入和输入 格式化字符串
  • 利用 :
    • %8$s ,该格式化字符串,可以输出栈中的flag

exp


got-2-learn-libc

  • 流程分析:
    • 输出 puts 等函数的地址和 /bin/sh 的字符串地址
    • gets读入字符串,造成栈溢出
  • 利用过程:
      1. 获取 puts 函数地址 和 /bin/sh 地址
      1. 利用 LibcSearcher 根据 puts 地址 获取 system 地址
      1. 栈溢出 调用 system("/bin/sh\x00")

exp


got-shell

  • 流程分析 :
    • 输入 地址
    • 输入 值
    • 综合 : *地址 = 值
  • 利用点:
    • 根据 got 机制, 修改 exit@got 的 值 为win , 从而在 exit 时调用 win

exp


shellcode

  • 流程分析 :
  • 用户 输入 一段 shellcode
  • 执行 shellcode
  • 利用过程
      1. 使用 shellcraft 生成一段 shelllcode
      1. 输入 ,getshell

exp


gps

  • 流程分析:
      1. 输出一个栈地址( 根据 rand() 的结果 做了一定处理 )
      1. 在栈中 $rbp - 0x1010 输入 0x1000 个字符
      1. 输入一个地址 , 并且 跳转到该地址
  • 考察点:
      1. 抗随机化 的 shellcode
      • 1.1 随机化的点 :输出的栈地址 被 随机数处理过,从而无法根据它找到 shellcode的具体输入地址 , 变化范围 ([- 0x29c , 0x29c])
      • 1.2 抗随机化的 解决方法: nop 指令
  • 利用过程
  1. 获取栈地址 并加上 0x29c , 确保 >= $rbp - 0x1010
  2. 利用 shellcraft.amd64.linux.sh() 生成 shellcode
  3. 利用 nop 对 shellcode 的 前部进行填充
  4. 输入 shellcode , 跳转 栈地址 执行

exp


leak-me

  • 流程分析:
      1. 输入 name <= 0x100
      1. 在 name 的输入之后,填入 28 个字符的字符串
      1. 输入 密码 进行 与 password.txt 的内容 进行比较判断
  • 利用过程:
      1. 填充 name , 从而 leak password
      1. 读取泄露的 password , 从而输入password , 通过判断

exp


ropchain

  • 流程分析:
    • gets 造成 栈溢出
  • 利用过程:
      1. 调用 win_function1 ,设置 win1 = 1
      1. 调用 win_function2(0xBAAAAAAD) , 设置 win2 = 1
      1. 调用 flag

exp

相关文章

  • picoctf-2018 | pwn wp

    bufferoverflow0 功能分析 :绑定 11 信号为 错误函数(输出 flag)。 利用过程:输入长度 ...

  • 攻防世界 Pwn wp

    0x01get_shell 下载附件后直接丢IDA F5 0x02CGfsb 先用checksec查看开了哪些保护...

  • isitdtuctf_pwn_wp

    babyformat x32 elf | FULL RELRP , NX , PIE 漏洞点 : 格式化字符串 限...

  • fireshell 2019 | pwn wp

    leakless x86 elf | nx 漏洞 : 栈溢出 利用 :使用 puts leak libc , 并第...

  • WhiteHat GrandPrix 2018 QUAL - p

    前几天M4X师傅给了道题看,当时没做出来,后来看了网上的wp之后觉得姿势很骚,wp:http://pwn3r.ti...

  • 网鼎杯pwn WP

    前言 本周参加了两个比赛,一个是de1CTF,另一个是网鼎杯,把这两场比赛全部总结一下。 在网鼎杯中,有幸拿了一个...

  • ciscn-2018-pwn-wp

    echo_back 这题看了大佬的wp才写出来的,触及到了我的知识盲区。。。 参考链接 : http://p4nd...

  • 2019 西湖论剑 | pwn wp

    story 保护 : full relro , stack canary , nx 程序流程 :获取用户 id ...

  • nctf2018 | pwn wp

    babystack 这道题目用到了一个 vsyscall 的点。。。 保护 : nx , pie 限制 : 输入长...

  • H-game | pwn | wp

    week1 babysc 思路 :shellcode 对应(index + 1)异或处理后再执行 exp aaaa...

网友评论

      本文标题:picoctf-2018 | pwn wp

      本文链接:https://www.haomeiwen.com/subject/qxakdqtx.html