Magic Spell νλ‘κ·Έλ¨μ μ£Όλ¬Έμ μ λ ₯λ°μΌλ©΄ ν΄λΉ μ£Όλ¬Έμ λ°λΌ μ ν΄μ§ λͺ λ Ήμ μ€ννλ νλ‘κ·Έλ¨μ΄λ€.
λ°λΌμ νλ‘κ·Έλ¨ μμλ μ£Όλ¬Έμ λΉκ΅νλ cmp λͺ λ Ήμ΄ μ‘΄μ¬ν κ² μ΄λΌ μ μΆν λ€ μ κ·Όνλ€.
main ν¨μμ λ΄μ©μ spell1 ν¨μλ₯Ό μ€ννλ κ²μ μ μΈνκ³ λ λ³ λ΄μ©μ΄ μμλ€.
λ°λΌμ spell1 ν¨μμ λ΄μ©μ ν¨κ» νμΈνλ€.
spell1 ν¨μμ μμν λ°μ κ°μ΄ λΉκ΅νλ λΆλΆμ΄ μ‘΄μ¬νλ€. 0x4dμ λΉκ΅νλ κ²μΌλ‘ 보μ, λ¬Έμμ΄ "M"μ΄ μ λ ₯λλ©΄ κ°μ κ²μΌλ‘ μΈμλμ΄ μλμ jumpκ° λμ§ μκ³ spell2λ‘ λμ΄κ° μ μμμ μ μ μλ€.
λ¬Έμμ΄ μ λ ₯ μ§μ μ 보면, 0x7fffffffe4c0 μμΉ, μ¦ rsiμ μ λ ₯λ°λ λ¬Έμμ΄μ λ€μ΄κ°μ μ μ μλ€. λΉκ΅νλ λΆλΆμ rbp-1, μ¦ μ λ ₯λ°λκ³³λ³΄λ€ 8*4 λ κ° κ³³μμ νμΈνλ―λ‘, μ΄λ° ν¬κΈ°μ μμμ λ¬Έμμ΄λ‘ μ±μμ£Όλ©΄ λ κ²μ΄λΌ μκ°νλ€.
νμ§λ§ μ¬κΈ°μμ κ°κ³Όν κ²μ΄ νλ μλλ°, rbp-1 μ΄λ―λ‘ 8*4λ³΄λ€ 1κ° μμ κ³³μμ νμΈνλ€λ κ²κ³Ό, BYTE PTR μ΄λ―λ‘ κΈμ 1κ°λ§ νμΈνλ€λ μ μ΄μλ€. (μ¬κΈ°μμ 20μκ° λκ² κ±Έλ¦Ό)
λ°λΌμ μμ 31κ° λ¬Έμλ₯Ό μ무거λ μ±μ°κ³ , λ§μ§λ§ λ¬Έμλ₯Ό M μΌλ‘ μ λ ₯νλ€.
μλν λ°μ κ°μ΄ overflowκ° λ°μνμ¬ jumpκ° μνλμ§ μλλ€κ³ νμλμλ€.
spell2 ν¨μ μμλ λ΄λΆμ λΉκ΅νλ λΆλΆμ΄ μλ€. μ¬κΈ°μμλ λ¬Έμμ΄μ λΉκ΅νκΈ° μν΄ strncmp ν¨μκ° μ¬μ©λμκ³ , μ΄ ν¨μμ λ€μ΄κ°λ λ¬Έμμ΄ 2κ°κ° rsiμ rdiμ μ€μ λμλ€.
κ° λ¬Έμμ΄μ νμΈνκΈ° μν΄ x/s λͺ λ Ήμ μ¬μ©νλ€. x/sλ νΉμ λ©λͺ¨λ¦¬ μμΉμ λ΄μ©μ λ¬Έμμ΄λ‘ 보μ¬μ€λ€.
νμΈκ²°κ³Ό 첫λ²μ§Έ μμΉλ "pwnable!", λλ²μ§Έ μμΉλ λΉμ΄μλ€. μμμ μ λ ₯λλ scanfμ μμΉμ μλ μ£Όμμ μ£Όμκ° μ°¨μ΄κ° 16byteλ°μ μ°¨μ΄λμ§ μκΈ° λλ¬Έμ, overflowλ₯Ό μ΄μ©ν΄ λλ²μ§Έ μμΉλ₯Ό μ±μ°λ©΄ λ κ²μΌλ‘ 보μΈλ€.
'μ°¨μ΄λλ μΉΈ μ (16) + μ λ ₯ν λ¬Έμμ΄'μ ν΅ν΄ μ λ ₯κ°μ μ νλ€
μ μμ μΌλ‘ μλνλ μμΉμ μλνλ λ¬Έμμ΄μ΄ λ€μ΄κ°μμ νμΈν μ μλ€.
λ§μνΈνκ² niλ₯Ό μ°ννλ©° λ€μ λ¨κ³λ‘ μ΄λνλ€.
μ΄λ₯Ό ν΅ν΄ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ€. μμ μ λ ₯λ€μ νμ΄μ¬ μ½λλ‘ μμ±νμ¬ μ»€λ§¨λλΌμΈμμ νμ΄νλΌμΈμ ν΅ν΄ μ λ ₯μ μλνμμΌ°λ€.
print "M"*32 + "\n" + "M"*16 + "pwnable!"
μ΄λ₯Ό μ격μλ² νμΌμμ μ€νν΄ flagλ₯Ό νλνλ€.
μλ£!
'π 보μ,μ λ³΄λ³΄νΈ > π [STYDY] 리λ²μ±' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ DoPwn ] Week2 - "assembly" Write Up (0) | 2021.11.30 |
---|---|
[ DoPwn ] Week1 - "system" Write Up (0) | 2021.11.22 |
[ DoPwn ] Week1 - "Student ID" Write Up (0) | 2021.11.20 |
[Whois-Internal] "EasyReverseMe" Write-Up (0) | 2021.11.08 |
[root-me.org] "reversing - PE x86 -0 protection" Write Up (0) | 2021.11.08 |