πOS Command injection
Server Side Vul
Last updated
Server Side Vul
Last updated
Trong section nΓ y, chΓΊng ta sαΊ½ cΓΉng nhau nghiΓͺn cα»©u vα» OS command injection, chΓΊng ta sαΊ½ xem lΓ m sao Δα» phΓ‘t hiα»n vΓ khai thΓ‘c lα» hα»ng , cΓΉng giαΊ£i thΓch mα»t sα» lα»nh vΓ kα»Ή thuαΊt hα»―u Γch cho cΓ‘c OS khΓ‘c nhau, vΓ tΓ³m tαΊ―t cΓ‘ch ngΔn chαΊ·n viα»c ΔΖ°a lα»nh vΓ o OS.
OS command injection( cΓ³ thα» gα»i nΓ³ lΓ shell injection) is mα»t lα» hα»ng web mΓ cho phΓ©p kαΊ» tαΊ₯n cΓ΄ng tiαΊΏn hΓ nh cΓ‘c lα»nh của OS bαΊ₯t kα»³ trΓͺn server mΓ α»©ng dα»₯ng Δang chαΊ‘y vΓ cΓ‘c thΖ°α»ng lΓ m hα»ng cΓ‘c loαΊ‘i α»©ng dα»₯ng vΓ data trong nΓ³. ThΓ΄ng thΖ°α»ng, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» tαΊn dα»₯ng lα» hα»ng tiΓͺm lα»nh của hα» Δiα»u hΓ nh Δα» xΓ’m phαΊ‘m cΓ‘c phαΊ§n khΓ‘c của cΖ‘ sα» hαΊ‘ tαΊ§ng lΖ°u trα»―, khai thΓ‘c cΓ‘c mα»i quan hα» tin cαΊy Δα» xoay trα»₯c cuα»c tαΊ₯n cΓ΄ng sang cΓ‘c hα» thα»ng khΓ‘c trong tα» chα»©c.
CΓ³ thα» sα» dα»₯ng Burp suite Δα» quΓ©t lα» hα»ng nΓ y
Xem xΓ©t mα»t α»©ng dα»₯ng shopping rαΊ±ng cho phΓ©p ngΖ°α»i dΓΉng cΓ³ thα» xem cΓ³ hay khΓ΄ng mαΊ·t hΓ ng trong kho hay khΓ΄ng trong mα»t store cα»₯ thα» . ΔΓ’y lΓ thΓ΄ng tin Δược truy cαΊp qua mα»t URL nhΖ° nΓ y:
https://insecure-website.com/stockStatus?productID=381&storeID=29
Δα» cung cαΊ₯p thΓ΄ng tin kho hΓ ng, α»©ng dα»₯ng phαΊ£i query nhiα»u hα» thα»ng kαΊΏ thα»«a khΓ‘c nhau. Do lΓ½ do trΖ°α»c ΔΓ³, chα»©c nΔng Δược triα»n khai bαΊ±ng cΓ‘ch gα»i lα»nh shell vα»i sαΊ£n phαΊ©m vΓ lΖ°u trα»― ID dΖ°α»i dαΊ‘ng aruments:
stockreport.pl 381 29
Lα»nh nΓ y xuαΊ₯t ra trαΊ‘ng thΓ‘i cΓ²n hΓ ng cho mαΊ·t hΓ ng ΔΓ£ chα» Δα»nh, Δược trαΊ£ lαΊ‘i cho ngΖ°α»i dΓΉng. VΓ¬ α»©ng dα»₯ng khΓ΄ng triα»n khai biα»n phΓ‘p bαΊ£o vα» chα»ng lαΊ‘i OS command injection, kαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» gα»i thΓ΄ng tin ΔαΊ§u vΓ o sau Δα» thα»±c hiα»n mα»t lα»nh tΓΉy Γ½:
& echo aiwefwlguh &
NαΊΏu input nΓ y Δược gα»i vΓ o tham sα» productID
sau ΔΓ³ lα»nh sαΊ½ Δược tiαΊΏn hΓ nh bα»i α»©ng dα»₯ng
stockreport.pl & echo aiwefwlguh & 29
Lα»nh echo
ΔΖ‘n giαΊ£n lΓ gΓ’y ra chuα»i cung cαΊ₯p bα» lαΊ·p lαΊ‘i α» output vΓ ΔΓ³ lΓ cΓ‘ch hα»―u Γch Δα» test cho mΓ΄t vΓ i loαΊ‘i của OS command injection. KΓ½ &
tα»± lΓ mα»t dαΊ₯u phΓ’n tΓ‘ch lα»nh shell, vΓ vΓ¬ vαΊy nhα»―ng gΓ¬ Δược thα»±c thi thα»±c sα»± lΓ ba lα»nh riΓͺng biα»t nα»i tiαΊΏp nhau. KαΊΏt quαΊ£ lΓ kαΊΏt quαΊ£ trαΊ£ vα» cho ngΖ°α»i dΓΉng lΓ :
Ba dΓ²ng ΔαΊ§u ra chα»©ng minh rαΊ±ng:
Lα»nh ban ΔαΊ§u stockreport.pl
Δược thα»±c thi mΓ khΓ΄ng cΓ³ Δα»i sα» mong Δợi của nΓ³ vΓ do ΔΓ³ trαΊ£ vα» mα»t thΓ΄ng bΓ‘o lα»i.
Lα»nh Δược ΔΖ°a echo
vΓ o ΔΓ£ Δược thα»±c thi vΓ chuα»i Δược cung cαΊ₯p Δược lαΊ·p lαΊ‘i trong ΔαΊ§u ra.
Δα»i sα» ban ΔαΊ§u 29
Δược thα»±c thi dΖ°α»i dαΊ‘ng mα»t lα»nh, Δiα»u nΓ y gΓ’y ra lα»i.
Viα»c ΔαΊ·t dαΊ₯u phΓ’n tΓ‘ch lα»nh bα» sung &
sau lα»nh Δược ΔΖ°a vΓ o thΖ°α»ng hα»―u Γch vΓ¬ nΓ³ tΓ‘ch lα»nh Δược tiΓͺm ra khα»i bαΊ₯t kα»³ thα»© gΓ¬ sau Δiα»m tiΓͺm. Δiα»u nΓ y lΓ m giαΊ£m khαΊ£ nΔng nhα»―ng gΓ¬ tiαΊΏp theo sαΊ½ ngΔn khΓ΄ng cho lα»nh Δược ΔΖ°a vΓ o thα»±c thi.
Khi bαΊ‘n xΓ‘c Δα»nh mα»t lα» hα»ng Cmd Injection, nΓ³ thα»±c sα»± hα»―u Γch Δα» khai thΓ‘c mα»t vΓ i cΓ’u lα»nh khαΊ£ dα»₯ng chα»©a thΓ΄ng tin vα» hα» thα»ng của mΓ‘y chủ. ΔΓ’y lΓ mα»t vΓ i cΓ’u lα»nh Δược sα» dα»₯ng trΓͺn hai nα»n tαΊ£ng Linux vΓ Windows:
Nhiα»u trΖ°α»ng hợp OS Cmd Injection lΓ lα» hα»ng blinh(mΓΉ) - nΓ³ cΓ³ nghΔ©a lΓ α»©ng dα»₯ng sαΊ½ khΓ΄ng return lαΊ‘i output tα»« cΓ’u lα»nh trong phαΊ£n hα»i HTTP. Lα» hα»ng Blind vαΊ«n cΓ³ thα» khai thΓ‘c nhΖ°ng cαΊ§n dα»₯ng cΓ‘c kα»Ή thuαΊt khΓ‘c nhau.
ChΓΊng ta xem xΓ©t mα»t trang web cho phΓ©p ngΖ°α»i dΓΉng gα»i phαΊ£n hα»i vα» trang web. NgΖ°α»i dΓΉng nhαΊp Δα»a chα» email vΓ thΓ΄ng bΓ‘o phαΊ£n hα»i của hα». Sau ΔΓ³, α»©ng dα»₯ng phΓa mΓ‘y chủ sαΊ½ tαΊ‘o mα»t email gα»i tα»i quαΊ£n trα» viΓͺn trang cΓ³ chα»©a phαΊ£n hα»i. Δα» lΓ m Δiα»u nΓ y, nΓ³ gα»i mail
chΖ°Ζ‘ng trΓ¬nh vα»i cΓ‘c chi tiαΊΏt ΔΓ£ gα»i. VΓ dα»₯:
Output tα»« cΓ’u lα»nh mail khΓ΄ng Δược trαΊ£ trong phαΊ£n hα»i của α»©ng dα»₯ng, vαΊy nαΊΏu sα» dα»₯ng payload hay cΓ’u lα»nh echo
cΕ©ng khΓ΄ng cΓ³ output trαΊ£ vα». Trong trΖ°α»ng hợp nΓ y, bαΊ‘n cΓ³ thα» sα» dα»₯ng mα»t loαΊ‘t cΓ‘c kα»Ή thuαΊt khΓ‘c Δα» phΓ‘t hiα»n vΓ khai thΓ‘c lα» hα»ng.
ChΓΊng ta cΓ³ thα» sα» dα»₯ng mα»t injected command nhΖ° lΓ trigger mα»t thα»i gian delay, nΓ³ cho phΓ©p bαΊ‘n confirm rαΊ±ng cΓ’u lα»nh ΔΓ£ Δược thα»±c hiα»n dα»±a trΓͺn thα»i gian mΓ α»©ng dα»₯ng phαΊ£n hα»i. Lα»nh Ping lΓ mα»t lα»nh Δα» lΓ m Δiα»u nΓ y vΓ¬ nΓ³ cho phΓ©p bαΊ‘n chα» Δα»nh sα» lượng gΓ³i ICMP sαΊ½ gα»i vΓ do ΔΓ³, thα»i gian Δα» lα»nh chαΊ‘y:
Lα»nh nΓ y sαΊ½ khiαΊΏn α»©ng dα»₯ng ping bα» Δiα»u hợp mαΊ‘ng loopback của nΓ³ trong 10 giΓ’y.
ChΓΊng ta cΓ³ thα» chuyα»n hΖ°α»ng ΔαΊ§u ra tα»« lα»nh Δược chΓ¨n vΓ o mα»t tα»p trong thΖ° mα»₯c gα»c của web(root
) mΓ sau ΔΓ³ bαΊ‘n cΓ³ thα» truy xuαΊ₯t bαΊ±ng trΓ¬nh duyα»t. VΓ dα»₯: nαΊΏu α»©ng dα»₯ng phα»₯c vα»₯ tΓ i nguyΓͺn tΔ©nh (serves static resources
) tα»« vα» trΓ hα» thα»ng tα»p /var/www/static
thΓ¬ bαΊ‘n cΓ³ thα» gα»i thΓ΄ng tin ΔαΊ§u vΓ o sau:
KΓ½ >
tα»± gα»i ΔαΊ§u ra tα»« whoami
lα»nh ΔαΊΏn tα»p Δược chα» Δα»nh. Sau ΔΓ³, bαΊ‘n cΓ³ thα» sα» dα»₯ng trΓ¬nh duyα»t Δα» tΓ¬m nαΊ‘p https://vulnerable-website.com/whoami.txt
Δα» truy xuαΊ₯t tα»p vΓ xem ΔαΊ§u ra tα»« lα»nh Δược ΔΖ°a vΓ o.
ChΓΊng ta cΓ³ thα» sα» dα»₯ng mα»t lα»nh Δược ΔΖ°a vΓ o sαΊ½ kΓch hoαΊ‘t tΖ°Ζ‘ng tΓ‘c mαΊ‘ng ngoΓ i bΔng tαΊ§n vα»i hα» thα»ng mΓ bαΊ‘n kiα»m soΓ‘t, sα» dα»₯ng cΓ‘c kα»Ή thuαΊt OAST. VΓ dα»₯:
Payload
nΓ y sα» dα»₯ng lα»nh nslookup
Δα» thα»±c hiα»n tra cα»©u DNS cho miα»n Δược chα» Δα»nh. KαΊ» tαΊ₯n cΓ΄ng cΓ³ thα» theo dΓ΅i quΓ‘ trΓ¬nh tra cα»©u Δược chα» Δα»nh xαΊ£y ra vΓ do ΔΓ³ phΓ‘t hiα»n ra rαΊ±ng lα»nh ΔΓ£ Δược ΔΖ°a vΓ o thΓ nh cΓ΄ng.
KΓͺnh ngoΓ i bΔng tαΊ§n cΕ©ng cung cαΊ₯p mα»t cΓ‘ch dα» dΓ ng Δα» trΓch xuαΊ₯t ΔαΊ§u ra tα»« cΓ‘c lα»nh Δược ΔΖ°a vΓ o:
Δiα»u nΓ y sαΊ½ gΓ’y ra tra cα»©u DNS Δα»i vα»i miα»n của kαΊ» tαΊ₯n cΓ΄ng cΓ³ chα»©a kαΊΏt quαΊ£ của lα»nh whoami
:
Note: DαΊ₯u `command`
Δα» execute trong server mΓ‘y chủ. Dα»
hiα»u hΖ‘n lΓ bαΊ‘n test echo `ls`
trong ubuntu sαΊ½ rΓ΅...
Mα»t loαΊ‘t cΓ‘c siΓͺu kΓ½ tα»± shell cΓ³ thα» Δược sα» dα»₯ng Δα» thα»±c hiα»n cΓ‘c cuα»c tαΊ₯n cΓ΄ng tiΓͺm lα»nh hα» Δiα»u hΓ nh.
Mα»t sα» kΓ½ tα»± hoαΊ‘t Δα»ng nhΖ° cΓ‘c dαΊ₯u tΓ‘ch lα»nh, cho phΓ©p cΓ‘c lα»nh Δược xΓ’u chuα»i lαΊ‘i vα»i nhau. CΓ‘c trΓ¬nh tΓ‘ch lα»nh sau hoαΊ‘t Δα»ng trΓͺn cαΊ£ hα» thα»ng dα»±a trΓͺn Windows vΓ Unix:
&
&&
|
||
CΓ‘c lα»nh sau chα» hoαΊ‘t Δα»ng trΓͺn cΓ‘c hα» thα»ng dα»±a trΓͺn Unix:
;
Newline (0x0a
or )
TrΓͺn cΓ‘c hα» thα»ng dα»±a trΓͺn Unix, bαΊ‘n cΕ©ng cΓ³ thα» sα» dα»₯ng backticks hoαΊ·c kΓ½ tα»± $
Δα» thα»±c hiα»n thα»±c thi nα»i tuyαΊΏn lα»nh Δược ΔΖ°a vΓ o trong lα»nh gα»c:
`
injected command `
$(
injected command )
LΖ°u Γ½ rαΊ±ng cΓ‘c siΓͺu kΓ½ tα»± shell khΓ‘c nhau cΓ³ cΓ‘c hΓ nh vi khΓ‘c nhau mα»t cΓ‘ch tinh vi cΓ³ thα» αΊ£nh hΖ°α»ng ΔαΊΏn viα»c liα»u chΓΊng cΓ³ hoαΊ‘t Δα»ng trong mα»t sα» tΓ¬nh huα»ng nhαΊ₯t Δα»nh hay khΓ΄ng vΓ liα»u chΓΊng cΓ³ cho phΓ©p truy xuαΊ₯t ΔαΊ§u ra lα»nh trong dαΊ£i hay chα» hα»―u Γch cho viα»c khai thΓ‘c mΓΉ quΓ‘ng hay khΓ΄ng.
ΔΓ΄i khi, ΔαΊ§u vΓ o mΓ bαΊ‘n kiα»m soΓ‘t xuαΊ₯t hiα»n trong dαΊ₯u ngoαΊ·c kΓ©p trong lα»nh ban ΔαΊ§u. Trong tΓ¬nh huα»ng nΓ y, bαΊ‘n cαΊ§n chαΊ₯m dα»©t ngα»― cαΊ£nh Δược trΓch dαΊ«n (sα» dα»₯ng "
hoαΊ·c '
) trΖ°α»c khi sα» dα»₯ng cΓ‘c siΓͺu kΓ½ tα»± shell phΓΉ hợp Δα» ΔΖ°a vΓ o mα»t lα»nh mα»i.
NΓ³i chung ΔΓ΄i khi bαΊ‘n phαΊ£i tα»± debug Δα» ra payload hoΓ n chα»nh cΓ³ thα» exploit Δược trang web cΓ³ lα»i
Cho ΔαΊΏn nay, cΓ‘ch hiα»u quαΊ£ nhαΊ₯t Δα» ngΔn chαΊ·n cΓ‘c lα» hα»ng chΓ¨n lα»nh của hα» Δiα»u hΓ nh lΓ khΓ΄ng bao giα» gα»i cΓ‘c lα»nh của hα» Δiα»u hΓ nh tα»« mΓ£ lα»p α»©ng dα»₯ng. Trong hαΊ§u hαΊΏt mα»i trΖ°α»ng hợp, cΓ³ nhiα»u cΓ‘ch thay thαΊΏ Δα» triα»n khai chα»©c nΔng Δược yΓͺu cαΊ§u bαΊ±ng cΓ‘ch sα» dα»₯ng API nα»n tαΊ£ng an toΓ n hΖ‘n.
NαΊΏu khΓ΄ng thα» gα»i ra cΓ‘c lα»nh của hα» Δiα»u hΓ nh vα»i ΔαΊ§u vΓ o do ngΖ°α»i dΓΉng cung cαΊ₯p, thΓ¬ phαΊ£i thα»±c hiα»n xΓ‘c thα»±c ΔαΊ§u vΓ o mαΊ‘nh mαΊ½. Mα»t sα» vΓ dα»₯ vα» xΓ‘c nhαΊn hiα»u quαΊ£ bao gα»m:
XΓ‘c thα»±c Δα»i vα»i white list cΓ‘c giΓ‘ trα» Δược phΓ©p.
XΓ‘c thα»±c rαΊ±ng ΔαΊ§u vΓ o lΓ mα»t sα».
XΓ‘c thα»±c rαΊ±ng ΔαΊ§u vΓ o chα» chα»©a cΓ‘c kΓ½ tα»± chα»― vΓ sα», khΓ΄ng cΓ³ cΓΊ phΓ‘p hoαΊ·c khoαΊ£ng trαΊ―ng nΓ o khΓ‘c.
KhΓ΄ng bao giα» cα» gαΊ―ng lΓ m sαΊ‘ch ΔαΊ§u vΓ o bαΊ±ng cΓ‘ch thoΓ‘t khα»i cΓ‘c siΓͺu kΓ½ tα»± shell. Trong thα»±c tαΊΏ, Δiα»u nΓ y quΓ‘ dα» xαΊ£y ra lα»i vΓ dα» bα» kαΊ» tαΊ₯n cΓ΄ng lΓ nh nghα» vượt qua.
CαΊ£m Ζ‘n cΓ‘c bαΊ‘n ΔΓ£ Δα»c bΓ i của mΓ¬nh, bΓ i nΓ y dα»±a trΓͺn mΓ¬nh vα»«a lΓ m lab vα»«a viαΊΏt.