<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 3.1、二進制的漏洞利用(1) 二進制的漏洞利用是破壞編譯程序的過程,令程序違反自身的可信邊界從而有利于你——攻擊者。本部分中我們將聚焦于內存錯誤。通過利用漏洞來制造軟件內存錯誤,我們可以用某種方式重寫惡意程序靜態數據,從而提升特定程序的權限(像遠程桌面服務器)或通過劫持控制流完成任意操作和運行我們所用的代碼。 如果你嘗試在已編譯的C程序中找bug,知曉你要找的東西是很重要的。從認識你發送的數據被程序用在什么地方開始,如果你的數據被存儲在一個緩沖區中,要注意到它們的大小。編寫沒有錯誤的C程序是非常難的,[CERT C Coding Standard](https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Coding+Standard)手冊匯總了許多錯誤出現的方式。對[commonly misused APIs](http://stackoverflow.com/questions/4588581/which-functions-in-the-c-standard-library-commonly-encourage-bad-practice)稍加注意是可以加快了解的捷徑。 一旦一個漏洞被確認,它就可以被用來威脅程序的完整性,然而,有各種不同的方式可以達到這個目標。對于像Web服務器這樣的程序,獲取另一個用戶的信息可能是最終目標。另一方面,修改你的權限可能是有用的,比如修改一個本地用戶權限為管理員。 **課程** 第一套課程是《Memory Corruption 101》,提供了Windows環境下緩沖區溢出利用一步一步的解釋和相關背景。第二套課程《Memory Corruption 102》,涵蓋了更多高級主題,包括Web瀏覽器漏洞利用。這兩套課程都是針對Windows的例子,但技術和過程可以用于使用x86指令集的其他操作系統。記住,當你處理UNIX/Linux二進制時,函數名稱和有時候的調用約定是不一樣的。 * [Memory Corruption 101](http://vimeo.com/31348274) * [Memory Corruption 102](http://vimeo.com/31831062) **工具** 我們建議使用GDB來調試該部分的挑戰題,因為它們都是在32位Linux下編譯的,然而,GDB更適合用來調試源代碼,而不是沒有標識符和調試信息的純粹二進制程序。諸如[gdbinit](https://github.com/gdbinit/gdbinit)、[peda](https://code.google.com/p/peda/)和[voltron](https://github.com/snarez/voltron)可以使gdb在調試無源碼的程序時更有用。我們建議在你的home目錄下創建一個至少包含以下命令的.gdbinit文件: ``` set disassembly-flavor intel set follow-fork-mode child ``` **挑戰工坊** 為了運行這些挑戰題,你需要安裝[Ubuntu 14.01(32-bit)](http://www.ubuntu.com/download/desktop/thank-you?country=US&version=14.04&architecture=i386)虛擬機。我們建議使用[VMware Player](https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0),因為它免費且支持性很好。在你運行虛擬機后,打開終端并運行sudo apt-get install socat來安裝socat。 在此次挑戰工坊中共有三道挑戰題,當你在git中clone該手冊的repository后,每道題都包含在其目錄中,每道題的最終目標是操縱執行流以讀取flag。對于每道題,請嘗試將反匯編轉換為C代碼。在嘗試之后,你可以通過查看提供的實際C源碼來確認你的猜測,然后,嘗試利用漏洞來讀取flag。 **挑戰題:Easy** 確認目錄中easy程序的flag。當你執行easy后,它會在12346端口監聽指令。 **挑戰題:Social** 和easy類似,確認目錄中social程序的flag和作為social程序的host.sh。當你執行social后,它將在12347端口監聽指令。 **資源** * [Using GDB to Develop Exploits – A Basic Run Through](http://www.exploit-db.com/papers/13205/) * [Exploiting Format String Vulnerabilities](https://trailofbits.github.io/ctf/exploits/references/formatstring-1.2.pdf) * [Low-level Software Security: Attacks and Defenses](https://trailofbits.github.io/ctf/exploits/references/tr-2007-153.pdf)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看