반응형

Java 5

[n00bzCTF] EZrev - 리버싱 / Java

Java 리버싱과 관련된 문제 코드만 천천히 따라가면 그렇게 어렵지 않다. 문제에서 주어지는 파일은 EZrev.class 파일이다. .class 파일은 바로 내용을 확인할 순 없고 디컴파일을 해야한다. http://www.javadecompilers.com/ Java decompiler online www.javadecompilers.com .class 파일을 온라인으로 디컴파일 해주는 사이트가 있다. 해당 사이트에서 파일을 업로드하고 Decompile 버튼을 눌러주면 된다. import java.util.Arrays; // // Decompiled by Procyon v0.5.36 // public class EZrev { public static void main(final String[] array..

CTF/리버싱 2023.07.03

[Root Me] Java - Server-side Template Injection - 웹해킹 / SSTI

30점짜리 웹해킹 문제 문제 제목에 나와있는 Server Side Template Injection 문제이다. 오래전에 블로그에서 SSTI 관련된 문제를 다룬적이 있었다. (https://hackingstudypad.tistory.com/150) 그때도 역시나 Root Me에서 제공하는 문제였는데, 다른점이 있다면 그때는 Python 기반의 웹이었고, 이번엔 Java 기반의 웹이라는 것이다. SSTI는 템플릿 엔진으로 웹 어플리케이션을 구동하는 경우, 공격자가 템플릿 구문을 악용하여 삽입할 수 있는 취약점이다. 이렇게 템플릿 구문이 삽입되게 되면, 원격 명령어 실행도 가능하게 되는 위험한 취약점이다. 이번 문제의 목표는 SSTI 취약점을 이용해 서버 운영체제 명령어를 실행하여 서버 내에 숨겨진 SECRE..

워게임/Root Me 2022.08.18

[HouseplantCTF] Bendy - 리버싱 / Java

Java 리버싱 최종단계 문제 확실히 이전 두 문제(Fragile, Breakable) 보다 더 어렵다. 막 기술적으로 어렵다기보다 계산을 복잡하게 해서 머리가 아파진다. Fragile : https://hackingstudypad.tistory.com/163 Breakable : https://hackingstudypad.tistory.com/164 이번에도 역시 java 파일이 주어진다. import java.util.*; public class bendy { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.print("Enter flag: "); String userInput = ..

CTF/리버싱 2022.06.11

[HouseplantCTF] Breakable - 리버싱 / Java

두번째 리버싱 문제 어제 포스팅한 Fragile 문제보다 조금 더 어렵게 진화한 문제이다. Fragile : https://hackingstudypad.tistory.com/163 이번에도 역시 java 파일이 주어진다. import java.util.*; public class breakable { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.print("Enter flag: "); String userInput = scanner.next(); String input = userInput.substring("rtcp{".length(),userInput.length()-1); if..

CTF/리버싱 2022.06.07

[HouseplantCTF] Fragile - 리버싱 / Java

이번 대회의 리버싱 문제 중 가장 쉬웠던 문제이다. 처음엔 뭐 이렇게 쉽나 생각했는데 약간 함정이었던게 이 문제를 베이스로 해서 뒤로 갈 수록 더욱더 괴상한 문제들이 나왔었다. 철저한 빌드업이었던것.. 문제파일로는 fragile.java 파일이 주어진다. import java.util.*; public class fragile { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.print("Enter flag: "); String userInput = scanner.next(); String input = userInput.substring("rtcp{".length(),userInpu..

CTF/리버싱 2022.06.06
반응형