<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          pwnhub 9月公開賽

          共 1609字,需瀏覽 4分鐘

           ·

          2021-10-04 09:28

          作者:jambolt ?編輯白帽子社區(qū)運(yùn)營(yíng)團(tuán)隊(duì)




          ? ??"白帽子社區(qū)在線CTF靶場(chǎng)BMZCTF,歡迎各位在這里練習(xí)、學(xué)習(xí),BMZCTF全身心為網(wǎng)絡(luò)安全賽手提供優(yōu)質(zhì)學(xué)習(xí)環(huán)境,鏈接(http://www.bmzclub.cn/)

          "? ??




          利用技巧

          1. fastbin attack

          2. tcachebin attack

          3. IO_file

          4. FSOP 利用 pwntools SigreturnFrame模塊

          程序分析

          程序保護(hù)情況

          沙盒保護(hù)

          90bd2740eabf3f3250a5601ee7a67fc9.webp

          禁止程序執(zhí)行系統(tǒng)命令,且限定使用 ARCH_x86_64指令

          程序保護(hù)

          程序保護(hù)全開?

          d705fe545e98031c33ba35e68317902a.webp

          libc環(huán)境

          glibc-2.31

          程序漏洞出現(xiàn)點(diǎn)

          free調(diào)用可以越界

          56bec3fe95255ff810cc39d818dc24b1.webp

          leave_num 的最大值可以取為8,固free 最大次數(shù)為9

          acedb0479282803265b58432286ec2a7.webp

          全局變量 break_up_list與 chunk_list想連,發(fā)生free越界時(shí),會(huì)執(zhí)行free(break_up_list[8])既free(chunk_list[0]),可以用于構(gòu)造double free。

          利用過程

          1)通過largebin泄露libc基址和堆空間地址

          堆空間的地址泄露 在unsortedbin中申請(qǐng) largebin 大小的chunk是,滿足 bck=fwd時(shí)會(huì)觸發(fā)執(zhí)行堆塊的 fd_nextsize和bk_nextsize 寫入 堆塊的地址

          f8e4ed28f099e648376a8fe5d4f18b56.webp


          54538c7ede9843458c8307a9b0127b66.webp

          泄露libc地址

          d9c62770aae3ab27a6c10527f0ecfaf1.webp

          申請(qǐng)堆塊后的堆空間 寫入 'a' * 8 覆蓋堆塊fd 可以進(jìn)行l(wèi)ibc泄露,寫入 'a'*16覆蓋 fd和bk 可以泄露堆空間地址

          e55f87337fa4cade094ea2b3182d2e12.webp

          2)構(gòu)造fastbins attack

          題目中可以對(duì) break_up_list進(jìn)行越界free,先將tachebins 填滿

          915d3dba5aabffa953518343c4f74fcb.webp

          之后再通過越界free(chunk_list[0])來構(gòu)造double free,既

          free(break_up_list[6])free(break_up_list[7])free(chunk_list[0]) #越界free

          71a728438eabe14c38389b47b48614a0.webp

          成功控制fastbins鏈表

          93de3131f0dbf6f4d938af9840e4c3d0.webp

          3)通過fastbin attack 構(gòu)造tcache bin attack

          申請(qǐng) 兩個(gè) 0x450的 堆塊 top_chunk被擠到 0x290 + (0x460 * 2) = 0xb50,申請(qǐng)一個(gè)0x20的chunk_list[15] 定位到了 0xb50

          7a118a25044e1f46a4497edd922adbd6.webp

          從unsortedbin中申請(qǐng)0x20堆塊 內(nèi)容寫上偽造的chunk_size

          128bdf17eb7c26908999b3e58716a419.webp

          之后申請(qǐng)的smallbin也會(huì)從unsortedbin中申請(qǐng)

          清空之前的tcachebins,剩下之前構(gòu)造的double free

          df1552d32e30fb54e3316074e79869bc.webp

          再次申請(qǐng)堆塊,fastbins 進(jìn)入 tcachebins,改寫fd指針,控制tcachebins,tcache之后申請(qǐng)的空間可以改寫 chunk_list[0]

          63c4154fe0b99bbf3ab498a35f2002c3.webp

          之后free chunk_list[0], chunk_list[1],使之進(jìn)入 tcachebins[0x260]中,再次申請(qǐng)0x40的堆塊可以改寫 tachebins[0x260]的鏈表

          4c98acd739772d76b3722e70ce3f8de6.webp

          27af4b46ee4882453d3ed8de60a5f04b.webp

          之后改寫_IO_2_1_stdin_

          4)FSOP執(zhí)行觸發(fā)流程

          exit() -> __run_exit_handlers() -> IO_cleanup() -> _IO_flush_all_lockp()-> _IO_str_overflow() -> malloc() -> __malloc_hook-> setcontext -> mprotect()

          8cbd1515c755e7ae7166602a48512f6e.webp


          9754f45a891e35df2f0049be72d1c3e7.webp


          61bb660940810c643fb807c670b19e40.webp

          ?通過setcontext 和 mprotect 跳轉(zhuǎn)到之后寫入的匯編代碼進(jìn)行執(zhí)行

          2ea8f3ddb05ef126a99e2e5fd647c3f2.webp

          在got表的匯編代碼中實(shí)現(xiàn)了 fd = open("flag.txt", 0)

          86af398351a81a928953fc5008753055.webp

          read(fd, buf, 0x40)

          19c8f3436b0ae2eceb72bdaf6ee486b7.webp

          write(fd, buf, 0x40)

          f046ce5365d6903e01a8b7a2c0a48d4d.webp



          往期精彩文章



          黃金票據(jù)的制作與使用
          baijiacmsV4代碼審計(jì)!
          記一道有趣的“簽到”題
          php代碼審計(jì)總結(jié)




          技術(shù)支持:白帽子社區(qū)團(tuán)隊(duì)—?掃碼關(guān)注我們?


          瀏覽 37
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品久久久国产 | 日韩一级欧美一级 | 欧美日韩性爱一区二区三区 | 国产精品无码素人福利 | 韩一区 |