πAccess control vulnerabilities and privilege escalation
Server Side Vul
Access control là gì ?
Access control hay cΓ³ thα» gα»i lΓ authorization( cαΊ₯p quyα»n) lΓ cαΊ₯p quyα»n cho ai hoαΊ·c cΓ‘i gΓ¬ thα» thα»±c cΓ‘c hΓ nh Δα»ng riΓͺng biα»t hoαΊ·c truy cαΊp tΓ i nguyΓͺn mΓ hα» yΓͺu cαΊ§u. ThΓ΄ng thΖ°α»ng α»©ng dα»₯ng web, access control phα»₯ thuα»c vΓ o authentication vΓ quαΊ£n lΓ½ session:
Authentication: NhαΊn biαΊΏt user vΓ confirm rαΊ±ng hα» chΓnh lΓ hα»
QuαΊ£n lΓ½ Session: NhαΊn biαΊΏt cΓ‘c HTTP request tiαΊΏp theo nΓ o Δang Δược yΓͺu cαΊ§u bα»i user ΔΓ³
Accesss control: XΓ‘c Δα»nh user Δược phΓ©p tiαΊΏn hΓ nh hΓ nh Δα»ng mΓ hα» Δang cα» gαΊ―ng thα»±c hiα»n hay khΓ΄ng...
Broken access controls lΓ mα»t lα» hα»ng bαΊ£o mαΊt thΖ°α»ng gαΊ·p vΓ nghiΓͺm trα»ng, nΓ³ phΓ‘ vα»‘ quyα»n Δiα»u khiα»n vượt qua cΓ‘c kiα»m soΓ‘t tα»« ΔΓ³ cΓ³ thα» xem cΓ‘c thΓ΄ng tin nhαΊ‘y cαΊ£m.
Vertical access controls
NΓ³ cΓ³ nghΔ©a lΓ kiα»m soΓ‘t truy cαΊp dα»c.....cΓ³ nghΔ©a lΓ tα»« trΓͺn xuα»ng dΖ°α»i, tα»« cao nhαΊ₯t xuα»ng thαΊ₯p nhαΊ₯t.
Vertical access controls lΓ cΖ‘ chαΊΏ hαΊ‘n chαΊΏ quyα»n truy cαΊp vΓ o chα»©c nΔng nhαΊ‘y cαΊ£m khΓ΄ng cΓ³ sαΊ΅n cho cΓ‘c kiα»u ngΖ°α»i dΓΉng khΓ‘c.
Vα»i vertical access controls, cΓ‘c kiα»u ngΖ°α»i dΓΉng khΓ‘c nhau cΓ³ quyα»n truy cαΊp vΓ o cΓ‘c chα»©c nΔng α»©ng dα»₯ng khΓ‘c nhau. VΓ dα»₯: quαΊ£n trα» viΓͺn cΓ³ thα» sα»a Δα»i hoαΊ·c xΓ³a tΓ i khoαΊ£n của bαΊ₯t kα»³ ngΖ°α»i dΓΉng nΓ o, trong khi ngΖ°α»i dΓΉng bΓ¬nh thΖ°α»ng khΓ΄ng cΓ³ quyα»n truy cαΊp vΓ o cΓ‘c hΓ nh Δα»ng nΓ y. Kiα»m soΓ‘t truy cαΊp theo chiα»u tα»« trΓͺn xuα»ng cΓ³ thα» lΓ cΓ‘ch triα»n khai chi tiαΊΏt hΖ‘n của cΓ‘c mΓ΄ hΓ¬nh bαΊ£o mαΊt Δược thiαΊΏt kαΊΏ Δα» thα»±c thi cΓ‘c chΓnh sΓ‘ch kinh doanh nhΖ° tΓ‘ch biα»t cΓ‘c nhiα»m vα»₯ vΓ Γt ΔαΊ·c quyα»n nhαΊ₯t.
Horizontal access controls
NΓ³ cΓ³ nghΔ©a lΓ kiα»m soΓ‘t truy cαΊp ngang...nghΔ©a lΓ kiα»m soΓ‘t nhα»―ng quyα»n Δược cαΊ₯p vα»i nhα»―ng accout cΓΉng cαΊ₯p vα»i mΓ¬nh nhΖ° bαΊ‘n khΓ΄ng thα» xem mα»t vΓ i thΓ΄ng tin private của ngΖ°α»i dΓΉng khΓ‘c.
Horizontal access controls lΓ cΖ‘ chαΊΏ hαΊ‘n chαΊΏ quyα»n truy cαΊp vΓ o tΓ i nguyΓͺn Δα»i vα»i nhα»―ng ngΖ°α»i dΓΉng Δược phΓ©p truy cαΊp cα»₯ thα» vΓ o cΓ‘c tΓ i nguyΓͺn ΔΓ³.
Vα»i Δiα»u khiα»n truy cαΊp ngang, nhα»―ng ngΖ°α»i dΓΉng khΓ‘c nhau cΓ³ quyα»n truy cαΊp vΓ o mα»t tαΊp hợp con cΓ‘c tΓ i nguyΓͺn cΓΉng loαΊ‘i. VΓ dα»₯: mα»t α»©ng dα»₯ng ngΓ’n hΓ ng sαΊ½ cho phΓ©p ngΖ°α»i dΓΉng xem cΓ‘c giao dα»ch vΓ thα»±c hiα»n thanh toΓ‘n tα»« tΓ i khoαΊ£n của chΓnh hα», chα»© khΓ΄ng phαΊ£i tΓ i khoαΊ£n của bαΊ₯t kα»³ ngΖ°α»i dΓΉng nΓ o khΓ‘c.
Context-dependent access controls
Kiα»m soΓ‘t truy cαΊp phα»₯ thuα»c vΓ o ngα»― cαΊ£nh hαΊ‘n chαΊΏ quyα»n truy cαΊp vΓ o chα»©c nΔng vΓ tΓ i nguyΓͺn dα»±a trΓͺn trαΊ‘ng thΓ‘i của α»©ng dα»₯ng hoαΊ·c tΖ°Ζ‘ng tΓ‘c của ngΖ°α»i dΓΉng vα»i nΓ³.
Kiα»m soΓ‘t truy cαΊp phα»₯ thuα»c vΓ o ngα»― cαΊ£nh ngΔn ngΖ°α»i dΓΉng thα»±c hiα»n cΓ‘c hΓ nh Δα»ng khΓ΄ng ΔΓΊng thα»© tα»±. VΓ dα»₯: mα»t trang web bΓ‘n lαΊ» cΓ³ thα» ngΔn ngΖ°α»i dΓΉng sα»a Δα»i nα»i dung trong giα» hΓ ng của hα» sau khi hα» ΔΓ£ thanh toΓ‘n.
Broken access control
Vertical privilege escalation
NαΊΏu ngΖ°α»i dΓΉng cΓ³ thα» cΓ³ quyα»n truy cαΊp vΓ o chα»©c nΔng mΓ hα» khΓ΄ng Δược phΓ©p truy cαΊp thΓ¬ ΔΓ’y lΓ sα»± leo thang ΔαΊ·c quyα»n theo chiα»u dα»c.
VΓ dα»₯: nαΊΏu ngΖ°α»i dΓΉng khΓ΄ng phαΊ£i quαΊ£n trα» trΓͺn thα»±c tαΊΏ cΓ³ thα» cΓ³ quyα»n truy cαΊp vΓ o trang quαΊ£n trα» nΖ‘i hα» cΓ³ thα» xΓ³a tΓ i khoαΊ£n ngΖ°α»i dΓΉng, thΓ¬ ΔΓ’y lΓ sα»± leo thang ΔαΊ·c quyα»n theo chiα»u dα»c.
Unprotected functionality
Unprotect chα»©c nΔng lΓ cΓ‘i cΖ‘ bαΊ£n nhαΊ₯t mΓ kαΊ» tαΊ₯n cΓ΄ng cΓ³ tαΊ₯n cΓ΄ng, leo thang ΔαΊ·c quyα»n theo chiα»u dα»c phΓ‘t sinh khi α»©ng dα»₯ng khΓ΄ng thα»±c thi bαΊ₯t kα»³ biα»n phΓ‘p bαΊ£o vα» nΓ o Δα»i vα»i chα»©c nΔng nhαΊ‘y cαΊ£m.
VΓ dα»₯: cΓ‘c chα»©c nΔng quαΊ£n trα» cΓ³ thα» Δược liΓͺn kαΊΏt tα»« trang chΓ o mα»«ng của quαΊ£n trα» viΓͺn nhΖ°ng khΓ΄ng Δược liΓͺn kαΊΏt tα»« trang chΓ o mα»«ng của ngΖ°α»i dΓΉng. Tuy nhiΓͺn, ngΖ°α»i dΓΉng cΓ³ thα» chα» cαΊ§n truy cαΊp cΓ‘c chα»©c nΔng quαΊ£n trα» bαΊ±ng cΓ‘ch duyα»t trα»±c tiαΊΏp ΔαΊΏn URL quαΊ£n trα» cΓ³ liΓͺn quan.
VΓ dα»₯ nhΖ° URL sau:
NhΖ° ta ΔΓ£ thαΊ₯y ngΖ°α»i dΓΉng cΓ³ thα» truy cαΊp tα»i admin mΓ khΓ΄ng bα» ngΔn chαΊ·n bα»i chα»©c nΔng nΓ o.
Δiα»u nΓ y trΓͺn thα»±c tαΊΏ cΓ³ thα» Δược truy cαΊp bα»i bαΊ₯t kα»³ ngΖ°α»i dΓΉng nΓ o, khΓ΄ng chα» nhα»―ng ngΖ°α»i dΓΉng quαΊ£n trα» cΓ³ liΓͺn kαΊΏt ΔαΊΏn chα»©c nΔng trong giao diα»n ngΖ°α»i dΓΉng của hα». Trong mα»t sα» trΖ°α»ng hợp, URL quαΊ£n trα» cΓ³ thα» Δược tiαΊΏt lα» α» cΓ‘c vα» trΓ khΓ‘c, chαΊ³ng hαΊ‘n nhΖ° file robots.txt
:
Trong mα»t sα» trΖ°α»ng hợp, cΓ‘c function nhαΊ‘y cαΊ£m khΓ΄ng Δược bαΊ£o vα» mαΊ‘nh nhΖ°ng nΓ³ Δược giαΊ₯u Δi bαΊ±ng cΓ‘ch cung cαΊ₯p cho mα»t url khΓ³ ΔoΓ‘n hΖ‘n, bα»i vαΊy Δược gα»i lΓ bαΊ£o mαΊt bαΊ±ng cΓ‘ch che khuαΊ₯t. ThαΊt ra chα» αΊ©n Δi cΓ‘c chα»©c nΔng nhαΊ‘y cαΊ£m chα»© khΓ΄ng cung cαΊ₯p cΓ‘c quyα»n access thΓ¬ ngΖ°α»i dΓΉng vαΊ«n cΓ³ thα» tΓ¬m ra Δược url bαΊ±ng nhiα»u cΓ‘ch.
VΓ dα»₯ nhΖ° mα»t url sau cΓ³ lΖ°u trα»― cΓ‘c function của admin:
KαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» khΓ΄ng ΔoΓ‘n Δược trα»±c tiαΊΏp Δiα»u nΓ y. Tuy nhiΓͺn, α»©ng dα»₯ng vαΊ«n cΓ³ thα» lΓ m rΓ² rα» URL cho ngΖ°α»i dΓΉng.
VΓ dα»₯: URL cΓ³ thα» Δược tiαΊΏt lα» trong JavaScript tαΊ‘o giao diα»n ngΖ°α»i dΓΉng dα»±a trΓͺn vai trΓ² của ngΖ°α»i dΓΉng- cΓ³ nghΔ©a cΓ‘c file Δược load cΓΉng giao diα»n ngΖ°α»i dΓΉng:
Parameter-based access control methods
Mα»t sα» α»©ng dα»₯ng xΓ‘c Δα»nh quyα»n truy cαΊp ngΖ°α»i dΓΉng hoαΊ·c vai trΓ² trong login vΓ sau ΔΓ³ lΖ°u trα»― thΓ΄ng tin α» vα» trΓ ngΖ°α»i dΓΉng cΓ³ thα» control ( controllable) nhΖ° lΓ cΓ‘c trΖ°α»ng αΊ©n, cookie hoαΊ·c cΓ‘c truy vαΊ«n tham sα» hiα»n tαΊ‘i. Ứng dα»₯ng ΔΖ°a ra cΓ‘c quyαΊΏt Δα»nh access control tiαΊΏp theo dα»±a trΓͺn giΓ‘ trα» ΔΓ£ gα»i.
VΓ dα»₯:
CΓ‘ch tiαΊΏp cαΊn nΓ y vα» cΖ‘ bαΊ£n thΓ¬ khΓ΄ng an toΓ n bα»i vΓ¬ ngΖ°α»i dΓΉng cΓ³ thα» chα» cαΊ§n sα»a Δα»i giΓ‘ trα» vΓ giΓ nh Δược quyα»n truy cαΊp cΓ‘c function mΓ hα» khΓ΄ng Δược phΓ©p nhΖ° lΓ function admin.
Trong hai lab nΓ y thΓ¬ lab thα»© nhαΊ₯t khΓ‘ dα» chΓΊng ta chα» cαΊ§n thay Δα»i giΓ‘ trα» cookie của admin lΓ true nhΖ°ng thα»±c tαΊΏ ngoΓ i Δα»i rαΊ₯t hiαΊΏm cΓ³ trΖ°α»ng hợp nΓ y, trong lab 2 thΓ¬ khi mΓ¬nh gα»i tΓ i khoαΊ£n vΓ mαΊt khαΊ©u thΓ¬ trΖ°α»ng mα»i tΓ i khoαΊ£n sαΊ½ cΓ³ mα»t roleid, nΓ³ lΓ id của vai trΓ² thΓ¬ nαΊΏu cΓ³ thα» hΓ£y thα» tα»«ng id mα»t Δα» ra id của admin thΓ¬ lΓΊc ΔΓ³ chΓΊng ta sαΊ½ nhΖ° mα»t admin, hΓ£y gα»i cΓ‘c cΓ‘c nhΖ° thay Δα»i email, Δα»i pass... Δα» xem response lΓ gΓ¬ vΓ tα»« ΔΓ³ khai thΓ‘c nΓ³.
Broken access control resulting from platform misconfiguration
Mα»t sα» α»©ng dα»₯ng thα»±c thi cΓ‘c access control α» layer nα»n tαΊ£ng bαΊ±ng cΓ‘ch restrict truy cαΊp ΔαΊΏn cΓ‘c URL vΓ phΖ°Ζ‘ng thα»©c HTTP ΔαΊ·c biα»t dα»±a trΓͺn vai trΓ² của ngΖ°α»i dΓΉng.
VΓ dα»₯ vα» mα»t α»©ng dα»₯ng cΓ³ cΓ’u hΓ¬nh nhΖ° sau:
Quy tαΊ―c nΓ y tα»« chα»i quyα»n truy cαΊp vΓ o POST
phΖ°Ζ‘ng thα»©c trΓͺn URL /admin/deleteUser
, Δα»i vα»i ngΖ°α»i dΓΉng trong nhΓ³m ngΖ°α»i quαΊ£n lΓ½. Nhiα»u thα»© cΓ³ thα» xαΊ£y ra sai trong tΓ¬nh huα»ng nΓ y, dαΊ«n ΔαΊΏn viα»c bα» qua kiα»m soΓ‘t truy cαΊp.
Mα»t sα» khung α»©ng dα»₯ng hα» trợ cΓ‘c tiΓͺu Δα» HTTP khΓ΄ng chuαΊ©n khΓ‘c nhau cΓ³ thα» Δược sα» dα»₯ng Δα» ghi ΔΓ¨ URL trong yΓͺu cαΊ§u ban ΔαΊ§u, chαΊ³ng hαΊ‘n nhΖ° X-Original-URL
vΓ X-Rewrite-URL
.
ThΖ°α»ng thΓ¬ truy cαΊp của ngΖ°α»i dΓΉng vΓ o nhα»―ng file nhΖ° nΓ y nΓ³ sαΊ½ bΓ‘o lα»i 403 cΓ³ nghΔ©a deny access. NαΊΏu mα»t trang web sα» dα»₯ng cΓ‘c Δiα»u khiα»n front-end ngΖ°α»i dΓΉng nghiΓͺm ngαΊ·t Δα» hαΊ‘n chαΊΏ quyα»n truy cαΊp dα»±a trΓͺn URL, nhΖ°ng α»©ng dα»₯ng cho phΓ©p ghi ΔΓ¨ URL qua tiΓͺu Δα» yΓͺu cαΊ§u, thΓ¬ cΓ³ thα» bα» qua cΓ‘c Δiα»u khiα»n truy cαΊp bαΊ±ng cΓ‘ch sα» dα»₯ng mα»t yΓͺu cαΊ§u nhΖ° sau:
HoαΊ·c nhΖ° nΓ y sαΊ½ trαΊ£ vα» status 403
Nα» lα»±c bα» qua nΓ y cΕ©ng sαΊ½ trαΊ£ vα» 403, vΓ¬ URI khΓ΄ng thay Δα»i vΓ quy tαΊ―c vαΊ«n Γ‘p dα»₯ng:
Δiα»u nΓ y sαΊ½ bα» qua hαΊ‘n chαΊΏ:
Mα»t cuα»c tαΊ₯n cΓ΄ng thay thαΊΏ cΓ³ thα» phΓ‘t sinh liΓͺn quan ΔαΊΏn phΖ°Ζ‘ng thα»©c HTTP Δược sα» dα»₯ng trong request. CΓ‘c Δiα»u khiα»n giao diα»n ngΖ°α»i dΓΉng α» trΓͺn hαΊ‘n chαΊΏ quyα»n truy cαΊp dα»±a trΓͺn URL vΓ phΖ°Ζ‘ng thα»©c HTTP. Mα»t sα» trang web cΓ³ thα» chαΊ₯p nhαΊn cΓ‘c phΖ°Ζ‘ng thα»©c yΓͺu cαΊ§u HTTP thay thαΊΏ khi thα»±c hiα»n mα»t hΓ nh Δα»ng. NαΊΏu kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» sα» dα»₯ng GET
(hoαΊ·c mα»t phΖ°Ζ‘ng thα»©c khΓ‘c) Δα» thα»±c hiα»n cΓ‘c hΓ nh Δα»ng trΓͺn mα»t URL bα» hαΊ‘n chαΊΏ, thΓ¬ chΓΊng cΓ³ thα» phΓ‘ vα»‘ kiα»m soΓ‘t truy cαΊp Δược triα»n khai α» lα»p nα»n tαΊ£ng.
Horizontal privilege escalation
Sα»± leo thang ΔαΊ·c quyα»n theo chiα»u ngang phΓ‘t sinh khi ngΖ°α»i dΓΉng cΓ³ thα» cΓ³ quyα»n truy cαΊp vΓ o tΓ i nguyΓͺn thuα»c vα» ngΖ°α»i dΓΉng khΓ‘c, thay vΓ¬ tΓ i nguyΓͺn của chΓnh hα» thuα»c loαΊ‘i ΔΓ³. VΓ dα»₯: nαΊΏu mα»t nhΓ’n viΓͺn chα» cΓ³ thα» truy cαΊp hα» sΖ‘ viα»c lΓ m vΓ bαΊ£ng lΖ°Ζ‘ng của hα», nhΖ°ng trΓͺn thα»±c tαΊΏ cΕ©ng cΓ³ thα» truy cαΊp hα» sΖ‘ của cΓ‘c nhΓ’n viΓͺn khΓ‘c, thΓ¬ ΔΓ’y lΓ sα»± leo thang ΔαΊ·c quyα»n theo chiα»u ngang.
CΓ‘c cuα»c tαΊ₯n cΓ΄ng leo thang ΔαΊ·c quyα»n theo chiα»u ngang cΓ³ thα» sα» dα»₯ng cΓ‘c loαΊ‘i phΖ°Ζ‘ng phΓ‘p khai thΓ‘c tΖ°Ζ‘ng tα»± Δα» leo thang ΔαΊ·c quyα»n theo chiα»u dα»c. VΓ dα»₯: thΓ΄ng thΖ°α»ng ngΖ°α»i dΓΉng cΓ³ thα» truy cαΊp trang tΓ i khoαΊ£n của hα» bαΊ±ng URL nhΖ° sau:
BΓ’y giα», nαΊΏu kαΊ» tαΊ₯n cΓ΄ng sα»a Δα»i id
giΓ‘ trα» tham sα» của ngΖ°α»i dΓΉng khΓ‘c, thΓ¬ kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» cΓ³ quyα»n truy cαΊp vΓ o trang tΓ i khoαΊ£n của ngΖ°α»i dΓΉng khΓ‘c, vα»i dα»― liα»u vΓ chα»©c nΔng Δược liΓͺn kαΊΏt.
CΓ‘i nΓ y thΖ°α»ng xαΊ£y ra α» nhα»―ng trang web trΖ°α»ng hα»c nαΊΏu khΓ΄ng Δược xΓ‘c thα»±c id, cΓ‘i nΓ y thαΊt sα»± lΓ mα»t lα» hα»ng lα»n...
Mα»t sα» α»©ng dα»₯ng khΓ‘c, tham sα» cΓ³ thα» khai thΓ‘c khΓ΄ng cΓ³ giΓ‘ trα» cΓ³ thα» dα»± ΔoΓ‘n Δược.
VΓ dα»₯: thay vΓ¬ mα»t sα» tΔng dαΊ§n, mα»t α»©ng dα»₯ng cΓ³ thα» sα» dα»₯ng sα» nhαΊn dαΊ‘ng duy nhαΊ₯t trΓͺn toΓ n cαΊ§u (GUID) Δα» xΓ‘c Δα»nh ngΖ°α»i dΓΉng. α» ΔΓ’y, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» khΓ΄ng ΔoΓ‘n hoαΊ·c dα»± ΔoΓ‘n Δược mΓ£ Δα»nh danh cho ngΖ°α»i dΓΉng khΓ‘c. Tuy nhiΓͺn, cΓ‘c GUID của ngΖ°α»i dΓΉng khΓ‘c cΓ³ thα» Δược tiαΊΏt lα» α» nΖ‘i khΓ‘c trong α»©ng dα»₯ng nΖ‘i ngΖ°α»i dΓΉng Δược tham chiαΊΏu, chαΊ³ng hαΊ‘n nhΖ° tin nhαΊ―n hoαΊ·c bΓ i ΔΓ‘nh giΓ‘ của ngΖ°α»i dΓΉng.
Mα»t sα» trΖ°α»ng hợp, α»©ng dα»₯ng phΓ‘t hiα»n khi nΓ o ngΖ°α»i dΓΉng khΓ΄ng Δược phΓ©p truy cαΊp tΓ i nguyΓͺn vΓ trαΊ£ vα» chuyα»n hΖ°α»ng ΔαΊΏn trang ΔΔng nhαΊp. Tuy nhiΓͺn, response cΓ³ chα»©a chuyα»n hΖ°α»ng vαΊ«n cΓ³ thα» bao gα»m mα»t sα» dα»― liα»u nhαΊ‘y cαΊ£m thuα»c vα» ngΖ°α»i dΓΉng Δược nhαΊ―m mα»₯c tiΓͺu, vΓ¬ vαΊy cuα»c tαΊ₯n cΓ΄ng vαΊ«n thΓ nh cΓ΄ng.
Horizontal to vertical privilege escalation
ThΓ΄ng thΖ°α»ng, mα»t cuα»c tαΊ₯n cΓ΄ng leo thang ΔαΊ·c quyα»n theo chiα»u ngang cΓ³ thα» Δược chuyα»n thΓ nh mα»t cuα»c tαΊ₯n cΓ΄ng leo thang ΔαΊ·c quyα»n theo chiα»u dα»c, bαΊ±ng cΓ‘ch lΓ m αΊ£nh hΖ°α»ng ΔαΊΏn ngΖ°α»i dΓΉng cΓ³ ΔαΊ·c quyα»n hΖ‘n. VΓ dα»₯: leo thang theo chiα»u ngang cΓ³ thα» cho phΓ©p kαΊ» tαΊ₯n cΓ΄ng ΔαΊ·t lαΊ‘i hoαΊ·c lαΊ₯y mαΊt khαΊ©u của ngΖ°α»i dΓΉng khΓ‘c. NαΊΏu kαΊ» tαΊ₯n cΓ΄ng nhαΊ―m mα»₯c tiΓͺu ngΖ°α»i dΓΉng quαΊ£n trα» vΓ xΓ’m phαΊ‘m tΓ i khoαΊ£n của hα», thΓ¬ hα» cΓ³ thα» cΓ³ quyα»n truy cαΊp quαΊ£n trα» vΓ do ΔΓ³ thα»±c hiα»n leo thang ΔαΊ·c quyα»n theo chiα»u dα»c.
VΓ dα»₯: kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» cΓ³ quyα»n truy cαΊp vΓ o trang tΓ i khoαΊ£n của ngΖ°α»i dΓΉng khΓ‘c bαΊ±ng cΓ‘ch sα» dα»₯ng kα»Ή thuαΊt giαΊ£ mαΊ‘o tham sα» ΔΓ£ Δược mΓ΄ tαΊ£ cho viα»c leo thang ΔαΊ·c quyα»n theo chiα»u ngang:
NαΊΏu ngΖ°α»i dΓΉng mα»₯c tiΓͺu lΓ quαΊ£n trα» viΓͺn α»©ng dα»₯ng, thΓ¬ kαΊ» tαΊ₯n cΓ΄ng sαΊ½ cΓ³ quyα»n truy cαΊp vΓ o trang tΓ i khoαΊ£n quαΊ£n trα». Trang nΓ y cΓ³ thα» tiαΊΏt lα» mαΊt khαΊ©u của quαΊ£n trα» viΓͺn hoαΊ·c cung cαΊ₯p phΖ°Ζ‘ng tiα»n thay Δα»i mαΊt khαΊ©u hoαΊ·c cΓ³ thα» cung cαΊ₯p quyα»n truy cαΊp trα»±c tiαΊΏp vΓ o chα»©c nΔng ΔαΊ·c quyα»n.
Insecure direct object references (IDOR)
Tham chiαΊΏu Δα»i tượng trα»±c tiαΊΏp khΓ΄ng an toΓ n (IDOR) lΓ mα»t loαΊ‘i lα» hα»ng kiα»m soΓ‘t truy cαΊp phΓ‘t sinh khi α»©ng dα»₯ng sα» dα»₯ng ΔαΊ§u vΓ o do ngΖ°α»i dΓΉng cung cαΊ₯p Δα» truy cαΊp trα»±c tiαΊΏp cΓ‘c Δα»i tượng. ThuαΊt ngα»― IDOR ΔΓ£ Δược phα» biαΊΏn khi nΓ³ xuαΊ₯t hiα»n trong Top 10 OWASP 2007. Tuy nhiΓͺn, ΔΓ³ chα» lΓ mα»t vΓ dα»₯ vα» nhiα»u sai lαΊ§m khi triα»n khai kiα»m soΓ‘t truy cαΊp cΓ³ thα» dαΊ«n ΔαΊΏn viα»c kiα»m soΓ‘t truy cαΊp bα» phΓ‘ vα»‘. CΓ‘c lα» hα»ng IDOR thΖ°α»ng liΓͺn quan ΔαΊΏn viα»c leo thang ΔαΊ·c quyα»n theo chiα»u ngang, nhΖ°ng chΓΊng cΕ©ng cΓ³ thα» phΓ‘t sinh liΓͺn quan ΔαΊΏn leo thang ΔαΊ·c quyα»n theo chiα»u dα»c.
Lα» hα»ng IDOR vα»i tham chiαΊΏu trα»±c tiαΊΏp ΔαΊΏn cΓ‘c Δα»i tượng cΖ‘ sα» dα»― liα»u
HΓ£y xem xΓ©t mα»t trang web sα» dα»₯ng URL:
NαΊΏu khΓ΄ng cΓ³ cΓ‘c biα»n phΓ‘p kiα»m soΓ‘t nΓ o khΓ‘c, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» chα» cαΊ§n sα»a Δα»i giΓ‘ trα» customer_number
, bα» qua cΓ‘c kiα»m soΓ‘t truy cαΊp Δα» xem hα» sΖ‘ của cΓ‘c khΓ‘ch hΓ ng khΓ‘c. ΔΓ’y lΓ mα»t vΓ dα»₯ vα» lα» hα»ng IDOR dαΊ«n ΔαΊΏn leo thang ΔαΊ·c quyα»n theo chiα»u ngang.
Lα» hα»ng IDOR vα»i tham chiαΊΏu trα»±c tiαΊΏp ΔαΊΏn cΓ‘c tα»p tΔ©nh
CΓ‘c lα» hα»ng IDOR thΖ°α»ng phΓ‘t sinh khi cΓ‘c tΓ i nguyΓͺn nhαΊ‘y cαΊ£m nαΊ±m trong cΓ‘c tα»p tΔ©nh trΓͺn hα» thα»ng tα»p phΓa mΓ‘y chủ. VΓ dα»₯: mα»t trang web cΓ³ thα» lΖ°u cΓ‘c bαΊ£n ghi tin nhαΊ―n trΓ² chuyα»n vΓ o ΔΔ©a bαΊ±ng cΓ‘ch sα» dα»₯ng tΓͺn tα»p tΔng dαΊ§n vΓ cho phΓ©p ngΖ°α»i dΓΉng truy xuαΊ₯t cΓ‘c bαΊ£n ghi nΓ y bαΊ±ng cΓ‘ch truy cαΊp vΓ o mα»t URL nhΖ° sau:
Khi ΔΓ³ kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» chα» cαΊ§n sα»a Δα»i tΓͺn tα»p Δα» truy xuαΊ₯t bαΊ£n ghi do ngΖ°α»i dΓΉng khΓ‘c tαΊ‘o vΓ cΓ³ khαΊ£ nΔng lαΊ₯y Δược thΓ΄ng tin ΔΔng nhαΊp của ngΖ°α»i dΓΉng vΓ dα»― liα»u nhαΊ‘y cαΊ£m khΓ‘c.
Access control vulnerabilities in multi-step processes
Nhiα»u trang web thα»±c hiα»n cΓ‘c chα»©c nΔng quan trα»ng qua mα»t loαΊ‘t cΓ‘c bΖ°α»c.
VΓ dα»₯: chα»©c nΔng quαΊ£n trα» Δα» cαΊp nhαΊt chi tiαΊΏt ngΖ°α»i dΓΉng cΓ³ thα» bao gα»m cΓ‘c bΖ°α»c sau:
TαΊ£i biα»u mαΊ«u cΓ³ chα»©a thΓ΄ng tin chi tiαΊΏt cho mα»t ngΖ°α»i dΓΉng cα»₯ thα».
Gα»i cΓ‘c thay Δα»i.
Xem lαΊ‘i cΓ‘c thay Δα»i vΓ xΓ‘c nhαΊn.
ΔΓ΄i khi, mα»t trang web sαΊ½ thα»±c hiα»n cΓ‘c biα»n phΓ‘p kiα»m soΓ‘t truy cαΊp nghiΓͺm ngαΊ·t Δα»i vα»i mα»t sα» bΖ°α»c nΓ y, nhΖ°ng lαΊ‘i bα» qua nhα»―ng bΖ°α»c khΓ‘c.
VΓ dα»₯: giαΊ£ sα» cΓ‘c Δiα»u khiα»n truy cαΊp Δược Γ‘p dα»₯ng chΓnh xΓ‘c cho bΖ°α»c ΔαΊ§u tiΓͺn vΓ bΖ°α»c thα»© hai, nhΖ°ng khΓ΄ng Γ‘p dα»₯ng cho bΖ°α»c thα»© ba. Vα» mαΊ·t hiα»u quαΊ£, trang web giαΊ£ Δα»nh rαΊ±ng ngΖ°α»i dΓΉng sαΊ½ chα» ΔαΊ‘t Δược bΖ°α»c 3 nαΊΏu hα» ΔΓ£ hoΓ n thΓ nh cΓ‘c bΖ°α»c ΔαΊ§u tiΓͺn, Δược kiα»m soΓ‘t ΔΓΊng cΓ‘ch. TαΊ‘i ΔΓ’y, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» truy cαΊp trΓ‘i phΓ©p vΓ o chα»©c nΔng bαΊ±ng cΓ‘ch bα» qua hai bΖ°α»c ΔαΊ§u tiΓͺn vΓ trα»±c tiαΊΏp gα»i yΓͺu cαΊ§u cho bΖ°α»c thα»© ba vα»i cΓ‘c tham sα» bαΊ―t buα»c.
Referer-based access control
Mα»t sα» trang web kiα»m soΓ‘t quyα»n truy cαΊp dα»±a trΓͺn Referer
header Δược gα»i trong HTTP requesr. Referer
header thΖ°α»ng Δược thΓͺm vΓ o cΓ‘c yΓͺu cαΊ§u của trΓ¬nh duyα»t Δα» cho biαΊΏt trang mΓ tα»« ΔΓ³ mα»t yΓͺu cαΊ§u Δược bαΊ―t ΔαΊ§u.
VΓ dα»₯: giαΊ£ sα» mα»t α»©ng dα»₯ng thα»±c thi mαΊ‘nh mαΊ½ quyα»n kiα»m soΓ‘t truy cαΊp Δα»i vα»i trang quαΊ£n trα» chΓnh tαΊ‘i /admin
, nhΖ°ng Δα»i vα»i cΓ‘c trang phα»₯, chαΊ³ng hαΊ‘n nhΖ° /admin/deleteUser
chα» kiα»m tra Referer
Header. NαΊΏu Referer
Header chα»©a /admin
URL chΓnh, thΓ¬ yΓͺu cαΊ§u Δược cho phΓ©p.
Trong tΓ¬nh huα»ng nΓ y, vΓ¬ Referer
kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» kiα»m soΓ‘t hoΓ n toΓ n header, chΓΊng cΓ³ thα» giαΊ£ mαΊ‘o cΓ‘c yΓͺu cαΊ§u trα»±c tiαΊΏp ΔαΊΏn cΓ‘c trang con nhαΊ‘y cαΊ£m, cung cαΊ₯p Referer
header bαΊ―t buα»c vΓ do ΔΓ³ cΓ³ Δược quyα»n truy cαΊp trΓ‘i phΓ©p.
CΓ‘ch ngΔn chαΊ·n cΓ‘c lα» hα»ng access control
CΓ‘c lα» hα»ng access control nΓ³i chung cΓ³ thα» Δược ngΔn chαΊ·n bαΊ±ng cΓ‘ch thα»±c hiα»n cΓ‘ch tiαΊΏp cαΊn chuyΓͺn sΓ’u vα» phΓ²ng thủ vΓ Γ‘p dα»₯ng cΓ‘c nguyΓͺn tαΊ―c sau:
KhΓ΄ng bao giα» chα» dα»±a vΓ o
obfuscation
Δα» kiα»m soΓ‘t truy cαΊp.Trα»« khi mα»t tΓ i nguyΓͺn Δược thiαΊΏt kαΊΏ Δα» cΓ³ thα» truy cαΊp cΓ΄ng khai, hΓ£y tα»« chα»i quyα»n truy cαΊp theo mαΊ·c Δα»nh.
BαΊ₯t cα»© khi nΓ o cΓ³ thα», hΓ£y sα» dα»₯ng mα»t cΖ‘ chαΊΏ toΓ n α»©ng dα»₯ng Δα» thα»±c thi cΓ‘c biα»n phΓ‘p access control.
α» cαΊ₯p Δα» code, bαΊ―t buα»c cΓ‘c nhΓ phΓ‘t triα»n phαΊ£i khai bΓ‘o quyα»n truy cαΊp Δược phΓ©p cho mα»i tΓ i nguyΓͺn vΓ tα»« chα»i quyα»n truy cαΊp theo mαΊ·c Δα»nh.
Kiα»m tra kα»Ή lΖ°α»‘ng vΓ thα» nghiα»m cΓ‘c biα»n phΓ‘p kiα»m soΓ‘t truy cαΊp Δα» ΔαΊ£m bαΊ£o chΓΊng Δang hoαΊ‘t Δα»ng nhΖ° thiαΊΏt kαΊΏ.
Tα»ng kαΊΏt
CαΊ£m Ζ‘n cΓ‘c bαΊ‘n ΔΓ£ Δα»c bΓ i viαΊΏt của mΓ¬nh! Nhα»―ng bΓ i viαΊΏt trΓͺn mΓ¬nh Δα»u vα»«a hα»c vΓ dα»±a theo PortSwign.
Last updated