[10μ 1μ£Όμ°¨] ν΄νΉ μλ €μ€κ² 9ν: Command Injection μλ
νμΈμ! μ€λμ ν΄νΉ μλ €μ€κ²λ Command Injectionμ
λλ€. π
Command Injectionμ ν΄μνλ©΄ λͺ
λ Ή μ£Όμ
μ·¨μ½μ μΌλ‘, μ΄λ¦μΌλ‘ μ§μν΄λ³΄λ©΄ ν΄μ»€κ° μ
λ ₯ν λͺ
λ Ήμ΄κ° κ·Έλλ‘ μ€νλ μ μλ κ±ΈκΉμ? π±
ν΄λΉ μ·¨μ½μ μ 리λ
μ€ λΏ μλλΌ μΉμμλ λ°μνλ μ·¨μ½μ μ΄μ§λ§, μ΄λ²μλ μμ€ν
ν΄νΉ κ΄μ μμ μ€λͺ
ν΄λ릴κ²μ. π ν΄μ»€λ λ¬΄μ¨ λͺ
λ Ήμ λ΄λ¦΄κΉμ? πΏ μ κΉ, μμνκΈ° μ μ 리λ
μ€μ μ¬λ¬ λ©ν λ¬Έμλ₯Ό μμλμ? π€
; , && , || , < λ± λ©ν λ¬Έμλ₯Ό μ λͺ¨λ₯΄κ² λ€λ©΄ Hackyboizμ ν΄ν€νΌλμλ₯Ό λ³΄κ³ μ€λκ±Έ μΆμ²λ릴κ²μ.μ¬κΈ°μ μ€μν κ²μ 'μν°λ₯Ό ν λ²λ§ λλ¬λ μ¬λ¬ λͺ
λ Ήμ΄λ₯Ό μ€νν μ μλ€λ κ²' μ
λλ€! π€¨ μ΄κ²μ μ΄λ»κ² νμ©ν μ μμμ§ κ°μ΄ μμλ΄μ! Command Injectionμ΄ λμμ? π§
Command Injection(λͺ
λ Ή μ£Όμ
)μ μ¬μ©μμ μ
λ ₯μ νν°λ§νμ§ μμ λ, μ¬μ©μκ° μλνλ λͺ
λ Ήμ μΆκ°μ μΌλ‘ μ½μ
νμ¬ νΈμ€νΈ μ΄μ 체μ (OS)μμ μμμ λͺ
λ Ήμ μ€νν μ μμ΅λλ€.
λνμ μΌλ‘ μ¬μ©μμ μ
λ ₯μ΄
system() ν¨μμ μΈμλ‘ μ¬μ©λκ±°λ μΉμμλ μ¬μ©μ μ 곡 λ°μ΄ν°(μλ²μ μ λ¬νλ μμ, μΏ ν€, HTTP ν€λ λ±)κ° μμ€ν
μμ μ λ¬λ λ μ
λ ₯μ κ²μ¬νμ§ μλ κ²μ΄ λ¬Έμ κ° λ©λλ€.λ°λ‘ μ΄λ, μμμ λ§νλ 'μν°λ₯Ό ν λ²λ§ λλ¬λ μ¬λ¬ λͺ
λ Ήμ΄λ₯Ό μ€νν μ μλ€λ κ²' μ μ§μ€μ μκ² λ€μ. λ°λ‘ νλ‘κ·Έλ¨μ΄ μμνλ λͺ
λ Ήμ΄(command1) νλ λκ²¨μ£Όκ³ , κ·Έ λ€λ‘ μ€ννκ³ μΆμ λͺ
λ Ήμ΄(command2, command3, ..... )λ₯Ό κ»΄λ£μ μ μμ΅λλ€.
μλ¬΄νΌ νμ μ¬μ©μμ μ
λ ₯μ κ²μ¬νμ§ μλ κ²μ΄ λ¬Έμ κ° λλ€μ. π μμ€ν
ν΄νΉ(pwnable) λ¬Έμ λ₯Ό νλ€ λ³΄λ©΄ νμ μ°λ¦¬ κ°μ΄μ λκ·Όκ±°λ¦¬κ² λ§λλκ²
system() ν¨μμ£ ? π system("/bin/sh"); μ ννλ₯Ό κ°μ₯ λ§μ΄ 보μ
¨μ κ² κ°μμ.system() ν¨μμ μνμ int system(const char* command) μΌλ‘ μΈμμΈ command λ₯Ό μμ€ν
μ λͺ
λ Ήμ΄λ‘ λ°λ‘ μ λ¬ν΄μ. λμΆ© λ€μ΄λ μμ² μνν΄λ³΄μ΄λμ?
Command Injectionμ Commandκ° λ°λ‘ μ system() ν¨μμ μΈμλ₯Ό λ§νλ κ²κ°λ€μ.command_injection νμΌμ μ€ννλ©΄ 첫 λ²μ§Έ μΈμκ°μ ν΄λΉνλ cat λͺ
λ Ήμ΄λ‘ νμΌμ μ½μ΅λλ€.νμ§λ§ μ΄λ, commandλ₯Ό νν°λ§νλ κ³Όμ μ΄ μκΈ° λλ¬Έμ μΆκ°μ μΌλ‘
; μ μ¬μ©ν΄μ commandλ₯Ό μΆκ°ν΄λ³Όκ²μ! " " λ₯Ό μ¬μ©νμ¬ νλμ λ¬Έμμ΄λ‘ μ μ‘ν μ μμ΅λλ€."Hacking.txt; cat Hacking_JJack.txt" λ‘ νλ²μ μΈμλ₯Ό 보λ΄μ£Όλ©΄ λ€μ΄μ΄μ Hacking_JJack.txt μ νμΌλ μ½κ² λ©λλ€.νμΌμ SetUID κ° μ€μ λμ΄ μμΌλ©΄ μΌλ° μ¬μ©μλ ν΄λΉ νμΌμ μμ μ κΆνμ κ°μ§κ² λ©λλ€. μ΄λ, command_injection νμΌμ΄ root μμ μμ SetUID κ° μ€μ λμ΄ μλ€λ©΄, root κΆνμ μμ λΈ μλ μκ² λ€μ! π±κ·Έλ¦¬κ³ λ§μ½ rm -rf / λͺ
λ Ήμ λ΄λ¦°λ€λ©΄ μ΄λ€ μΌμ΄ λ²μ΄μ§μ§ μκ°μ‘°μ°¨ νκ³ μΆμ§ μλ€μ. μμ€ν
μ λͺ¨λ νμΌμ κ°μ λ‘ μμ ν΄λ²λ¦½λλ€.Christmas CTF 2020μ oil system λ¬Έμ λ₯Ό μμλμ?
Fabu1ousλμ΄ λ§λ€κ³ κ³ ν΅λ°μ λ¬Έμ μ
λλ€. π€£ μ΄ λ¬Έμ λ νμΌμ μ΄λ¦μ μ¬μ©μκ° μ
λ ₯ν μ μκ³ , Out of Bounds(OOB) μ·¨μ½μ μ μ΄μ©ν΄ 리ν΄κ°μ μ‘°μνλλ‘ λ§λ λ¬Έμ μλλ° μλνμ§ μκ² λ°λ‘ μ΄ Command InjectionμΌλ‘λ νλ ΈκΈ° λλ¬Έμ΄μ£ !
λ°λ‘ μ΄ λΆλΆμ΄ νμΌλͺ
μ νν°λ§νλ ν¨μμμ΅λλ€. μ Command Injectionμ΄ λ°μνλμ§ μμλ³΄μ£ . π΅π» μλ¬Έ μλ¬Έμ(a~z) μ΄μΈμ μ¬μ©μ μ
λ ₯μ΄ λ€μ΄μ€λ©΄ μ’
λ£νλλ‘ νμ§λ§, λͺ¨λ μ
λ ₯μ κ²μ¬νλ κ²μ΄ μλ 첫 λ¬Έμλ§ κ²μ¬νλ€μ. π± λ°λΌμ a;sh λ±μ μ
λ ₯μΌλ‘ μμ μ€νν μ μμλ€κ³ ν΄μ. π€― μ€μ λ‘ λ§μ λΆλ€μ΄ Command InjectionμΌλ‘ νμ΄μ£Όμ
¨μ΅λλ€. μμΈν λ¬Έμ ν΄μ€κ³Ό λΌμ΄νΈμ
μ΄ κΆκΈνμλ©΄ μ°Έκ³ ν΄μ£ΌμΈμ! κΌ λͺ
λ Ήμ΄λ‘λ§ κ³΅κ²©μ΄ κ°λ₯νκ°μ? μλμ! μ€ν¬λ¦½νΈκ° μ€νλ λλ Command Injection 곡격μ μνν μ μμ΅λλ€. μμλ‘ 10μ 2μΌλ μμ±λ λ°λλ°λν ν루νμ€μ κ°μ Έμλ΄€μ΄μ. μμ½νλ©΄ Cisco HyperFlexμμ 3κ°μ§ μ·¨μ½μ μ΄ λ°κ²¬λμλλ° κ·Έ μ€μ CVSSμ μκ° 9.8λ‘ κ°μ₯ λμ μ·¨μ½μ μ΄ λ°λ‘ Command Injectionμ΄λ€μ. μ¬μ보μ΄μ§λ§ κ·Έλ§νΌ κ°λ ₯ν μ·¨μ½μ μ΄λΌλ κ±°κ² μ£ . π μ¬μ©μμκ² κ³μ μ 보λ₯Ό μ
λ ₯λ°μ λ, νμ΄μ¬ μ€ν¬λ¦½νΈλ₯Ό νμ©ν΄ κ³μ μ 보λ₯Ό ν΄μννλ μμ
μ μνν©λλ€. λ°λΌμ ν¨μ€μλ νλμ μλμ κ°μ μ€ν¬λ¦½νΈλ₯Ό μ½μ
νλ©΄ μμ€ν
μ μ¬λΆν
μν¬ μλ μμ΄μ. λ§μ°¬κ°μ§λ‘ μμΈν μ 보λ₯Ό μνμλ©΄ λΈλ‘κ·Έλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ! κ·Έλ¦¬κ³ κ΅¬κ²½λ ν λ².. π μ΄λ»κ² λ§μ μ μμκΉμ?
μ°μ μ¬μ©μμ μ
λ ₯μ κ·Έλλ‘ μμ€ν
λͺ
λ ΉμΌλ‘ μ€ννμ§ μλ κ²μ΄ κ°μ₯ μ’κ² μ§λ§, νμ κ·Έλ΄ μλ μκ² μ£ . π
μμ€ν
λͺ
λ Ήμ μ¬μ©μ μ
λ ₯μ μ¬μ©ν΄μΌ νλ κ²½μ°, μ¬μ©μμ μ
λ ₯μ κ²μ¦νλ κ³Όμ μμ νμ©λ λͺ
λ Ήμ λν νμ΄νΈλ¦¬μ€νΈλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. νμ©λ λͺ
λ Ήμ΄ λλ νμ©λ λ¬Έμ(μλ₯Ό λ€μ΄ μ«μμ μλ¬Έμλ§ νμ©)λ§ μ¬μ©νλλ‘ ν μ μκ² μ£ . λν λ¬Έμμ΄μ κΈΈμ΄λ₯Ό 10μλ‘ μ ννκ±°λ,
&& & || | ; $ > < \ ! λ±μ λ¬Έμλ₯Ό λΈλ리μ€νΈμ ν¬ν¨νμ¬ μ€νμν€μ§ λͺ»νλλ‘ ν΄μΌν©λλ€. λ¬Όλ‘ ;λ§ λΈλ리μ€νΈμ λ£κ³ &&λ νμ©νλ κ·Έλ° μΌμ μμ΄μΌκ² μ£ .κ·Έλ¦¬κ³ νλ‘μΈμ€μκ² μμ
μ νμν μ΅μνμ κΆνλ§ μ 곡νλλ‘ νμ¬ μ¬μ©μκ° λͺ
λ Ήμ μ£Όμ
ν μ μλ κ²½μ°μλ κΆνμ΄ μ νλλλ‘ ν΄μΌν©λλ€. μ€λλ μ½μ΄μ£Όμ
μ κ°μ¬ν©λλ€! π κΈμμΌμλ μ¬λ°λ λ΄μ©μ μ€λΉνμΌλ κΈ°λν΄μ£ΌμΈμ. π μ€λ μ ν΄λλ¦° λ΄μ©μ΄ λ§μμ λμ
¨λμ? μ£Όμ μΉκ΅¬λ€μκ² λ΄μ€λ ν°λ₯Ό μΆμ²ν΄μ£ΌμΈμ! λ€μμ£Όμλ μμ°¬ λ΄μ©μΌλ‘ λμμ€κ² μ΅λλ€. π νΉμ λ§μμ μλλ λΆλΆμ΄ μμλμ? μ¬κΈ°μμ νΌλλ°±μ μ λ¬ν΄μ£ΌμΈμ! μ¬λ¬λΆμ μ견λ€μ μ κ·Ή λ°μν΄μ λμ± μ μ΅ν λ΄μ€λ ν°λ₯Ό λ§λ€μ΄κ°λλ‘ νκ² μ΅λλ€. π ν΄ν€λ³΄μ΄μ¦ |