TCTT2023 : Reverse CTF(Reverse Engineering & Pwnable) writeup

Natsuiro XCN
Sep 16, 2023

--

วิธีที่ 1 Decrypt

ไม่ต้องพูดมากเลย เรามาใช้ DIE Analyse File กันก่อน

.NET FRAMEWORK

เราเห็นว่ามันเป็นตัว .NET นะครับ ทีนี้เราจะใช้ตัว DnSpy ในการ Decompile

ไปที่ Form1 เพื่อ Analyse

 string value = “admin”;
string cipherText = “bR/dyVtoEuyudh4qoLWqkw==”;
string str = “Flag is CTT23{“;
string text = “Login Fail !!! : Invalid Password”;
string text2 = “Login Fail !!! : Invalid Username”;
string keyBase = “yJ4L5ouh5D1n9Yj53S+GkEt/+OW/bn10MfC/opJjZ5g=”;
string vectorBase = “4ZttzHusKGsjzmdQA5+Viw==”;]

เราจะเห็นว่า มันมีการใช้ DecryptDataWithAes ด้วย Data ที่ Provide มา
แล้วเมื่อเราผ่านเงื่อนไข flag และ flag2 มันจะ print text3 ที่เราDecrypt มา

เพราะฉนั้นเราก็แค่ Decrypt แบบตรงๆไปเลยด้วยใช้ CyberChef

https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true,false)AES_Decrypt(%7B'option':'Base64','string':'yJ4L5ouh5D1n9Yj53S%2BGkEt/%2BOW/bn10MfC/opJjZ5g%3D'%7D,%7B'option':'Base64','string':'4ZttzHusKGsjzmdQA5%2BViw%3D%3D'%7D,'CBC','Raw','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D)&input=YlIvZHlWdG9FdXl1ZGg0cW9MV3Frdz09

ได้ Flag แล้วครับ!

วิธีที่ 2 Debug

ใส่ break point ไปที่ if

แล้วก็ Debug เลยครับ

ให้ Step over ไปเรื่อยๆจนขึ้นหน้า Form มา แล้วเราก็ใส่ไปมั่วๆได้เลยครับ

เปลี่ยน False เป็น true แล้วก็กด Step over ทำอย่างงี้ทั้ง 2 ตัวแปรเลยครับ เมื่อถึง breakpoint

ได้ Flag แล้วครับบ!

--

--