Introduktion till LDAP-injektion

Webapplikationen i dag är tänkt att vara mycket mer än bara plattformen som bearbetar användarens frågor. Under den tidigare perioden handlade webbapplikationen om platsen där användare kan komma att göra sitt arbete och logga ut, och när de loggar av slutar applikationen att fungera. Men i dag måste webbapplikationen fungera även om användaren inte använder den, vilket kan implementeras med cookies. Facebook har nyligen bekräftat att de använder cookies för att kontrollera användarnas aktiviteter för att säkerställa att deras system inte missbrukas. Så vid den tidpunkt där onlineapplikationerna måste vara mer kraftfulla, är säkerhet för applikationen ledningen av kraven. Här kommer vi att fokusera på en typ av cyberattack-läge som måste tas om hand för att säkerställa systemets säkerhet.

Vad är LDAP-injektion?

  • LDAP står för Lightweight Directory Access Protocol. Det kan definieras som ett protokoll som är försäljningsneutralt och fungerar på lagret över TCP / IP-stacken. Det används för att introducera myndighetskontroll- och autentiseringsmekanismen i webbapplikationen för att säkerställa dess säkerhet och används ofta under utvecklingen av webbapplikationer. LDAP används ofta i webbapplikationer som används via internet eller intranät. Det är mycket viktigt för webbapplikationen att gå med LDAP eftersom det är en mycket vanlig och viktig faktor som underlättar säker utveckling av webbapplikationen.
  • LDAP kan också definieras som den uppsättning standarder som används för att utföra säkerhetskontroller för att ta reda på om användaren har alla behörigheter att få åtkomst till det befintliga systemet. Det finns flera sätt att göra kontrollerna men så småningom är motivet för alla kontroller att säkerställa säkerheten för webbapplikationen. Det förbjuder obehörig åtkomst för användare som inte har rätt behörighet. Baserat på de rättigheter som användaren har för den specifika webbapplikationen säkerställer det att användaren bara kan komma åt de saker som de har rätt till. Även om det används för att ta hand om webbapplikationens säkerhet, kan det också luras av hackare för att extrahera saften från applikationen.

Utför LDAP-injektion med exempel

  • Webapplikationen måste ta input från användaren för att bearbeta den ytterligare. Angriparen kan dra nytta av detta om det värde som användarna anger att inte saneras ordentligt och direkt går till databasen för exekvering. Här kommer vi att se hur LDAP-injektionen kan startas på någon av webbapplikationerna som är benägna att attacken.

IEnter your name

  • Frågan som nämns ovan kommer att omvandlas till LDAP-vänliga kommando så att applikationen gör det enkelt för frågan att köras väl.

String ldapQueryToSearch= "(sq=" + $userName + ")";
System.out.println(ldapQueryToSearch);

  • I det ovanstående fallet, om det värde som användaren skickar in inte saneras, kan det leda till att man får namnet på alla befintliga användare genom att sätta ”*” i inmatningsrutan. En asterisk anger alla tillgängliga alternativ, så när databasen kommer att bearbeta asterisken snarare något särskilt användarnamn, kommer det att ges alla objekt lagrade i LDAP-databasen. Den faktiska frågan som kommer att köras i databasen kommer att vara

findingLogin="(&(usrid="+username+")(userPwd=(MD5)"+base64(pack("H*", md5(pass)))+"))";

  • När data inte är sanerade och databasen accepterar asteriskvärdet för processen kommer koden att vara som nedan.

findingLogin="(&(usrid=*)(usrid=*))(|(usrid=*)(userPwd=(MD5)Xkjr1Hj5LydgyfeuILpxM==))";

Så snart ovanstående sårbara kod kommer att köras in i LDAP-databasen kommer den genom alla objekt som är lagrade i LDAP-databasen och kommer att leda till skada på webbapplikationen. Resultatet av LDAP-injektion kommer sedan att användas av hackaren för att missbruka systemet och orsaka säkerhetsbrott.

Hur kan du skydda LDAP-injektionsattacker?

  • Om det finns en sårbarhet i applikationen måste det också existera sin åtgärd. Det kommer knappt att finnas någon sårbarhet som inte kan lösas eller fixas för att skydda systemet. På samma sätt finns det flera sätt som kan användas för att skydda webbapplikationen från LDAP-injektion.
  • Det allra första och mest väsentliga sättet är att sanera inmatningen innan du tar den vidare för bearbetning. Inmatningen som skickas av användaren måste valideras om den matchar det krav som passar vad applikationen förväntar sig genom det textfältet. Om användaren till exempel försöker skicka in några specialtecken i textfältet som ber om namnet, bör användaren varnas om att de inte kan fylla specialtecken i det fältet. Det är valideringen på klientsidan. Nu måste valideringen på serversidan också krävas för att se till att de uppgifter som har tillhandahållits är äkta.
  • Nästa är att konfigurera LDAP och ha säkerhet i åtanke. LDAP-konfigurationen bör göras på ett sätt som begränsar obehöriga användare att göra skadliga förändringar i systemet. Det nästa är också att resultatet av LDAP-frågan måste vara begränsad och inte kan lämna ut några data som kan leda till säkerhetsbrott. Om data inte kommer att vara tillräckliga för att skada systemet kommer angriparen inte att kunna påverka webbapplikationen på något sätt även om de kunde starta LDAP-injektionsattacken.

Slutsats

Lightweight Directory Access Protocol ger vägen till applikationen för att säkerställa att användaren som försöker komma åt systemet är korrekt autentiserad och behörig att använda systemet. Det är mycket viktigt att överväga LDAP medan man tar hand om alla säkerhetsproblem. Systemet bör vara tillräckligt för starkt för att inte låta någon hacker starta en LDAP-attack. Eftersom LDAP-databasen innehåller mycket lukrativ information, måste administratören se till att ingången från användaren har renats mycket noggrant och att konfigurationen måste göras genom att ha alla säkerhetsfaktorer i åtanke.

Rekommenderade artiklar

Detta är en guide till LDAP-injektion. Här diskuterar vi vad som är LDAP-injektion, dess exempel och hur man skyddar LDAP-injektionsattack. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer-

  1. Vad är SQL-injektion?
  2. Vad är Laravel?
  3. Säkerhetstest
  4. Vad är Java-gränssnitt?

Kategori: