Pentest və SOC Cheat Sheet
  • Reconnaissance
  • Post-Explotation
    • Linux Post-Explotation
      • Linux Local Enumeration
      • Linux Privilege Escalation
      • Dumping and cracking hashes on Linux
      • Linux Persistence
    • Windows Post-Explotation
      • Windows Local Enumeration
      • Windows Privilege Escalation
      • Windows Persistence
  • Network Services Pentesting
    • 21-Pentesting FTP
    • 22-Pentesting SSH
    • 23-Pentesting Telnet
    • 53-Pentesting DNS
    • 25,465,587-Pentesting SMTP
    • 110,995-Pentesting POP
    • 139,445-Pentesting SMB
    • 3306-Pentesting MySQL
    • 3389-Pentesting RDP
    • 1433-Pentesting MSSQL-Microsoft SQL Server
    • 389,636,3268,3269-Pentesting LDAP
  • Web Pentesting
    • Broken Access Control
      • Praktiki nümunə
    • OS Command Injection
      • Praktiki nümunə
    • SQL Injection
      • Praktiki nümunə
    • Cross-Site-Scripting (XSS)
      • Praktiki nümunə
    • File Upload
      • Praktiki nümunə
    • Directory Traversal və Path Traversal
      • Praktiki nümunə
    • CSRF
    • XXE
    • Clickjacking
      • Praktiki nümunə
    • SSRF
      • Praktiki nümunə
    • JWT (Json Web Token)
      • Praktiki nümunə
    • Local&Remote File İnclusion
      • Praktiki nümunə
      • Local File inclusion ilə reverse shell almaq
    • 401&403 Bypass
    • Login Bypass
    • Open Redirect
    • Unicode Injection
    • Security Misconfiguration
    • CRLF injection
    • LDAP Injection
    • Cookies Hacking
    • Cross site WebSocket hijacking (CSWSH)
    • SSTI (Server Side Template Injection)
    • CSTI (Client Side Template Injection)
    • XSLT Server Side Injection (Extensible Stylesheet Languaje Transformations)
    • Registration & Takeover Vulnerabilities
    • Regular expression Denial of Service - ReDoS
    • Reset/Forgotten Password Bypass
    • SAML Hücumları
    • Reverse Tab Nabbing
    • Web Tool - WFuzz
    • XPATH enjeksiyonu
    • Server-Side Includes (SSI) Injection
    • Edge Side Inclusion Injection (ESII)
    • Race Condition
    • PostMessage
    • Parameter Pollution
    • Cache Poisoning and Cache Deception
    • Captcha Bypass
  • AD Pentesting
    • Domain Enumeration
      • PowerView ilə enumeration
      • AD Module ilə enumeration
      • BloodHound ilə enumeration
        • On Site BloodHound
      • Using Adalanche
        • Remote adalanche
      • Useful Enumeration Tools
    • Local Privilege Escalation
      • Useful Local Priv Esc Tools
      • UAC Bypass
    • Lateral Movement
      • Powershell Remoting
      • Mimikatz
      • Remote Desktop Protocol
      • URL File Attacks
      • Useful Tools
    • Domain Privilege Escalation
      • Kerberoast
      • ASREPRoast
      • Password Spray Attack
      • Force Set SPN
      • Abusing Shadow Copies
      • List and Decrypt Stored Credentials using Mimikatz
      • Unconstrained Delegation
      • Constrained Delegation
      • Resource Based Constrained Delegation
      • DNSAdmins Abuse
      • Abusing Active Directory-Integraded DNS (ADIDNS) poisoning
      • Abusing Backup Operators Group
      • SID History Abuse
      • Active Directory Certificate Services
    • Domain Persistence
      • Golden Ticket Attack
      • Silver Ticket Attack
      • Skeleton Key Attack
      • DSRM Abuse
      • DCsync Attack
    • Cross Forest Attacks
      • Trust Tickets
      • Abuse MSSQL Servers
      • Breaking Forest Trusts
  • SOC - Cheat Sheet
    • SOC Nədir?
    • SOC Komponentləri Nələrdir?
    • SOC Checklist
    • SIEM
      • Splunk Qurulması və Konfiqurasiyası
    • IDS/IPS
    • Firewall
    • Firewall qurulması və konfiqurasiyası
    • EDR/XDR
    • SOAR
    • Windows Commands for SOC analysts
      • GUI Programs in Windows
      • Event Viewer
      • Task Scheduler
      • Group Policy Editor
      • Device Manager
      • Task Manager
      • Registry Manager
    • Linux Commands for SOC analysts
    • LOLBAS Apps and Commands
      • Apps and Commands
Powered by GitBook
On this page
  • Race condition nədir?
  • İstismar
  • Advanced exploitation
  • HTTP sorğusunun iki hissəyə bölünməsi
  • İşə yarayan trick-lər
  • Yarış şəraitində sessiya imkanları
  • Serverə yaxınlıq

Was this helpful?

  1. Web Pentesting

Race Condition

PreviousEdge Side Inclusion Injection (ESII)NextPostMessage

Last updated 1 year ago

Was this helpful?

Race condition nədir?

Yarış şərti, tətbiqin işləməsi kodun hissələrinin yerinə yetirilmə ardıcıllığından asılı olan çox yivli proqramın memarlıq zəifliyidir.

İstismar

Əksər hallarda yarış vəziyyətini yoxlamaq və ya istismar etmək üçün müştəri kimi çox yivli proqram istifadə olunur, məsələn. Burp Suite Intruder, yəni bir http sorğusu birdən çox mövzuya daxil olur.

Bu, əgər server öz resursunda birdən çox mövzudan istifadə etməyə icazə verirsə, bu, kifayət qədər işləyən bir yoldur. Ancaq fakt budur ki, bəzi hallarda bu, təsirli olmaya bilər.

Server tərəfində hər bir ip TCP bağlantısı qurur, məlumat göndərir, cavab gözləyir, əlaqəni bağlayır, yenidən açır, məlumat göndərir və s. İlk baxışdan bütün məlumatlar eyni vaxtda göndərilir. Lakin HTTP sorğuları paketlərin şəbəkə üzərindən çatdırılmasında gecikmələr, təhlükəsiz əlaqə yaratmaq ehtiyacı, DNS həlli və məlumatların şəbəkə cihazına göndərilmədən əvvəl keçdiyi bir çox abstraksiya təbəqələri kimi bir çox amillərə görə asinxron şəkildə gələ bilər.

Advanced exploitation

RFC 7230 6.3.2 spesifikasiyası HTTP məzmununun yüklənmə vaxtını əhəmiyyətli dərəcədə azalda bilən HTTP Boru Təchizat texnikasını müəyyən edir. Yükləmə vaxtı müvafiq cavabları gözləmədən bir TCP bağlantısı üzərindən çoxsaylı HTTP sorğuları göndərməklə azaldılır.

Bu texnika sorğular arasındakı vaxtı minimuma endirmək üçün istifadə edilə bilər.

HTTP Pipelining-in əsas məqamı veb serverin sorğuları ardıcıl olaraq qəbul etməsi və cavabları eyni ardıcıllıqla emal etməsidir. Bu özəllikdən minimum vaxt ərzində ardıcıl olaraq iki hərəkəti yerinə yetirmək və ya hücumun müvəffəqiyyətini artırmaq üçün ilk sorğuda serveri yavaşlatmaq lazım olduqda bir neçə addımda hücum etmək üçün istifadə oluna bilər.

HTTP sorğusunun iki hissəyə bölünməsi

RFC 7230 2.1 sorğu xətti (metod, URI və protokol versiyası) ilə başlayan sorğu mesajının ümumi görünüşünü, ardınca başlıq sahələri, başlıq bölməsinin sonunu göstərmək üçün boş sətir və nəhayət, aşağıdakıları ehtiva edən mesaj gövdəsini müəyyən edir. faydalı yük orqanı (əgər varsa). Mesajın mətni Bölmə 3.3-də müəyyən edilmişdir.

Mesaj gövdəsinin sonu Transfer-Encoding və ya Content-Length başlıqlarına əsasən aşkar edilir. Bu başlıqların istifadəsi ilə bağlı ətraflı məlumat üçün HTTP Sorğu Qaçaqmalçılığı üçün fırıldaqçı vərəqinə baxın.

Komanda xəttindən aşağıdakı sorğunu göndərsəniz:

$ echo -ne "GET / HTTP/1.1\r\nHost: website.com\r\n\r\n" | nc website.com 80

sonra HTTP sorğusu tamamlanacağı üçün cavab alacaqsınız. Amma sonuncu simvolu silsəniz bu baş verməyəcək, bu halda server son simvolu gözləyəcək.

Beləliklə, siz eyni vaxtda serverə bir çox əlaqə aça, HTTP sorğunuzun 99%-ni göndərə və məlumatların əsas hissəsinin göndərildiyi aydın olan kimi son baytı və ya bir neçə baytı göndərə bilərsiniz.\

Bu, böyük bir POST sorğusuna gəldikdə, məsələn, bir fayl yükləmək lazım olduqda xüsusilə vacibdir. Bununla belə, bu, hətta kiçik sorğularla da məna kəsb edir, çünki bir neçə baytın çatdırılması eyni vaxtda kilobayt məlumat göndərməkdən daha sürətlidir.

İşə yarayan trick-lər

Yarış şəraitində sessiya imkanları

Sessiyanın özü yarış vəziyyətinin istismarının qarşısını ala bilər. Məsələn, PHP-də session_start() funksiyasından sonra sessiya faylı kilidlənir və onun kilidini açmaq yalnız skriptin sonunda baş verir (əgər session_write_close çağırışı olmadıqda). Bu anda sessiyadan istifadə edən başqa bir skript çağırılırsa, o, gözləyəcək.

Bu imkandan qaçmaq üçün sadə bir hiylədən istifadə edə bilərsiniz: lazım olan qədər autentifikasiya etmək. Əgər veb tətbiqi sizə bir istifadəçi üçün çoxlu seans yaratmağa imkan verirsə, sadəcə olaraq bütün PHPSESSID-ləri toplayın və hər sorğunu öz ID-si ilə təyin edin.

Serverə yaxınlıq

Hücum etmək istədiyiniz sayt AWS-də yerləşdirilibsə, AWS-də host icarəyə götürün. Server DigitalOcean-dadırsa, onu orada icarəyə götürün. Əsas vəzifə göndərilən sorğular arasındakı intervalı minimuma endirmək olduqda, veb serverə dərhal yaxınlıq bir artı olacaq. Bu vəziyyətdə serverə hansı ping-in 200 və ya 10 ms olması həqiqətən vacibdir. Üstəlik, şanslısınızsa, hətta eyni fiziki serverə də gedə bilərsiniz, onda istismar bir az asan olacaq.