<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>

          【代碼審計】ThinkPhp6任意文件寫入

          共 690字,需瀏覽 2分鐘

           ·

          2020-08-16 11:25

          saulGoodman

          一個專注于紅隊攻防研究的公眾號

          關注

          ThinkPhp6任意文件寫入


          Thinkphp6:任意文件寫入


          版本:v6.0.0-v6.0.1
          復現(xiàn)過程:
          下載配置好tp6 然后 ,在\tp6\app\controller\Index.php 中。寫好,漏洞代碼。



          然后再去,tp6\app\middleware.php中吧session 寫入打開



          訪問index 控制器,查看



          打開正常,傳入a 參數并且抓包



          在a參數寫入php代碼。Phpsessid 寫入一個文件名和路徑總長度32位的內容。
          發(fā)送



          成功寫入
          漏洞分析:
          根據網上信息漏洞位置在:
          tp6/vendor/topthink/framework/src/think/session/Store.php
          所以我們直接定位到漏洞位置:



          判斷phpsessid的值是否是字符串并且是否長度為32
          向下走,找到session保存的位置:

          關鍵代碼就是 259-261,這里他判斷session的值如果不為空就是進行序列化然后寫入.其中也沒有過濾。所以如果session 的值 我們能控制 (就比如圖1那樣),就會直接造成一個任意文件寫入的漏洞。

          (在src/think/middleware/SessionInit.php文件里有phpsessid的獲取方法。這里就不追了,有興趣的可以自己去查看)




          瀏覽 101
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  亚洲黄色成人视频 | 日韩美女黄网站 | 最新国产视频 | 五月天成人激情视频 | 欧美日韩天堂 |