Wargame & CTF/picoCTF 19

[picoCTF][Web]Insp3ct0r 문제 풀이

문제 풀이 매우 쉽고 간단한 문제 해당 링크로 들어가 F12를 눌러 관리자 모드를 사용 html코드를 확인 -> 주석에 플래그 값의 1/3이 주어져 있음 [Sources]에서 css 확인 -> 주석에 플래그 값의 2/3이 주어져 있음 js 확인 -> 주석에 플래그 값의 3/3이 주어져 있음 이를 모두 합치면 해당 플래그 값이 나오게 된다. picoCTF{tru3_d3t3ct1ve_0r_ju5t_lucky?832b0699}

[picoCTF][Reverse Engineering]asm1 문제 풀이

문제 풀이 문제에서 스택에 0x6fa 값을 넣었다. : cmp DWORD PTR [ebp+0x8],0x3a2 스택의 첫 번째 값인 0x6fa와 0x3a2를 비교 : jg 0x512 jg(Jump if greater) : 왼쪽 값이 크면 점프 -> 비교 결과 왼쪽 값이 더 크므로 37번째 줄로 이동 :cmp DWORD PTR [ebp+0x8],0x6fa 스택의 첫 번째 값인 0x6fa와 0x6fa를 비교 : jne 0x523 jne(Jump if not equal) : 두 값이 다르면 점프 -> 비교 결과 두 값이 같으므로 아랫줄로 이동 : mov eax,DWORD PTR [ebp+0x8] 스택의 첫 번째 값인 0x6fa를 eax에 복사 : sub eax,0x12 eax에서 0x12를 뺀 값을 eax에 저..

[picoCTF][Reverse Engineering]vault-door-4 문제 풀이

문제 풀이 파일 형식을 보니 java인 것을 확인 bintext를 사용하여 코드를 확인 if {vaultDoor.checkPassword[input]} { 이 조건문을 통해 비밀번호를 확인 그렇다면 checkPassword를 확인해보자. byte[] passBytes = password.getBytes(); getBytes() 메소드는 문자열을 가져와서 배열 내에서 바이트로 변환 myBytes를 보면 Dec, Hex, Oct, Char로 이루어져있다. 이를 byte로 바꾸어 for문을 통해 passBytes와 myBytes를 비교 즉, password는 myBytes의 문자열 친구가 만들어준 툴(파이썬)을 이용하여 문제를 풀었다. (파이썬으로 코드를 짜서 풀이 가능) picoCTF{jU5t_4_bUnCh..

[picoCTF][Reverse Engineering]vault-door-3 문제 풀이

문제 풀이 파일 형식을 보니 java인 것을 확인 bintext를 사용하여 코드를 확인 if {vaultDoor.checkPassword[input]} { 이 조건문을 통해 비밀번호를 확인 그렇다면 checkPassword를 확인해보자. if (password.lenght() != 32) 를 통해 32가 아니면 false를 return 해주므로 password의 길이는 32 밑에서 new char[32] 를 통해 32의 배열을 선언 4개의 for문을 통해 password를 조합 String s = new String[buffer]; return s.equals("jU5t_a_sna_3lpm18gb41_u_4_mfr340"); 를 통해 해당 문자열의 배열에서 조합한다는 것을 예측 가능 이를 하나씩 구할 수..

[picoCTF][Reverse Engineering]vault-door-1 문제 풀이

문제 풀이 파일 형식을 보니 java인 것을 확인 bintext를 사용하여 코드를 확인 if {vaultDoor.checkPassword[input]} { 이 조건문을 통해 비밀번호를 확인 그렇다면 checkPassword를 확인해보자. charAt() 이는 charAt(int index) 형식으로 입력 받은 index 번째 문자를 반환 즉 문제에서 password길이가 32라고 하였으며 index 번호 0부터 31까지의 문자들을 조립하면 플래그 값이 나올거라 예측 가능 picoCTF{d35cr4mbl3_tH3_cH4r4cT3r5_ff63b0}

[picoCTF][Reverse Engineering]vault-door-training 문제 풀이

문제 풀이 파일 형식을 보니 java인 것을 확인 bintext를 사용하여 코드를 확인 이는 자바를 몰라도 어느정도 이해가 가능하다. picoCTF{ 가 눈에 들어온다. 밑에 조건문에서 checkPassword 를 통해 확인하는 것을 확인 checkPassword에서 password.equals 를 통해 문자열을 비교해준다는 것을 예측 가능 picoCTF{w4rm1ng_Up_w1tH_jAv4_eec0716b713}