Shang
Blog πŸ‘¨β€πŸ’»
  • 🌸Introduction
  • πŸ’»WEB SECURITY
    • Research Vulnerability
      • πŸ“²Server-side topics
        • πŸ”API Testing
        • πŸ”Race conditions
        • πŸ”XML external entity (XXE) injection
        • πŸ”Server-side request forgery (SSRF)
        • πŸ”File upload vulnerabilities
        • πŸ”Access control vulnerabilities and privilege escalation
        • πŸ”Business logic vulnerabilities
        • πŸ”OS Command injection
        • πŸ”Directory traversal
        • πŸ”Authentication vulnerabilities
        • πŸ”SQL injection
      • πŸ“±Client-side topics
        • πŸ”DOM-based vulnerabilities
        • πŸ”Cross-origin resource sharing (CORS)
        • πŸ”WebSockets
        • πŸ”Clickjacking (UI redressing)
        • πŸ”Cross-site request forgery (CSRF)
        • πŸ”Cross-site scripting(XSS)
      • πŸŒ€Advanced topics
        • πŸ”Web cache poisoning
        • πŸ”HTTP request smuggling
        • πŸ”Prototype pollution
        • πŸ”Server-side template injection(SSTI)
        • πŸ”Insucure deserialization
    • Learn Java Vulnerability
      • Intro & Setup
      • Java Reflection Part 1
      • Java Reflection Part 2
    • Research Documents
      • 🎯DNS Rebinding
      • πŸͺRemote Code Execution - Insecure Deserialization
      • πŸͺRemote Code Execution on Jinja - SSTI Lab
      • πŸͺExploit cross-site request forgery (CSRF) - Lab
      • πŸͺExploit a misconfigured CORS - Lab
      • πŸͺSame Origin Policy (SOP) - Lab
  • πŸ“WRITE-UP CTF
    • CTF Competitions
      • πŸ”°[WolvCTF 2023] Writeup Web
      • πŸ”°[Mβ˜†CTF Training 2023] Writeup Web
      • πŸ”°[HackTM CTF 2023] Writeup Web
      • πŸ”°[Incognito 4.0 2023] Writeup Web
      • πŸ”°[LA CTF 2023] Re-writeup Web
      • πŸ”°[Dice CTF 2023] Writeup Web
      • πŸ”°[ByteBandits CTF 2023] Writeup Web
      • πŸ”°[Knight CTF 2023] Writeup Web
      • πŸ”°[Sekai CTF 2022] Writeup Web
      • πŸ”°[WRECK CTF 2022] Writeup Web
      • πŸ”°[Maple CTF 2022] Writeup Web
    • CTF WarGame
      • ✏️[Root me] Writeup Sever Side
      • ✏️Websec.fr
      • ✏️[Root me] Writeup XSS Challenge
    • [tsug0d]-MAWC
      • πŸ’‰TSULOTT
      • πŸ’‰IQTEST
      • 🧬TooManyCrypto
      • 🧬NumberMakeup
    • Pwnable.vn
Powered by GitBook
On this page
  • Authentication lΓ  gΓ¬
  • Authentication khΓ‘c gΓ¬ so vα»›i Authorization
  • Lα»— hα»•ng Authentication phΓ‘t sinh nhΖ° thαΊΏ nΓ o
  • HαΊ­u quαΊ£ cα»§a lα»— hα»•ng Authentication lΓ  gΓ¬
  • CΓ‘c lα»— hα»•ng trong cΖ‘ chαΊΏ xΓ‘c thα»±c( Authentication mechanism)
  • Lα»— hα»•ng trong login dα»±a vΓ o password
  • Flawed brute-force protection
  • Account locking
  • User rate limiting(Limit user)
  • HTTP basic authentication
  • Lα»— hα»•ng trong xΓ‘c thα»±c Δ‘a yαΊΏu tα»‘(multi-factor)
  • Token xΓ‘c thα»±c 2 yαΊΏu tα»‘
  • Bypass xΓ‘c thα»±c hai yαΊΏu tα»‘
  • Flawed two-factor verification logic
  • Brute-forcing mΓ£ xΓ‘c thα»±c 2FA
  • CΓ‘c lα»— hα»•ng trong cΓ‘c cΖ‘ chαΊΏ xΓ‘c thα»±c khΓ‘c
  • Keeping users logged in
  • Resetting user passwords
  • CΓ‘c lα»— hα»•ng trong cΖ‘ chαΊΏ xΓ‘c thα»±c cα»§a bΓͺn thα»© ba
  • NgΔƒn chαΊ·n cΓ‘c cuα»™c tαΊ₯n cΓ΄ng vΓ o cΖ‘ chαΊΏ xΓ‘c thα»±c
  • CαΊ£m Ζ‘n cΓ‘c bαΊ‘n Δ‘Γ£ đọc bΓ i viαΊΏt cα»§a mΓ¬nh. BΓ i viαΊΏt nΓ y mΓ¬nh vα»«a học vα»«a viαΊΏt ra tα»« PortSwigger nΓͺn cΓ³ gΓ¬ sai sΓ³t thΓ¬ mong mn bỏ qua.
  1. WEB SECURITY
  2. Research Vulnerability
  3. Server-side topics

Authentication vulnerabilities

Server Side Vul

PreviousDirectory traversalNextSQL injection

Last updated 2 years ago

Sau khi đọc xong bΓ i nΓ y mọi người cΓ³ thể quay lαΊ‘i đọc bΓ i nΓ y

Về mαΊ·t khΓ‘i niệm, lα»— hα»•ng xΓ‘c thα»±c lΓ  mα»™t sα»‘ vαΊ₯n đề Δ‘Ζ‘n giαΊ£n nhαΊ₯t để hiểu. Tuy nhiΓͺn, chΓΊng cΓ³ thể lΓ  mα»™t trong nhα»―ng yαΊΏu tα»‘ quan trọng nhαΊ₯t do mα»‘i quan hệ rΓ΅ rΓ ng giα»―a xΓ‘c thα»±c vΓ  bαΊ£o mαΊ­t. NgoΓ i việc cΓ³ khαΊ£ nΔƒng cho phΓ©p kαΊ» tαΊ₯n cΓ΄ng truy cαΊ­p trα»±c tiαΊΏp vΓ o dα»― liệu vΓ  chα»©c nΔƒng nhαΊ‘y cαΊ£m, chΓΊng cΕ©ng để lα»™ bề mαΊ·t tαΊ₯n cΓ΄ng bα»• sung để khai thΓ‘c thΓͺm. VΓ¬ lΓ½ do nΓ y, học cΓ‘ch xΓ‘c Δ‘α»‹nh vΓ  khai thΓ‘c cΓ‘c lα»— hα»•ng xΓ‘c thα»±c, bao gα»“m cαΊ£ cΓ‘ch vượt qua cΓ‘c biện phΓ‘p bαΊ£o vệ thΓ΄ng thường, lΓ  mα»™t kα»Ή nΔƒng cΖ‘ bαΊ£n.

Authentication là gì

Note: token: mΓ£ thΓ΄ng bΓ‘o

Authentication lΓ  quΓ‘ trΓ¬nh xΓ‘c thα»±c danh tΓ­nh cα»§a người dΓΉng hoαΊ·c khΓ‘c hΓ ng nhαΊ₯t Δ‘α»‹nh.

Authenticatipn cΓ³ thể dα»±a vΓ o cΓ‘c nhΓ³m yαΊΏu tα»‘(factors) bao gα»“m:

  • Somthing you know: nhΖ° password hoαΊ·c cΓ’u trαΊ£ lời cho cΓ’u hỏi bαΊ£o mαΊ­t. Đôi khi chΓΊng được gọi lΓ  yαΊΏu tα»‘ kiαΊΏn thα»©c.

  • Something you have: NhΖ° sα»‘ Δ‘iện hoαΊ·c hoαΊ·c security token. Đôi khi chΓΊng được gọi lΓ  yαΊΏu tα»‘ chiαΊΏm hα»―u

  • Somthing you are or do: VΓ­ dα»₯ nhΖ° sinh trαΊ―c học(biometrics) cα»§a bαΊ‘n nhΖ° vΓ’n tay... hoαΊ·c yαΊΏu tα»‘ hΓ nh vi. Đôi khi nΓ³ được gọi lΓ  yαΊΏu tα»‘ vα»‘n cΓ³.

Authentication khÑc gì so với Authorization

Chỉ cαΊ§n nhΓ¬n vΓ o nghΔ©a Δ‘en cα»§a nΓ³ thΓ¬ mα»™t bΓͺn lΓ  xΓ‘c thα»±c, mα»™t bΓͺn lΓ  α»§y quyền.

vΓ  Authorization lΓ  hai quy trΓ¬nh bαΊ£o mαΊ­t thΓ΄ng tin quan trọng mΓ  admin sα»­ dα»₯ng để bαΊ£o vệ hệ thα»‘ng thΓ΄ng .

Authentication lΓ  quΓ‘ trΓ¬nh xΓ‘c minh danh tΓ­nh cα»§a người dΓΉng hoαΊ·c dα»‹ch vα»₯ dα»±a trΓͺn thΓ΄ng tin nΓ y thΓ¬ hệ thα»‘ng sαΊ½ cung cαΊ₯p cho người dΓΉng quyền truy cαΊ­p thΓ­ch hợp.

Authorization lΓ  quΓ‘ trΓ¬nh bαΊ£o mαΊ­t xΓ‘c Δ‘α»‹nh mα»©c Δ‘α»™ truy cαΊ­p cα»§a người dΓΉng hoαΊ·c dα»‹ch vα»₯.

LiΓͺn quan Δ‘αΊΏn Authentication vs Authorization, cΓ²n mα»™t yαΊΏu tα»‘ khΓ‘c cΕ©ng khΓ΄ng kΓ©m phαΊ§n quan trọng cαΊ§n lΖ°u Γ½ lΓ  Session Management. ĐÒy cΓ³ thể xem lΓ  chαΊ₯t keo liΓͺn kαΊΏt phαΊ§n Authentication vα»›i Authorization/Access Control để bαΊ£o Δ‘αΊ£m duy trΓ¬ thΓ΄ng tin Δ‘Γ£ xΓ‘c thα»±c cho nhα»―ng phiΓͺn hoαΊ‘t Δ‘α»™ng tiαΊΏp theo Δ‘ΓΊng quyền hαΊ‘n vΓ  nghΔ©a vα»₯.

Lα»— hα»•ng Authentication phΓ‘t sinh nhΖ° thαΊΏ nΓ o

NΓ³i chung, hαΊ§u hαΊΏt cΓ‘c lα»— hα»•ng trong cΖ‘ chαΊΏ xΓ‘c thα»±c phΓ‘t sinh theo mα»™t trong hai cΓ‘ch:

  • CΓ‘c cΖ‘ chαΊΏ xΓ‘c thα»±c yαΊΏu vΓ¬ chΓΊng khΓ΄ng bαΊ£o vệ được Δ‘αΊ§y Δ‘α»§ trΖ°α»›c cΓ‘c cuα»™c tαΊ₯n cΓ΄ng brute-force.

  • CΓ‘c lα»— hα»•ng logic hoαΊ·c mΓ£ hΓ³a kΓ©m trong quΓ‘ trΓ¬nh thα»±c hiện cho phΓ©p kαΊ» tαΊ₯n cΓ΄ng bỏ qua hoΓ n toΓ n cΓ‘c cΖ‘ chαΊΏ xΓ‘c thα»±c. Điều nΓ y Δ‘Γ΄i khi được gọi lΓ  "xΓ‘c thα»±c bα»‹ hỏng".

Hậu quả của lỗ hổng Authentication là gì

TΓ‘c Δ‘α»™ng cα»§a cΓ‘c lα»— hα»•ng xΓ‘c thα»±c cΓ³ thể rαΊ₯t nghiΓͺm trọng. Mα»™t khi kαΊ» tαΊ₯n cΓ΄ng Δ‘Γ£ bỏ qua xΓ‘c thα»±c hoαΊ·c Δ‘Γ£ cΖ°α»‘ng Γ©p xΓ’m nhαΊ­p vΓ o tΓ i khoαΊ£n cα»§a người dΓΉng khΓ‘c, chΓΊng sαΊ½ cΓ³ quyền truy cαΊ­p vΓ o tαΊ₯t cαΊ£ dα»― liệu vΓ  chα»©c nΔƒng mΓ  tΓ i khoαΊ£n bα»‹ xΓ’m phαΊ‘m cΓ³. NαΊΏu họ cΓ³ thể xΓ’m phαΊ‘m tΓ i khoαΊ£n cΓ³ Δ‘αΊ·c quyền cao, chαΊ³ng hαΊ‘n nhΖ° quαΊ£n trα»‹ viΓͺn hệ thα»‘ng, họ cΓ³ thể cΓ³ toΓ n quyền kiểm soΓ‘t toΓ n bα»™ α»©ng dα»₯ng vΓ  cΓ³ khαΊ£ nΔƒng giΓ nh quyền truy cαΊ­p vΓ o cΖ‘ sở hαΊ‘ tαΊ§ng nα»™i bα»™.

Ngay cαΊ£ việc xΓ’m phαΊ‘m tΓ i khoαΊ£n cΓ³ Δ‘αΊ·c quyền thαΊ₯p vαΊ«n cΓ³ thể cαΊ₯p cho kαΊ» tαΊ₯n cΓ΄ng quyền truy cαΊ­p vΓ o dα»― liệu mΓ  chΓΊng khΓ΄ng nΓͺn cΓ³, chαΊ³ng hαΊ‘n nhΖ° thΓ΄ng tin kinh doanh nhαΊ‘y cαΊ£m về mαΊ·t thΖ°Ζ‘ng mαΊ‘i. Ngay cαΊ£ khi tΓ i khoαΊ£n khΓ΄ng cΓ³ quyền truy cαΊ­p vΓ o bαΊ₯t kα»³ dα»― liệu nhαΊ‘y cαΊ£m nΓ o, nΓ³ vαΊ«n cΓ³ thể cho phΓ©p kαΊ» tαΊ₯n cΓ΄ng truy cαΊ­p vΓ o cΓ‘c trang bα»• sung, tαΊ‘o cΖ‘ sở tαΊ₯n cΓ΄ng sΓ’u hΖ‘n. ThΓ΄ng thường, cΓ‘c cuα»™c tαΊ₯n cΓ΄ng cΓ³ mα»©c Δ‘α»™ nghiΓͺm trọng cao nhαΊ₯t Δ‘α»‹nh sαΊ½ khΓ΄ng thể xαΊ£y ra tα»« cΓ‘c trang cΓ³ thể truy cαΊ­p cΓ΄ng khai, nhΖ°ng chΓΊng cΓ³ thể xαΊ£y ra tα»« mα»™t trang nα»™i bα»™.

CΓ‘c lα»— hα»•ng trong cΖ‘ chαΊΏ xΓ‘c thα»±c( Authentication mechanism)

Mα»™t lα»— hα»•ng xΓ‘c thα»±c hệ thα»‘ng cα»§a website luΓ΄n luΓ΄n gα»“m cΓ³ mα»™t vΓ i cΖ‘ chαΊΏ rΓ΅ rΓ ng nΖ‘i mΓ  lα»— hα»•ng cΓ³ thể xuαΊ₯t hiện. Mα»™t vΓ i lα»— hα»•ng cΓ³ thể Γ‘p dα»₯ng rα»™ng rΓ£i trΓͺn tαΊ₯t cαΊ£ mọi bα»‘i cαΊ£nh trong khi nhα»―ng lα»— hα»•ng khΓ‘c cα»₯ thể hΖ‘n Δ‘α»‘i vα»›i chα»©c nΔƒng được cung cαΊ₯p

Lα»— hα»•ng trong login dα»±a vΓ o password

Trong phαΊ§n nΓ y, chΓΊng ta sαΊ½ xem xΓ©t kα»Ή hΖ‘n mα»™t sα»‘ lα»— hα»•ng phα»• biαΊΏn nhαΊ₯t xαΊ£y ra trong cΖ‘ chαΊΏ Δ‘Δƒng nhαΊ­p dα»±a trΓͺn mαΊ­t khαΊ©u. ChΓΊng tΓ΄i cΕ©ng sαΊ½ đề xuαΊ₯t nhα»―ng cΓ‘ch mΓ  chΓΊng cΓ³ thể được khai thΓ‘c. ThαΊ­m chΓ­ cΓ²n cΓ³ mα»™t sα»‘ phΓ²ng thΓ­ nghiệm tΖ°Ζ‘ng tΓ‘c để bαΊ‘n cΓ³ thể tα»± mΓ¬nh thα»­ vΓ  khai thΓ‘c cΓ‘c lα»— hα»•ng nΓ y.Đối vα»›i cΓ‘c trang web Γ‘p dα»₯ng quy trΓ¬nh Δ‘Δƒng nhαΊ­p dα»±a trΓͺn mαΊ­t khαΊ©u, người dΓΉng cΓ³ thể tα»± Δ‘Δƒng kΓ½ tΓ i khoαΊ£n hoαΊ·c họ được quαΊ£n trα»‹ viΓͺn chỉ Δ‘α»‹nh tΓ i khoαΊ£n. TΓ i khoαΊ£n nΓ y được liΓͺn kαΊΏt vα»›i mα»™t tΓͺn người dΓΉng duy nhαΊ₯t vΓ  mα»™t mαΊ­t khαΊ©u bΓ­ mαΊ­t mΓ  người dΓΉng nhαΊ­p vΓ o biểu mαΊ«u Δ‘Δƒng nhαΊ­p để xΓ‘c thα»±c chΓ­nh họ.Trong trường hợp nΓ y, việc họ biαΊΏt mαΊ­t khαΊ©u bΓ­ mαΊ­t được coi lΓ  bαΊ±ng chα»©ng Δ‘αΊ§y Δ‘α»§ về danh tΓ­nh cα»§a người dΓΉng. Do Δ‘Γ³, tΓ­nh bαΊ£o mαΊ­t cα»§a trang web sαΊ½ bα»‹ xΓ’m phαΊ‘m nαΊΏu kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể lαΊ₯y hoαΊ·c Δ‘oΓ‘n thΓ΄ng tin Δ‘Δƒng nhαΊ­p cα»§a người dΓΉng khΓ‘c.Điều nΓ y cΓ³ thể Δ‘αΊ‘t được theo nhiều cΓ‘ch khΓ‘c nhau, nhΖ° chΓΊng ta sαΊ½ khΓ‘m phΓ‘ bΓͺn dΖ°α»›i.

TαΊ₯n cΓ΄ng Brute-force

Mα»™t cuα»™c tαΊ₯n cΓ΄ng Brute-Force lΓ  khi kαΊ» tαΊ₯n cΓ΄ng sα»­ dα»₯ng mα»™t hệ thα»‘ng thα»­ vΓ  lα»—i để Δ‘oΓ‘n thΓ΄ng tin hợp lệ cα»§a người dΓΉng. CΓ‘c cuα»™c tαΊ₯n cΓ΄ng nΓ y thường được tα»± Δ‘α»™ng hΓ³a sα»­ dα»₯ng mα»™t wordlists chα»©a username vΓ  password. Tα»± Δ‘α»™ng quΓ‘ trΓ¬nh nΓ y, Δ‘αΊ·c biệt sα»­ dα»₯ng tool, nΓ³ cho phΓ©p kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể thα»±c hiện nhiều lαΊ§n Δ‘Δƒng nhαΊ­p ở mα»™t tα»‘c Δ‘α»™ nhanh hΖ‘n

Brut-forcing khΓ΄ng phαΊ£i khi nΓ o cΕ©ng chỉ radom Δ‘oΓ‘n username hay password. MΓ  cΓ²n sα»­ dα»₯ng logic cΖ‘ bαΊ£n hoαΊ·c kiαΊΏn thα»©c cΓ΄ng khai. nhα»―ng kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể tinh chỉnh cΓ‘c cuα»™c tαΊ₯n cΓ΄ng bαΊ‘o lα»±c để Δ‘Ζ°a ra cΓ‘c phỏng Δ‘oΓ‘n cΓ³ học thα»©c hΖ‘n nhiều. Điều nΓ y lΓ m tΔƒng Δ‘Γ‘ng kể hiệu quαΊ£ cα»§a cΓ‘c cuα»™c tαΊ₯n cΓ΄ng nhΖ° vαΊ­y. CΓ‘c trang web dα»±a vΓ o Δ‘Δƒng nhαΊ­p dα»±a trΓͺn mαΊ­t khαΊ©u lΓ m phΖ°Ζ‘ng phΓ‘p xΓ‘c thα»±c người dΓΉng duy nhαΊ₯t cα»§a họ cΓ³ thể rαΊ₯t dα»… bα»‹ tαΊ₯n cΓ΄ng nαΊΏu họ khΓ΄ng thα»±c hiện Δ‘αΊ§y Δ‘α»§ biện phΓ‘p bαΊ£o vệ bαΊ‘o lα»±c.

Brute-forcing Usernames

Usernames Δ‘αΊ·c biệt dα»… để Δ‘oΓ‘n nαΊΏu chΓΊng phΓΉ hợp vα»›i nhα»―ng mαΊ«u nhαΊ­n biαΊΏt nhΖ° tΓ i khoαΊ£n email, tΓͺn youtube, tΓͺn facebook....

Brute-forcing passwords

Passwords cΓ³ thể bα»‹ brute-force tΖ°Ζ‘ng tα»± nhΖ°ng Δ‘α»™ khΓ³ sαΊ½ dα»±a trΓͺn Δ‘α»™ dΓ i cα»§a password vΓ  cΓ‘c kΓ½ tα»± cα»§a pass.

Nhiều trang web Γ‘p dα»₯ng mα»™t sα»‘ hΓ¬nh thα»©c chΓ­nh sΓ‘ch mαΊ­t khαΊ©u, buα»™c người dΓΉng phαΊ£i tαΊ‘o mαΊ­t khαΊ©u cΓ³ Δ‘α»™ phα»©c tαΊ‘p cao, Γ­t nhαΊ₯t về mαΊ·t lΓ½ thuyαΊΏt, khΓ³ bα»‹ bαΊ» khΓ³a chỉ bαΊ±ng cΓ‘ch sα»­ dα»₯ng brute-force. Điều nΓ y thường liΓͺn quan Δ‘αΊΏn việc thα»±c thi mαΊ­t khαΊ©u vα»›i:

  • Sα»‘ lượng kΓ½ tα»± tα»‘i thiểu

  • Hα»—n hợp chα»― thường vΓ  chα»― hoa

  • Ít nhαΊ₯t mα»™t kΓ½ tα»± Δ‘αΊ·c biệt

TrΓ­ch xuαΊ₯t Username

TrΓ­ch xuαΊ₯t username lΓ  khi kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể quan sΓ‘t nhα»―ng thay Δ‘α»•i trong hΓ nh vi cα»§a website để xΓ‘c Δ‘α»‹nh tΓͺn người dΓΉng cΓ³ hợp lệ hay khΓ΄ng.

TrΓ­ch xuαΊ₯t username thường xαΊ£y ra trΓͺn trang Δ‘Δƒng nhαΊ­p, vΓ­ dα»₯: khi bαΊ‘n nhαΊ­p tΓͺn người dΓΉng hợp lệ nhΖ°ng mαΊ­t khαΊ©u khΓ΄ng chΓ­nh xΓ‘c hoαΊ·c trΓͺn cΓ‘c biểu mαΊ«u Δ‘Δƒng kΓ½ khi bαΊ‘n nhαΊ­p tΓͺn người dΓΉng Δ‘Γ£ được sα»­ dα»₯ng. Điều nΓ y lΓ m giαΊ£m Δ‘Γ‘ng kể thời gian vΓ  nα»— lα»±c cαΊ§n thiαΊΏt để bαΊ―t buα»™c Δ‘Δƒng nhαΊ­p vΓ¬ kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể nhanh chΓ³ng tαΊ‘o ra mα»™t danh sΓ‘ch rΓΊt gọn cΓ‘c tΓͺn người dΓΉng hợp lệ.

Trong khi cα»‘ gαΊ―ng cΖ°α»‘ng bα»©c mα»™t trang Δ‘Δƒng nhαΊ­p, bαΊ‘n nΓͺn Δ‘αΊ·c biệt chΓΊ Γ½ Δ‘αΊΏn bαΊ₯t kα»³ sα»± khΓ‘c biệt nΓ o trong:

  • Status codes : Trong mα»™t cuα»™c tαΊ₯n cΓ΄ng brute-force, mΓ£ trαΊ‘ng thΓ‘i HTTP trαΊ£ về cΓ³ thể giα»‘ng nhau Δ‘α»‘i vα»›i phαΊ§n lα»›n cΓ‘c phỏng Δ‘oΓ‘n vΓ¬ hαΊ§u hαΊΏt chΓΊng đều sai. NαΊΏu mα»™t phỏng Δ‘oΓ‘n trαΊ£ về mα»™t mΓ£ trαΊ‘ng thΓ‘i khΓ‘c, thΓ¬ Δ‘Γ’y lΓ  mα»™t dαΊ₯u hiệu mαΊ‘nh mαΊ½ cho thαΊ₯y tΓͺn người dΓΉng lΓ  chΓ­nh xΓ‘c. CΓ‘ch tα»‘t nhαΊ₯t lΓ  cΓ‘c trang web luΓ΄n trαΊ£ về cΓΉng mα»™t mΓ£ trαΊ‘ng thΓ‘i bαΊ₯t kể kαΊΏt quαΊ£ nhΖ° thαΊΏ nΓ o, nhΖ°ng thα»±c tαΊΏ nΓ y khΓ΄ng phαΊ£i lΓΊc nΓ o cΕ©ng được tuΓ’n thα»§.

  • Error mesages: Đôi khi thΓ΄ng bΓ‘o lα»—i trαΊ£ về khΓ‘c nhau tΓΉy thuα»™c vΓ o việc cαΊ£ tΓͺn người dΓΉng vΓ  mαΊ­t khαΊ©u đều khΓ΄ng chΓ­nh xΓ‘c hay chỉ cΓ³ mαΊ­t khαΊ©u khΓ΄ng chΓ­nh xΓ‘c. CΓ‘ch tα»‘t nhαΊ₯t lΓ  cΓ‘c trang web nΓͺn sα»­ dα»₯ng cΓ‘c thΓ΄ng bΓ‘o giα»‘ng nhau, chung chung trong cαΊ£ hai trường hợp, nhΖ°ng Δ‘Γ΄i khi cΓ‘c lα»—i Δ‘Γ‘nh mΓ‘y nhỏ cΕ©ng xuαΊ₯t hiện. Chỉ cαΊ§n mα»™t kΓ½ tα»± khΓ΄ng Δ‘ΓΊng vα»‹ trΓ­ sαΊ½ khiαΊΏn hai thΓ΄ng bΓ‘o trở nΓͺn khΓ‘c biệt, ngay cαΊ£ trong trường hợp kΓ½ tα»± khΓ΄ng hiển thα»‹ trΓͺn trang được hiển thα»‹.

  • Respones times : NαΊΏu hαΊ§u hαΊΏt cΓ‘c yΓͺu cαΊ§u được xα»­ lΓ½ vα»›i thời gian phαΊ£n hα»“i tΖ°Ζ‘ng tα»±, bαΊ₯t kα»³ yΓͺu cαΊ§u nΓ o khΓ‘c vα»›i Δ‘iều nΓ y cho thαΊ₯y cΓ³ Δ‘iều gΓ¬ Δ‘Γ³ khΓ‘c Δ‘ang xαΊ£y ra ở hαΊ­u trường. ĐÒy lΓ  mα»™t dαΊ₯u hiệu khΓ‘c cho thαΊ₯y tΓͺn người dΓΉng được Δ‘oΓ‘n cΓ³ thể Δ‘ΓΊng. VΓ­ dα»₯: mα»™t trang web chỉ cΓ³ thể kiểm tra xem mαΊ­t khαΊ©u cΓ³ Δ‘ΓΊng hay khΓ΄ng nαΊΏu tΓͺn người dΓΉng hợp lệ. BΖ°α»›c bα»• sung nΓ y cΓ³ thể lΓ m tΔƒng mα»™t chΓΊt thời gian phαΊ£n hα»“i. Điều nΓ y cΓ³ thể lΓ  tinh tαΊΏ, nhΖ°ng kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể lΓ m cho sα»± chαΊ­m trα»… nΓ y rΓ΅ rΓ ng hΖ‘n bαΊ±ng cΓ‘ch nhαΊ­p mα»™t mαΊ­t khαΊ©u quΓ‘ dΓ i mΓ  trang web cαΊ§n nhiều thời gian hΖ‘n để xα»­ lΓ½.

Flawed brute-force protection

CΓ³ khαΊ£ nΔƒng cao lΓ  brute-force sαΊ½ liΓͺn quan Δ‘αΊΏn nhiều lαΊ§n Δ‘oΓ‘n khΓ΄ng thΓ nh cΓ΄ng trΖ°α»›c khi kαΊ» tαΊ₯n cΓ΄ng xΓ’m nhαΊ­p tΓ i khoαΊ£n thΓ nh cΓ΄ng. Về mαΊ·t logic, bαΊ£o vệ brute-force xoay quanh việc cα»‘ gαΊ―ng lΓ m cho nΓ³ trở nΓͺn khΓ³ khΔƒn nhαΊ₯t cΓ³ thể để tα»± Δ‘α»™ng hΓ³a quΓ‘ trΓ¬nh vΓ  lΓ m chαΊ­m tα»‘c Δ‘α»™ mΓ  kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể cα»‘ gαΊ―ng Δ‘Δƒng nhαΊ­p. Hai cΓ‘ch phα»• biαΊΏn nhαΊ₯t để ngΔƒn chαΊ·n cΓ‘c cuα»™c tαΊ₯n cΓ΄ng brute-force lΓ :

  • KhΓ³a tΓ i khoαΊ£n mΓ  người dΓΉng tα»« xa Δ‘ang cα»‘ gαΊ―ng truy cαΊ­p nαΊΏu họ thα»±c hiện quΓ‘ nhiều lαΊ§n Δ‘Δƒng nhαΊ­p khΓ΄ng thΓ nh cΓ΄ng

  • ChαΊ·n Δ‘α»‹a chỉ IP cα»§a người dΓΉng tα»« xa nαΊΏu họ thα»±c hiện quΓ‘ nhiều lαΊ§n Δ‘Δƒng nhαΊ­p liΓͺn tiαΊΏp

CαΊ£ hai cΓ‘ch tiαΊΏp cαΊ­n đều cung cαΊ₯p cΓ‘c mα»©c Δ‘α»™ bαΊ£o vệ khΓ‘c nhau, nhΖ°ng khΓ΄ng phαΊ£i lΓ  bαΊ₯t khαΊ£ xΓ’m phαΊ‘m, Δ‘αΊ·c biệt nαΊΏu được thα»±c hiện bαΊ±ng cΓ‘ch sα»­ dα»₯ng logic sai sΓ³t.

VΓ­ dα»₯: Δ‘Γ΄i khi bαΊ‘n cΓ³ thể thαΊ₯y rαΊ±ng IP cα»§a mΓ¬nh bα»‹ chαΊ·n nαΊΏu bαΊ‘n khΓ΄ng Δ‘Δƒng nhαΊ­p quΓ‘ nhiều lαΊ§n. Trong mα»™t sα»‘ triển khai, bα»™ Δ‘αΊΏm sα»‘ lαΊ§n thα»­ khΓ΄ng thΓ nh cΓ΄ng sαΊ½ Δ‘αΊ·t lαΊ‘i nαΊΏu chα»§ sở hα»―u IP Δ‘Δƒng nhαΊ­p thΓ nh cΓ΄ng. Điều nΓ y cΓ³ nghΔ©a lΓ  kαΊ» tαΊ₯n cΓ΄ng sαΊ½ chỉ cαΊ§n Δ‘Δƒng nhαΊ­p vΓ o tΓ i khoαΊ£n cα»§a họ sau vΓ i lαΊ§n cα»‘ gαΊ―ng để ngΔƒn khΓ΄ng cho Δ‘αΊ‘t Δ‘αΊΏn giα»›i hαΊ‘n nΓ y.

Trong trường hợp nΓ y, chỉ cαΊ§n bao gα»“m thΓ΄ng tin Δ‘Δƒng nhαΊ­p cα»§a riΓͺng bαΊ‘n vΓ o cΓ‘c khoαΊ£ng thời gian đều Δ‘αΊ·n trong suα»‘t danh sΓ‘ch tα»« lΓ  Δ‘α»§ để khiαΊΏn biện phΓ‘p bαΊ£o vệ nΓ y hαΊ§u nhΖ° vΓ΄ dα»₯ng.

Note: Ở Δ‘Γ’y cΓ³ nghΔ©a nαΊΏu khi bαΊ‘n Δ‘Δƒng nhαΊ­p tΓ i khoαΊ£n nαΊ‘n nhΓ’n sai thΓ¬ bαΊ‘n phαΊ£i Δ‘Δƒng nhαΊ­p tαΊ£i khoαΊ£n cα»§a bαΊ‘n thΓ¬ lΓΊc Δ‘Γ³ cΖ‘ chαΊΏ bαΊ£o vệ khỏi tαΊ₯n cΓ΄ng brute-force bởi khΓ³a tΓ i khoαΊ£n nαΊ‘n nhΓ’n hoαΊ·c chαΊ·n IP sαΊ½ bα»‹ broken. VΓ  nΓͺn nhα»› rαΊ±ng nαΊΏu dΓΉng burp Suite thΓ¬ chỉnh Resource Pool lΓ  request tα»‘i Δ‘a lΓ  1

Account locking

Mα»™t cΓ‘ch mΓ  cΓ‘c trang web cα»‘ gαΊ―ng ngΔƒn chαΊ·n hΓ nh vi brute-force lΓ  khΓ³a tΓ i khoαΊ£n nαΊΏu phΓ‘t hiện ra mα»™t sα»‘ hΓ nh Δ‘α»™ng Δ‘Γ‘ng ngờ nhαΊ₯t Δ‘α»‹nh, thường lΓ  mα»™t sα»‘ lαΊ§n Δ‘Δƒng nhαΊ­p khΓ΄ng thΓ nh cΓ΄ng. CΕ©ng giα»‘ng nhΖ° cΓ‘c lα»—i Δ‘Δƒng nhαΊ­p thΓ΄ng thường, phαΊ£n hα»“i tα»« mΓ‘y chα»§ cho biαΊΏt tΓ i khoαΊ£n bα»‹ khΓ³a cΕ©ng cΓ³ thể giΓΊp kαΊ» tαΊ₯n cΓ΄ng liệt kΓͺ tΓͺn người dΓΉng.

Ở Δ‘Γ’y chΓΊng ta sαΊ½ phαΊ£i tΓ¬m thΓ΄ng tin người dΓΉng chΓ­nh xΓ‘c trong wordlist bαΊ±ng cΓ‘ch xem sα»± phαΊ£n hα»“i cα»§a tΓ i khoαΊ£n khΓ‘c vα»›i cΓ‘c tΓ i khoαΊ£n cΓ²n lαΊ‘i, trong burp suite thΓ¬ trong payload cα»§a pass lΓ  test$$ ....................................sau Δ‘Γ³ check pass cΕ©ng xem sα»± phαΊ£n hα»“i cα»§a web.

User rate limiting(Limit user)

Mα»™t cΓ‘ch khΓ‘c mΓ  cΓ‘c trang web cα»‘ gαΊ―ng ngΔƒn chαΊ·n cΓ‘c cuα»™c tαΊ₯n cΓ΄ng brute-force lΓ  thΓ΄ng qua giα»›i hαΊ‘n tα»· lệ người dΓΉng. Trong trường hợp nΓ y, việc thα»±c hiện quΓ‘ nhiều yΓͺu cαΊ§u Δ‘Δƒng nhαΊ­p trong mα»™t khoαΊ£ng thời gian ngαΊ―n khiαΊΏn Δ‘α»‹a chỉ IP cα»§a bαΊ‘n bα»‹ chαΊ·n. ThΓ΄ng thường, chỉ cΓ³ thể bỏ chαΊ·n IP bαΊ±ng mα»™t trong cΓ‘c cΓ‘ch sau:

  • Tα»± Δ‘α»™ng sau mα»™t khoαΊ£ng thời gian nhαΊ₯t Δ‘α»‹nh Δ‘Γ£ trΓ΄i qua

  • Do quαΊ£n trα»‹ viΓͺn thα»±c hiện theo cΓ‘ch thα»§ cΓ΄ng

  • Do người dΓΉng thα»§ cΓ΄ng sau khi hoΓ n thΓ nh CAPTCHA thΓ nh cΓ΄ng

Giα»›i hαΊ‘n tα»· lệ người dΓΉng Δ‘Γ΄i khi được Ζ°u tiΓͺn để khΓ³a tΓ i khoαΊ£n do Γ­t bα»‹ liệt kΓͺ tΓͺn người dΓΉng vΓ  cΓ‘c cuα»™c tαΊ₯n cΓ΄ng tα»« chα»‘i dα»‹ch vα»₯. Tuy nhiΓͺn, nΓ³ vαΊ«n khΓ΄ng hoΓ n toΓ n an toΓ n. NhΖ° chΓΊng ta Δ‘Γ£ thαΊ₯y mα»™t vΓ­ dα»₯ về mα»™t phΓ²ng thΓ­ nghiệm trΖ°α»›c Δ‘Γ³, cΓ³ mα»™t sα»‘ cΓ‘ch kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể thao tΓΊng IP rΓ΅ rΓ ng cα»§a chΓΊng để vượt qua khα»‘i.

VΓ¬ giα»›i hαΊ‘n dα»±a trΓͺn tα»· lệ yΓͺu cαΊ§u HTTP được gα»­i tα»« Δ‘α»‹a chỉ IP cα»§a người dΓΉng, Δ‘Γ΄i khi cΕ©ng cΓ³ thể vượt qua lα»›p bαΊ£o vệ nΓ y nαΊΏu bαΊ‘n cΓ³ thể tΓ¬m ra cΓ‘ch Δ‘oΓ‘n nhiều mαΊ­t khαΊ©u vα»›i mα»™t yΓͺu cαΊ§u duy nhαΊ₯t.

Thường nαΊΏu web gα»­i thΓ΄ng tin Δ‘Δƒng nhαΊ­p theo dαΊ‘ng JSON thΓ¬ thΓ¬ khi Δ‘Γ³ chΓΊng ta nαΊΏu biαΊΏt username thΓ¬ chΓ¨n mα»™t lΓΊc nhiều password vΓ o Δ‘Γ³, khi web trαΊ£ về status 302 thΓ¬ lαΊ₯y cookie cα»§a nΓ³ thay cho cookie trang cα»§a mΓ¬nh rα»“i reload lΓ  oke.

HTTP basic authentication

MαΊ·c dΓΉ khΓ‘ cΕ©, nhΖ°ng tΓ­nh Δ‘Ζ‘n giαΊ£n vΓ  dα»… triển khai tΖ°Ζ‘ng Δ‘α»‘i cα»§a nΓ³ cΓ³ nghΔ©a lΓ  Δ‘Γ΄i khi bαΊ‘n cΓ³ thể thαΊ₯y xΓ‘c thα»±c cΖ‘ bαΊ£n HTTP được sα»­ dα»₯ng. Trong xΓ‘c thα»±c cΖ‘ bαΊ£n HTTP, mΓ‘y khΓ‘ch nhαΊ­n được token authentication tα»« mΓ‘y chα»§, token nΓ y được xΓ’y dα»±ng bαΊ±ng cΓ‘ch ghΓ©p tΓͺn người dΓΉng vΓ  mαΊ­t khαΊ©u vΓ  mΓ£ hΓ³a nΓ³ trong Base64. MΓ£ thΓ΄ng bΓ‘o nΓ y được lΖ°u trα»― vΓ  quαΊ£n lΓ½ bởi trΓ¬nh duyệt, trΓ¬nh duyệt nΓ y sαΊ½ tα»± Δ‘α»™ng thΓͺm nΓ³ vΓ o Authorization tiΓͺu đề cα»§a mọi yΓͺu cαΊ§u tiαΊΏp theo nhΖ° sau:

Authorization: Basic base64(username:password)

VΓ­ dα»₯:

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

VΓ¬ mα»™t sα»‘ lΓ½ do, Δ‘Γ’y thường khΓ΄ng được coi lΓ  mα»™t phΖ°Ζ‘ng phΓ‘p xΓ‘c thα»±c an toΓ n. Thα»© nhαΊ₯t, nΓ³ liΓͺn quan Δ‘αΊΏn việc liΓͺn tα»₯c gα»­i thΓ΄ng tin Δ‘Δƒng nhαΊ­p cα»§a người dΓΉng vα»›i mọi yΓͺu cαΊ§u. Trα»« khi trang web cΕ©ng triển khai HSTS, thΓ΄ng tin Δ‘Δƒng nhαΊ­p cα»§a người dΓΉng cΓ³ thể bα»‹ bαΊ―t trong mα»™t cuα»™c tαΊ₯n cΓ΄ng man-in-the-middle.

NgoΓ i ra, việc triển khai xΓ‘c thα»±c cΖ‘ bαΊ£n HTTP thường khΓ΄ng hα»— trợ bαΊ£o vệ brute-force. VΓ¬ token chỉ bao gα»“m cΓ‘c giΓ‘ trα»‹ tΔ©nh, Δ‘iều nΓ y cΓ³ thể khiαΊΏn nΓ³ dα»… bα»‹ brute-force.

Lα»— hα»•ng trong xΓ‘c thα»±c Δ‘a yαΊΏu tα»‘(multi-factor)

Nhiều trang web chỉ dα»±a vΓ o xΓ‘c thα»±c mα»™t yαΊΏu tα»‘ bαΊ±ng cΓ‘ch sα»­ dα»₯ng mαΊ­t khαΊ©u để xΓ‘c thα»±c người dΓΉng. Tuy nhiΓͺn, mα»™t sα»‘ yΓͺu cαΊ§u người dΓΉng chα»©ng minh danh tΓ­nh cα»§a họ bαΊ±ng cΓ‘ch sα»­ dα»₯ng nhiều yαΊΏu tα»‘ xΓ‘c thα»±c.

CΕ©ng cαΊ§n lΖ°u Γ½ rαΊ±ng lợi Γ­ch Δ‘αΊ§y Δ‘α»§ cα»§a xΓ‘c thα»±c Δ‘a yαΊΏu tα»‘ chỉ Δ‘αΊ‘t được bαΊ±ng cΓ‘ch xΓ‘c minh nhiều yαΊΏu tα»‘ khΓ‘c nhau . Việc xΓ‘c minh cΓΉng mα»™t yαΊΏu tα»‘ theo hai cΓ‘ch khΓ‘c nhau khΓ΄ng phαΊ£i lΓ  xΓ‘c thα»±c hai yαΊΏu tα»‘. 2FA dα»±a trΓͺn email lΓ  mα»™t trong nhα»―ng vΓ­ dα»₯ nhΖ° vαΊ­y. MαΊ·c dΓΉ người dΓΉng phαΊ£i cung cαΊ₯p mαΊ­t khαΊ©u vΓ  mΓ£ xΓ‘c minh, việc truy cαΊ­p mΓ£ chỉ dα»±a vΓ o việc họ biαΊΏt thΓ΄ng tin Δ‘Δƒng nhαΊ­p cho tΓ i khoαΊ£n email cα»§a họ. Do Δ‘Γ³, yαΊΏu tα»‘ xΓ‘c thα»±c tri thα»©c chỉ Δ‘Ζ‘n giαΊ£n lΓ  được xΓ‘c minh hai lαΊ§n.

Token xΓ‘c thα»±c 2 yαΊΏu tα»‘

MΓ£ xΓ‘c minh thường được người dΓΉng đọc tα»« mα»™t thiαΊΏt bα»‹ vαΊ­t lΓ½ nΓ o Δ‘Γ³. Nhiều trang web bαΊ£o mαΊ­t cao hiện cung cαΊ₯p cho người dΓΉng mα»™t thiαΊΏt bα»‹ chuyΓͺn dα»₯ng cho mα»₯c Δ‘Γ­ch nΓ y, chαΊ³ng hαΊ‘n nhΖ° mΓ£ thΓ΄ng bΓ‘o RSA hoαΊ·c thiαΊΏt bα»‹ bΓ n phΓ­m mΓ  bαΊ‘n cΓ³ thể sα»­ dα»₯ng để truy cαΊ­p ngΓ’n hΓ ng trα»±c tuyαΊΏn hoαΊ·c mΓ‘y tΓ­nh xΓ‘ch tay lΓ m việc cα»§a mΓ¬nh. NgoΓ i mα»₯c Δ‘Γ­ch được xΓ’y dα»±ng để bαΊ£o mαΊ­t, cΓ‘c thiαΊΏt bα»‹ chuyΓͺn dα»₯ng nΓ y cΓ²n cΓ³ lợi thαΊΏ lΓ  tαΊ‘o mΓ£ xΓ‘c minh trα»±c tiαΊΏp. CΓ‘c trang web cΕ©ng thường sα»­ dα»₯ng mα»™t α»©ng dα»₯ng di Δ‘α»™ng chuyΓͺn dα»₯ng, chαΊ³ng hαΊ‘n nhΖ° Google Authenticator, vΓ¬ lΓ½ do tΖ°Ζ‘ng tα»±.

MαΊ·t khΓ‘c, mα»™t sα»‘ trang web gα»­i mΓ£ xΓ‘c minh Δ‘αΊΏn Δ‘iện thoαΊ‘i di Δ‘α»™ng cα»§a người dΓΉng dΖ°α»›i dαΊ‘ng tin nhαΊ―n vΔƒn bαΊ£n. MαΊ·c dΓΉ về mαΊ·t kα»Ή thuαΊ­t, Δ‘iều nΓ y vαΊ«n Δ‘ang xΓ‘c minh yαΊΏu tα»‘ "something you have", nhΖ°ng nΓ³ vαΊ«n dα»… bα»‹ lαΊ‘m dα»₯ng. Thα»© nhαΊ₯t, mΓ£ Δ‘ang được truyền qua SMS chα»© khΓ΄ng phαΊ£i do chΓ­nh thiαΊΏt bα»‹ tαΊ‘o ra. Điều nΓ y tαΊ‘o ra khαΊ£ nΔƒng mΓ£ bα»‹ chαΊ·n. NgoΓ i ra cΓ²n cΓ³ nguy cΖ‘ trΓ‘o SIM, theo Δ‘Γ³ kαΊ» tαΊ₯n cΓ΄ng lα»«a Δ‘αΊ£o lαΊ₯y được thαΊ» SIM cΓ³ sα»‘ Δ‘iện thoαΊ‘i cα»§a nαΊ‘n nhΓ’n. Sau Δ‘Γ³, kαΊ» tαΊ₯n cΓ΄ng sαΊ½ nhαΊ­n được tαΊ₯t cαΊ£ cΓ‘c tin nhαΊ―n SMS được gα»­i Δ‘αΊΏn nαΊ‘n nhΓ’n, bao gα»“m cαΊ£ tin nhαΊ―n chα»©a mΓ£ xΓ‘c minh cα»§a họ.

Bypass xΓ‘c thα»±c hai yαΊΏu tα»‘

Đôi khi, việc triển khai xΓ‘c thα»±c hai yαΊΏu tα»‘ cΓ²n thiαΊΏu sΓ³t Δ‘αΊΏn mα»©c cΓ³ thể bα»‹ bypass hoΓ n toΓ n. NαΊΏu lαΊ§n Δ‘αΊ§u tiΓͺn người dΓΉng được nhαΊ―c nhαΊ­p mαΊ­t khαΊ©u, sau Δ‘Γ³ được nhαΊ―c nhαΊ­p mΓ£ xΓ‘c minh trΓͺn mα»™t trang riΓͺng biệt, thΓ¬ người dΓΉng thα»±c sα»± ở trαΊ‘ng thΓ‘i "logged in" trΖ°α»›c khi họ nhαΊ­p mΓ£ xΓ‘c minh. Trong trường hợp nΓ y, bαΊ‘n nΓͺn thα»­ nghiệm để xem liệu bαΊ‘n cΓ³ thể trα»±c tiαΊΏp chuyển Δ‘αΊΏn cΓ‘c trang "logged-in only" sau khi hoΓ n thΓ nh bΖ°α»›c xΓ‘c thα»±c Δ‘αΊ§u tiΓͺn hay khΓ΄ng. Đôi khi, bαΊ‘n sαΊ½ thαΊ₯y rαΊ±ng mα»™t trang web khΓ΄ng thα»±c sα»± kiểm tra xem bαΊ‘n Δ‘Γ£ hoΓ n thΓ nh bΖ°α»›c thα»© hai hay chΖ°a trΖ°α»›c khi tαΊ£i trang.

Thường thΓ¬ bαΊ‘n cΓ³ thể chuyển tα»›i trang web Δ‘Γ£ login cα»§a bαΊ‘n luΓ΄n mΓ  khΓ΄ng cαΊ§n xΓ‘c thα»±c(redirected)

Flawed two-factor verification logic

Đôi khi logic sai sΓ³t trong xΓ‘c thα»±c hai yαΊΏu tα»‘ cΓ³ nghΔ©a lΓ  sau khi người dΓΉng Δ‘Γ£ hoΓ n thΓ nh bΖ°α»›c Δ‘Δƒng nhαΊ­p ban Δ‘αΊ§u, trang web khΓ΄ng xΓ‘c minh Δ‘αΊ§y Δ‘α»§ rαΊ±ng chΓ­nh người dΓΉng Δ‘Γ³ Δ‘ang hoΓ n thΓ nh bΖ°α»›c thα»© hai.

VΓ­ dα»₯: người dΓΉng Δ‘Δƒng nhαΊ­p bαΊ±ng thΓ΄ng tin Δ‘Δƒng nhαΊ­p bΓ¬nh thường cα»§a họ trong bΖ°α»›c Δ‘αΊ§u tiΓͺn nhΖ° sau:

POST /login-steps/first HTTP/1.1
Host: vulnerable-website.com
...
username=carlos&password=qwerty

Sau Δ‘Γ³, họ được gΓ‘n mα»™t cookie liΓͺn quan Δ‘αΊΏn tΓ i khoαΊ£n cα»§a họ, trΖ°α»›c khi được chuyển sang bΖ°α»›c thα»© hai cα»§a quΓ‘ trΓ¬nh Δ‘Δƒng nhαΊ­p:

HTTP/1.1 200 OK
Set-Cookie: account=carlos

GET /login-steps/second HTTP/1.1
Cookie: account=carlos

Khi gα»­i mΓ£ xΓ‘c minh, yΓͺu cαΊ§u sα»­ dα»₯ng cookie nΓ y để xΓ‘c Δ‘α»‹nh tΓ i khoαΊ£n mΓ  người dΓΉng Δ‘ang cα»‘ gαΊ―ng truy cαΊ­p:

POST /login-steps/second HTTP/1.1
Host: vulnerable-website.com
Cookie: account=carlos
...
verification-code=123456

Trong trường hợp nΓ y, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể Δ‘Δƒng nhαΊ­p bαΊ±ng thΓ΄ng tin Δ‘Δƒng nhαΊ­p cα»§a chΓ­nh họ nhΖ°ng sau Δ‘Γ³ thay Δ‘α»•i giΓ‘ trα»‹ cα»§a account cookie thΓ nh bαΊ₯t kα»³ tΓͺn người dΓΉng tΓΉy Γ½ nΓ o khi gα»­i mΓ£ xΓ‘c minh.

POST /login-steps/second HTTP/1.1
Host: vulnerable-website.com
Cookie: account=victim-user
...
verification-code=123456

Điều nΓ y cα»±c kα»³ nguy hiểm nαΊΏu sau Δ‘Γ³ kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể cΖ°α»‘ng bα»©c mΓ£ xΓ‘c minh vΓ¬ nΓ³ sαΊ½ cho phΓ©p chΓΊng Δ‘Δƒng nhαΊ­p vΓ o tΓ i khoαΊ£n cα»§a người dΓΉng tΓΉy Γ½ hoΓ n toΓ n dα»±a trΓͺn tΓͺn người dΓΉng cα»§a họ. Họ thαΊ­m chΓ­ sαΊ½ khΓ΄ng bao giờ cαΊ§n biαΊΏt mαΊ­t khαΊ©u cα»§a người dΓΉng.

NαΊΏu kαΊ» tαΊ₯n cΓ΄ng biαΊΏt Δ‘α»‹nh dαΊ‘ng mΓ£ code thΓ¬ mΓ£ code Δ‘Γ³ cΓ³ thể bα»‹ brute-force, trong trường hợp cookie cΓ³ liΓͺn quan tα»›i tΓͺn người dΓΉng....

Brute-forcing mΓ£ xΓ‘c thα»±c 2FA

Vα»›i nhα»―ng mαΊ­t khαΊ©u, websites cαΊ§n thα»±c hiện cΓ‘c bΖ°α»›c để bαΊ£o vệ mΓ£ xΓ‘c thα»±c 2FA trΖ°α»›c brute-force. Điều nΓ y Δ‘αΊ·c biệt quan trọng vΓ¬ mΓ£ thường lΓ  mα»™t sα»‘ cΓ³ 4 hoαΊ·c 6 chα»― sα»‘ Δ‘Ζ‘n giαΊ£n. NαΊΏu khΓ΄ng cΓ³ biện phΓ‘p bαΊ£o vệ brute-force thΓ­ch hợp, việc bαΊ» khΓ³a mΓ£ nhΖ° vαΊ­y lΓ  Δ‘iều tαΊ§m thường.

Mα»™t sα»‘ trang web cα»‘ gαΊ―ng ngΔƒn chαΊ·n Δ‘iều nΓ y bαΊ±ng cΓ‘ch tα»± Δ‘α»™ng Δ‘Δƒng xuαΊ₯t người dΓΉng nαΊΏu họ nhαΊ­p mα»™t sα»‘ lượng mΓ£ xΓ‘c minh khΓ΄ng chΓ­nh xΓ‘c. Điều nΓ y khΓ΄ng hiệu quαΊ£ trong thα»±c tαΊΏ vΓ¬ kαΊ» tαΊ₯n cΓ΄ng nΓ’ng cao thαΊ­m chΓ­ cΓ³ thể tα»± Δ‘α»™ng hΓ³a quy trΓ¬nh nhiều bΖ°α»›c nΓ y bαΊ±ng cΓ‘ch tαΊ‘o macro cho Burp Intruder. PhαΊ§n mở rα»™ng Turbo Intruder cΕ©ng cΓ³ thể được sα»­ dα»₯ng cho mα»₯c Δ‘Γ­ch nΓ y.

CΓ‘c lα»— hα»•ng trong cΓ‘c cΖ‘ chαΊΏ xΓ‘c thα»±c khΓ‘c

NgoΓ i chα»©c nΔƒng Δ‘Δƒng nhαΊ­p cΖ‘ bαΊ£n, hαΊ§u hαΊΏt cΓ‘c trang web đều cung cαΊ₯p chα»©c nΔƒng bα»• sung để cho phΓ©p người dΓΉng quαΊ£n lΓ½ tΓ i khoαΊ£n cα»§a họ. VΓ­ dα»₯, người dΓΉng thường cΓ³ thể thay Δ‘α»•i mαΊ­t khαΊ©u hoαΊ·c Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u khi họ quΓͺn. CΓ‘c cΖ‘ chαΊΏ nΓ y cΕ©ng cΓ³ thể giα»›i thiệu cΓ‘c lα»— hα»•ng cΓ³ thể bα»‹ kαΊ» tαΊ₯n cΓ΄ng khai thΓ‘c.

CΓ‘c trang web thường cαΊ©n thαΊ­n để trΓ‘nh cΓ‘c lα»— hα»•ng nα»•i tiαΊΏng trong cΓ‘c trang Δ‘Δƒng nhαΊ­p cα»§a họ. NhΖ°ng cΓ³ thể dα»… dΓ ng bỏ qua thα»±c tαΊΏ rαΊ±ng bαΊ‘n cαΊ§n thα»±c hiện cΓ‘c bΖ°α»›c tΖ°Ζ‘ng tα»± để Δ‘αΊ£m bαΊ£o rαΊ±ng chα»©c nΔƒng liΓͺn quan cΕ©ng mαΊ‘nh mαΊ½ nhΖ° nhau. Điều nΓ y Δ‘αΊ·c biệt quan trọng trong trường hợp kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể tαΊ‘o tΓ i khoαΊ£n cα»§a riΓͺng họ vΓ  do Δ‘Γ³, cΓ³ thể dα»… dΓ ng truy cαΊ­p để nghiΓͺn cα»©u cΓ‘c trang bα»• sung nΓ y.

Keeping users logged in

Mα»™t tΓ­nh nΔƒng phα»• biαΊΏn lΓ  tΓΉy chọn để duy trΓ¬ trαΊ‘ng thΓ‘i Δ‘Δƒng nhαΊ­p ngay cαΊ£ sau khi Δ‘Γ³ng phiΓͺn trΓ¬nh duyệt. ĐÒy thường lΓ  mα»™t hα»™p kiểm Δ‘Ζ‘n giαΊ£n cΓ³ nhΓ£n nhΖ° "Remember me" hoαΊ·c "Keep me logged in"

Chα»©c nΔƒng nΓ y thường được triển khai bαΊ±ng cΓ‘ch tαΊ‘o mα»™t loαΊ‘i mΓ£ thΓ΄ng bΓ‘o "remember me", sau Δ‘Γ³ được lΖ°u trα»― trong mα»™t cookie liΓͺn tα»₯c. VΓ¬ sở hα»―u cookie nΓ y mα»™t cΓ‘ch hiệu quαΊ£ cho phΓ©p bαΊ‘n bỏ qua toΓ n bα»™ quy trΓ¬nh Δ‘Δƒng nhαΊ­p, nΓͺn cΓ‘ch tα»‘t nhαΊ₯t lΓ  khΓ΄ng thể Δ‘oΓ‘n được cookie nΓ y. Tuy nhiΓͺn, mα»™t sα»‘ trang web tαΊ‘o cookie nΓ y dα»±a trΓͺn sα»± ghΓ©p nα»‘i cΓ³ thể dα»± Δ‘oΓ‘n được cα»§a cΓ‘c giΓ‘ trα»‹ tΔ©nh, chαΊ³ng hαΊ‘n nhΖ° username and timestamp. Mα»™t sα»‘ thαΊ­m chΓ­ sα»­ dα»₯ng mαΊ­t khαΊ©u nhΖ° mα»™t phαΊ§n cα»§a cookie. CΓ‘ch tiαΊΏp cαΊ­n nΓ y Δ‘αΊ·c biệt nguy hiểm nαΊΏu kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể tαΊ‘o tΓ i khoαΊ£n cα»§a riΓͺng họ vΓ¬ họ cΓ³ thể nghiΓͺn cα»©u cookie cα»§a chΓ­nh họ vΓ  cΓ³ khαΊ£ nΔƒng suy ra cΓ‘ch nΓ³ được tαΊ‘o ra. Khi họ tΓ¬m ra cΓ΄ng thα»©c, họ cΓ³ thể cα»‘ gαΊ―ng brute-force cookie cα»§a người dΓΉng khΓ‘c để cΓ³ quyền truy cαΊ­p vΓ o tΓ i khoαΊ£n cα»§a họ.

Mα»™t sα»‘ trang web cho rαΊ±ng nαΊΏu cookie được mΓ£ hΓ³a theo mα»™t cΓ‘ch nΓ o Δ‘Γ³, nΓ³ sαΊ½ khΓ΄ng thể Δ‘oΓ‘n được ngay cαΊ£ khi nΓ³ sα»­ dα»₯ng cΓ‘c giΓ‘ trα»‹ tΔ©nh. MαΊ·c dΓΉ Δ‘iều nΓ y cΓ³ thể Δ‘ΓΊng nαΊΏu được thα»±c hiện Δ‘ΓΊng cΓ‘ch, nhΖ°ng việc "encrypting" cookie mα»™t cΓ‘ch ngΓ’y thΖ‘ bαΊ±ng cΓ‘ch sα»­ dα»₯ng mΓ£ hΓ³a hai chiều Δ‘Ζ‘n giαΊ£n nhΖ° Base64 khΓ΄ng cung cαΊ₯p bαΊ₯t kα»³ biện phΓ‘p bαΊ£o vệ nΓ o. Ngay cαΊ£ khi sα»­ dα»₯ng mΓ£ hΓ³a thΓ­ch hợp vα»›i hΓ m bΔƒm mα»™t chiều cΕ©ng khΓ΄ng hoΓ n toΓ n chα»‘ng được Δ‘αΊ‘n. NαΊΏu kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể dα»… dΓ ng xΓ‘c Δ‘α»‹nh thuαΊ­t toΓ‘n bΔƒm vΓ  khΓ΄ng cΓ³ muα»‘i nΓ o được sα»­ dα»₯ng, chΓΊng cΓ³ thể cΓ³ khαΊ£ nΔƒng brute-force cookie bαΊ±ng cΓ‘ch Δ‘Ζ‘n giαΊ£n hash wordlists. PhΖ°Ζ‘ng phΓ‘p nΓ y cΓ³ thể được sα»­ dα»₯ng để bypass giα»›i hαΊ‘n sα»‘ lαΊ§n Δ‘Δƒng nhαΊ­p nαΊΏu mα»™t giα»›i hαΊ‘n tΖ°Ζ‘ng tα»± khΓ΄ng được Γ‘p dα»₯ng cho cΓ‘c lαΊ§n Δ‘oΓ‘n cookie.

Trong mα»™t sα»‘ trường hợp hiαΊΏm hoi, cΓ³ thể lαΊ₯y được mαΊ­t khαΊ©u thα»±c cα»§a người dΓΉng dΖ°α»›i dαΊ‘ng vΔƒn bαΊ£n rΓ΅ rΓ ng tα»« cookie, ngay cαΊ£ khi nΓ³ Δ‘Γ£ được bΔƒm. PhiΓͺn bαΊ£n bΔƒm cα»§a danh sΓ‘ch mαΊ­t khαΊ©u nα»•i tiαΊΏng cΓ³ sαΊ΅n trα»±c tuyαΊΏn, vΓ¬ vαΊ­y nαΊΏu mαΊ­t khαΊ©u cα»§a người dΓΉng xuαΊ₯t hiện trong mα»™t trong nhα»―ng danh sΓ‘ch nΓ y, việc giαΊ£i mΓ£ hΓ m bΔƒm Δ‘Γ΄i khi cΓ³ thể Δ‘Ζ‘n giαΊ£n nhΖ° chỉ dΓ‘n mΓ£ bΔƒm vΓ o cΓ΄ng cα»₯ tΓ¬m kiαΊΏm. Điều nΓ y chα»©ng tỏ tαΊ§m quan trọng cα»§a muα»‘i trong việc mΓ£ hΓ³a hiệu quαΊ£.

Resetting user passwords

Trong thα»±c tαΊΏ, cΓ³ mα»™t sα»‘ người dΓΉng sαΊ½ quΓͺn mαΊ­t khαΊ©u cα»§a họ, vΓ¬ vαΊ­y thΓ΄ng thường sαΊ½ cΓ³ cΓ‘ch để họ Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u. VΓ¬ xΓ‘c thα»±c dα»±a trΓͺn mαΊ­t khαΊ©u thΓ΄ng thường rΓ΅ rΓ ng lΓ  khΓ΄ng thể trong trường hợp nΓ y, cΓ‘c trang web phαΊ£i dα»±a vΓ o cΓ‘c phΖ°Ζ‘ng phΓ‘p thay thαΊΏ để Δ‘αΊ£m bαΊ£o rαΊ±ng người dΓΉng thα»±c Δ‘ang Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u cα»§a chΓ­nh họ. VΓ¬ lΓ½ do nΓ y, chα»©c nΔƒng Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u vα»‘n Δ‘Γ£ rαΊ₯t nguy hiểm vΓ  cαΊ§n được triển khai mα»™t cΓ‘ch an toΓ n.

Sending passwords by email

KhΓ΄ng nΓͺn nΓ³i rαΊ±ng việc gα»­i cho người dΓΉng mαΊ­t khαΊ©u hiện tαΊ‘i cα»§a họ sαΊ½ khΓ΄ng bao giờ cΓ³ thể thα»±c hiện được nαΊΏu mα»™t trang web xα»­ lΓ½ mαΊ­t khαΊ©u mα»™t cΓ‘ch an toΓ n ngay tα»« Δ‘αΊ§u. Thay vΓ o Δ‘Γ³, mα»™t sα»‘ trang web tαΊ‘o mαΊ­t khαΊ©u mα»›i vΓ  gα»­i mαΊ­t khαΊ©u nΓ y cho người dΓΉng qua email.

NΓ³i chung, việc gα»­i mαΊ­t khαΊ©u liΓͺn tα»₯c qua cΓ‘c kΓͺnh khΓ΄ng an toΓ n lΓ  Δ‘iều nΓͺn trΓ‘nh. Trong trường hợp nΓ y, bαΊ£o mαΊ­t dα»±a vΓ o mαΊ­t khαΊ©u được tαΊ‘o sαΊ½ hαΊΏt hαΊ‘n sau mα»™t thời gian rαΊ₯t ngαΊ―n hoαΊ·c người dΓΉng thay Δ‘α»•i lαΊ‘i mαΊ­t khαΊ©u cα»§a họ ngay lαΊ­p tα»©c. NαΊΏu khΓ΄ng, cΓ‘ch tiαΊΏp cαΊ­n nΓ y rαΊ₯t dα»… bα»‹ tαΊ₯n cΓ΄ng bởi kαΊ» trung gian.

Email thường khΓ΄ng được coi lΓ  an toΓ n vΓ¬ hα»™p thΖ° Δ‘αΊΏn đều liΓͺn tα»₯c vΓ  khΓ΄ng thα»±c sα»± được thiαΊΏt kαΊΏ để lΖ°u trα»― an toΓ n thΓ΄ng tin bΓ­ mαΊ­t. Nhiều người dΓΉng cΕ©ng tα»± Δ‘α»™ng Δ‘α»“ng bα»™ hΓ³a hα»™p thΖ° Δ‘αΊΏn cα»§a họ giα»―a nhiều thiαΊΏt bα»‹ trΓͺn cΓ‘c kΓͺnh khΓ΄ng an toΓ n.

Resetting passwords using a URL

Mα»™t phΖ°Ζ‘ng phΓ‘p Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u mαΊ‘nh mαΊ½ hΖ‘n lΓ  gα»­i mα»™t URL duy nhαΊ₯t cho người dΓΉng để Δ‘Ζ°a họ Δ‘αΊΏn trang Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u. CΓ‘c triển khai kΓ©m an toΓ n hΖ‘n cα»§a phΖ°Ζ‘ng phΓ‘p nΓ y sα»­ dα»₯ng URL cΓ³ thΓ΄ng sα»‘ dα»… Δ‘oΓ‘n để xΓ‘c Δ‘α»‹nh tΓ i khoαΊ£n nΓ o Δ‘ang được Δ‘αΊ·t lαΊ‘i.

VΓ­ dα»₯:

http://vulnerable-website.com/reset-password?user=victim-user

VΓ­ dα»₯ kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể thay Δ‘α»•i tham sα»‘ user để tham chiαΊΏu Δ‘αΊΏn bαΊ₯t kα»³ tΓͺn người dΓΉng nΓ o mΓ  chΓΊng Δ‘Γ£ xΓ‘c Δ‘α»‹nh. Sau Δ‘Γ³, họ sαΊ½ được Δ‘Ζ°a thαΊ³ng Δ‘αΊΏn mα»™t trang mΓ  họ cΓ³ thể Δ‘αΊ·t mαΊ­t khαΊ©u mα»›i cho người dΓΉng tΓΉy Γ½ nΓ y.

CΓ‘ch triển khai tα»‘t hΖ‘n cα»§a quΓ‘ trΓ¬nh nΓ y lΓ  tαΊ‘o mα»™t high-entropy, hard-to-guess token vΓ  tαΊ‘o URL Δ‘αΊ·t lαΊ‘i dα»±a trΓͺn Δ‘Γ³. Trong trường hợp tα»‘t nhαΊ₯t, URL nΓ y sαΊ½ khΓ΄ng cung cαΊ₯p gợi Γ½ về mαΊ­t khαΊ©u cα»§a người dΓΉng nΓ o Δ‘ang được Δ‘αΊ·t lαΊ‘i.

http://vulnerable-website.com/reset-password?token=a0ba0d1cb3b63d13822572fcff1a241895d893f659164d4cc550b421ebdd48a8

Khi người dΓΉng truy cαΊ­p vΓ o URL nΓ y, hệ thα»‘ng sαΊ½ kiểm tra xem mΓ£ thΓ΄ng bΓ‘o nΓ y cΓ³ tα»“n tαΊ‘i trΓͺn back-end hay khΓ΄ng vΓ  nαΊΏu cΓ³, mαΊ­t khαΊ©u cα»§a người dΓΉng nΓ o nΓ³ được yΓͺu cαΊ§u Δ‘αΊ·t lαΊ‘i. MΓ£ thΓ΄ng bΓ‘o nΓ y sαΊ½ hαΊΏt hαΊ‘n sau mα»™t khoαΊ£ng thời gian ngαΊ―n vΓ  bα»‹ hα»§y ngay sau khi mαΊ­t khαΊ©u được Δ‘αΊ·t lαΊ‘i.

Tuy nhiΓͺn, mα»™t sα»‘ trang web cΕ©ng khΓ΄ng thể xΓ‘c thα»±c lαΊ‘i mΓ£ thΓ΄ng bΓ‘o khi biểu mαΊ«u Δ‘αΊ·t lαΊ‘i được gα»­i. Trong trường hợp nΓ y, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể chỉ cαΊ§n truy cαΊ­p biểu mαΊ«u Δ‘αΊ·t lαΊ‘i tα»« tΓ i khoαΊ£n cα»§a chΓ­nh họ, xΓ³a mΓ£ thΓ΄ng bΓ‘o vΓ  tαΊ­n dα»₯ng trang nΓ y để Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u cα»§a người dΓΉng tΓΉy Γ½.

Ở Δ‘Γ’y cΓ³ thể nΓ³i trang web Δ‘ang bα»‹ lα»—i ở xΓ‘c thα»±c mΓ£ thΓ΄ng bΓ‘o. NαΊΏu bα»‹ lα»—i thΓ¬ khi Δ‘Γ³ khΓ΄ng cαΊ§n mΓ£ thΓ΄ng bΓ‘o kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u trong cΓΉng mα»™t session Δ‘Γ³.

NαΊΏu URL trong email Δ‘αΊ·t lαΊ‘i được tαΊ‘o Δ‘α»™ng, thΓ¬ URL nΓ y cΕ©ng cΓ³ thể dα»… bα»‹ nhiα»…m Δ‘α»™c Δ‘αΊ·t lαΊ‘i mαΊ­t khαΊ©u. Trong trường hợp nΓ y, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể Δƒn cαΊ―p mΓ£ thΓ΄ng bΓ‘o cα»§a người dΓΉng khΓ‘c vΓ  sα»­ dα»₯ng nΓ³ để thay Δ‘α»•i mαΊ­t khαΊ©u cα»§a họ.

Thường nhα»―ng lab nhΖ° nΓ y thΓ¬ sαΊ½ sα»­ dα»₯ng X-Forwarded-Host cΓ‘c bαΊ‘n cΓ³ thể xem ở trΓͺn cΓΉng bΓ i viαΊΏt, chỉ cαΊ§n dΓΉng Burp suite bαΊ―t ở lΓΊc gα»­i link về email thΓ¬ khi Δ‘Γ³ mΓ¬nh chΓ¨n host mΓ¬nh vΓ o khi Δ‘Γ³ nΓ³ gα»­i token về domain cα»§a mΓ¬nh hoαΊ·c sau Δ‘Γ³ mΓ¬nh thay token vΓ o sau link. HoαΊ·c nΓ³ vαΊ«n sαΊ½ gα»­i link request pass về mail nαΊ‘n nhΓ’n nhΖ°ng mΓ  nαΊΏu nαΊ‘n nhΓ’n click vΓ o link thΓ¬ token sαΊ½ gα»­i về domain mΓ  mΓ¬nh kiểm soΓ‘t.

Changing user passwords

ThΓ΄ng thường, thay Δ‘α»•i mαΊ­t khαΊ©u liΓͺn quan tα»›i nhαΊ­p mαΊ­t khαΊ©u hiện tαΊ‘i cα»§a bαΊ‘n vvaf nhαΊ­p khαΊ©u mα»›i hai lαΊ§n. CΓ‘c trang nΓ y về cΖ‘ bαΊ£n dα»±a trΓͺn cΓΉng mα»™t quy trΓ¬nh để kiểm tra xem tΓͺn người dΓΉng vΓ  mαΊ­t khαΊ©u hiện tαΊ‘i cΓ³ khα»›p nhΖ° mα»™t trang Δ‘Δƒng nhαΊ­p bΓ¬nh thường hay khΓ΄ng. Do Δ‘Γ³, cΓ‘c trang nΓ y cΓ³ thể dα»… bα»‹ tαΊ₯n cΓ΄ng bởi cΓ‘c kα»Ή thuαΊ­t tΖ°Ζ‘ng tα»±.

Chα»©c nΔƒng thay Δ‘α»•i mαΊ­t khαΊ©u cΓ³ thể Δ‘αΊ·c biệt nguy hiểm nαΊΏu nΓ³ cho phΓ©p kαΊ» tαΊ₯n cΓ΄ng truy cαΊ­p trα»±c tiαΊΏp mΓ  khΓ΄ng cαΊ§n Δ‘Δƒng nhαΊ­p vα»›i tΖ° cΓ‘ch lΓ  người dΓΉng nαΊ‘n nhΓ’n. VΓ­ dα»₯: nαΊΏu tΓͺn người dΓΉng được cung cαΊ₯p trong trường αΊ©n, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể chỉnh sα»­a giΓ‘ trα»‹ nΓ y trong yΓͺu cαΊ§u để nhαΊ―m mα»₯c tiΓͺu người dΓΉng tΓΉy Γ½. Điều nΓ y cΓ³ thể bα»‹ lợi dα»₯ng để liệt kΓͺ tΓͺn người dΓΉng vΓ  mαΊ­t khαΊ©u brute-force.

CΓ‘c lα»— hα»•ng trong cΖ‘ chαΊΏ xΓ‘c thα»±c cα»§a bΓͺn thα»© ba

CÑi này mình viết hẳn ra một bài mới: OAuth 2.0 authentication vulnerabilities

NgΔƒn chαΊ·n cΓ‘c cuα»™c tαΊ₯n cΓ΄ng vΓ o cΖ‘ chαΊΏ xΓ‘c thα»±c

  1. Triển khai hệ thα»‘ng chα»‘ng brute-force Δ‘Γ‘ng tin cαΊ­y: CΓ³ thể ngΔƒn chαΊ·n cΓ‘c cuα»™c tαΊ₯n cΓ΄ng bαΊ‘o lα»±c bαΊ±ng cΓ‘ch thα»±c thi khΓ³a tΓ i khoαΊ£n, giα»›i hαΊ‘n tα»‘c Δ‘α»™, giΓ‘m sΓ‘t dα»±a trΓͺn IP, tường lα»­a α»©ng dα»₯ng vΓ  CAPTCHA.

  2. Áp dα»₯ng bαΊ£o mαΊ­t truyền tαΊ£i nghiΓͺm ngαΊ·t HTTP (HSTS): Điều nΓ y buα»™c cΓ‘c phiΓͺn web sα»­ dα»₯ng mΓ£ hΓ³a TLS, ngΔƒn thΓ΄ng tin nhαΊ‘y cαΊ£m bα»‹ truy cαΊ­p khi chuyển tiαΊΏp.

  3. CΓ’n nhαΊ―c việc tαΊ―t liệt kΓͺ tΓͺn người dΓΉng: BαΊ±ng cΓ‘ch tαΊ‘o ra cΓΉng mα»™t lα»—i cho mα»™t lαΊ§n Δ‘Δƒng nhαΊ­p khΓ΄ng thΓ nh cΓ΄ng cho dΓΉ tΓͺn người dΓΉng hợp lệ hay khΓ΄ng hợp lệ, bαΊ‘n buα»™c kαΊ» tαΊ₯n cΓ΄ng phαΊ£i cΖ°α»‘ng bα»©c khΓ΄ng chỉ bα»™ mαΊ­t khαΊ©u cΓ³ thể cΓ³ mΓ  cΓ²n cαΊ£ bα»™ tΓͺn người dΓΉng cΓ³ khαΊ£ nΔƒng xαΊ£y ra, thay vΓ¬ dΓ­nh vΓ o nhα»―ng cΓ‘i họ biαΊΏt lΓ  hợp lệ.

  4. Sα»­a Δ‘α»•i tiΓͺu đề cookie: Việc sα»­a Δ‘α»•i tiΓͺu đề cookie bαΊ£o vệ chΓΊng khỏi cΓ‘c cuα»™c tαΊ₯n cΓ΄ng Δ‘α»™c hαΊ‘i. Việc sα»­ dα»₯ng cΓ‘c thαΊ» HttpOnly vΓ  SameSite khi Δ‘αΊ·t tiΓͺu đề cookie sαΊ½ ngΔƒn chΓΊng khỏi cΓ‘c cuα»™c tαΊ₯n cΓ΄ng XSS vΓ  CSRF, tΖ°Ζ‘ng α»©ng.

  5. Kiểm tra kα»Ή lΖ°α»‘ng mΓ£ cα»§a bαΊ‘n khi xΓ‘c minh: Điều nΓ y rαΊ₯t quan trọng để phΓ‘t hiện bαΊ₯t kα»³ lα»— hα»•ng nΓ o trong mΓ£ cα»§a bαΊ‘n.

  6. Sα»­ dα»₯ng cΓ’u lệnh được tham sα»‘ hΓ³a: BαΊ‘n cΓ³ thể ngΔƒn chαΊ·n cΓ‘c cuα»™c tαΊ₯n cΓ΄ng SQL Injection thΓ΄ng qua xΓ‘c thα»±c Δ‘αΊ§u vΓ o vΓ  cΓ‘c truy vαΊ₯n được tham sα»‘ hΓ³a. ChΓΊng an toΓ n hΖ‘n khi trΓ‘nh Δ‘Ζ°a trα»±c tiαΊΏp Δ‘αΊ§u vΓ o do người dΓΉng cung cαΊ₯p trα»±c tiαΊΏp vΓ o cΓ‘c cΓ’u lệnh SQL.

  7. Thα»±c hiện multi-factor authentication thΓ­ch hợp: Sα»­ dα»₯ngmulti-factor authentication an toΓ n hΖ‘n cΖ‘ chαΊΏ dα»±a trΓͺn mαΊ­t khαΊ©u. Tuy nhiΓͺn, bαΊ‘n cαΊ§n cΓ³ mΓ£ vα»―ng chαΊ―c vΓ  tαΊ‘o mΓ£ xΓ‘c minh an toΓ n để triển khai hiệu quαΊ£ hΓ¬nh thα»©c xΓ‘c thα»±c nΓ y.

CαΊ£m Ζ‘n cΓ‘c bαΊ‘n Δ‘Γ£ đọc bΓ i viαΊΏt cα»§a mΓ¬nh. BΓ i viαΊΏt nΓ y mΓ¬nh vα»«a học vα»«a viαΊΏt ra tα»« PortSwigger nΓͺn cΓ³ gΓ¬ sai sΓ³t thΓ¬ mong mn bỏ qua.

Lab:

Lab:

Lab:

Lab:

Lab:

XΓ‘c thα»±c cΖ‘ bαΊ£n HTTP cΕ©ng Δ‘αΊ·c biệt dα»… bα»‹ tαΊ₯n cΓ΄ng bởi cΓ‘c khai thΓ‘c liΓͺn quan Δ‘αΊΏn session, Δ‘αΊ·c biệt lΓ  , mΓ  nΓ³ khΓ΄ng tα»± bαΊ£o vệ.

Việc xΓ‘c minh cΓ‘c yαΊΏu tα»‘ sinh trαΊ―c học lΓ  khΓ΄ng thα»±c tαΊΏ Δ‘α»‘i vα»›i hαΊ§u hαΊΏt cΓ‘c trang web. Tuy nhiΓͺn, việc xΓ‘c thα»±c hai yαΊΏu tα»‘ bαΊ―t buα»™c vΓ  tΓΉy chọn dα»±a trΓͺn something you know vΓ  something you have ngΓ y cΓ ng phα»• biαΊΏn . Điều nΓ y thường yΓͺu cαΊ§u người dΓΉng nhαΊ­p cαΊ£ mαΊ­t khαΊ©u truyền thα»‘ng vΓ  mΓ£ xΓ‘c minh tαΊ‘m thời tα»« thiαΊΏt bα»‹ vαΊ­t lΓ½ ngoΓ i bΔƒng tαΊ§n mΓ  họ sở hα»―u.

Lab:

Lab:

Lab:

Lab:

Để lΓ m lab nΓ y thΓ¬ cΓ‘c bαΊ‘n nΓͺn đọc rΓ΅ về cΓ‘c phαΊ§n nΓ y trong

Ngay cαΊ£ khi kαΊ» tαΊ₯n cΓ΄ng khΓ΄ng thể tαΊ‘o tΓ i khoαΊ£n cα»§a riΓͺng họ, họ vαΊ«n cΓ³ thể khai thΓ‘c lα»— hα»•ng nΓ y. Sα»­ dα»₯ng cΓ‘c kα»Ή thuαΊ­t thΓ΄ng thường, chαΊ³ng hαΊ‘n nhΖ° , kαΊ» tαΊ₯n cΓ΄ng cΓ³ thể Δ‘Γ‘nh cαΊ―p cookie "remember me" cα»§a người dΓΉng khΓ‘c vΓ  suy ra cΓ‘ch cookie được xΓ’y dα»±ng tα»« Δ‘Γ³. NαΊΏu trang web được xΓ’y dα»±ng bαΊ±ng khung mΓ£ nguα»“n mở, thΓ¬ cΓ‘c chi tiαΊΏt chΓ­nh cα»§a việc xΓ’y dα»±ng cookie thαΊ­m chΓ­ cΓ³ thể được ghi lαΊ‘i cΓ΄ng khai.

Lab:

Lab:

Lab:

Lab:

Thα»±c thi chΓ­nh sΓ‘ch mαΊ­t khαΊ©u an toΓ n: Thα»±c hiện việc nΓ y bαΊ±ng cΓ‘ch tαΊ‘o trΓ¬nh kiểm tra mαΊ­t khαΊ©u cho người dΓΉng biαΊΏt mαΊ­t khαΊ©u cα»§a họ mαΊ‘nh Δ‘αΊΏn mα»©c nΓ o trong thời gian thα»±c. BαΊ‘n cΕ©ng cΓ³ thể triển khai xΓ‘c thα»±c bαΊ±ng cΓ‘ch sα»­ dα»₯ng cΓ‘c tiΓͺu chuαΊ©n nhΖ° để giαΊ£m thiểu rα»§i ro vΓ  cΔƒng thαΊ³ng khi quαΊ£n lΓ½ mαΊ­t khαΊ©u.

πŸ’»
πŸ“²
πŸ”
Địa chỉ IP user
Username enumeration via different responses
Username enumeration via subtly different responses
Username enumeration via response timing
Broken brute-force protection, IP block
Username enumeration via account lock
Broken brute-force protection, multiple credentials per request
CSRF
(2FA)
(2FA)
2FA simple bypass
2FA broken logic
2FA bypass using a brute-force attack
Brute-forcing a stay-logged-in cookie
Burp
XSS
Offline password cracking
Password reset broken logic
Password reset poisoning via middleware
Password brute-force via password change
passwordless authentication
FIDO2
Note:
Host Header Attack