본문 바로가기

반응형

분류 전체보기

[CodeEngn]코드엔진 basic RCE L16 문제: Name이 CodeEngn일때 Serial을 구하시오 ollydbg로 16번을 열어보니 잘 열린다. 패킹은 안 되어있는 듯 하다. 일단 문자열을 확인해본다. 'Good Job!'이 있는 곳으로 간다. Good Job이 있는 부분 위를 보니, CMP가 있는 곳이 딱 하나가 있다. 이 부분을 breakpoint건다. EAX와 PTR SS:[EBP-0x3C]를 비교해야 하기 때문에, 이 부분까지 다시 실행해, EAX와 EBP를 알아내도록 한다. 확인해보니 EAX는 내가 입력한 PW의 16진수, EBP는 0070FF28임을 확인했다. PTR SS:[EBP-0x3C] 값을 알아내야 하기 때문에 위에서 -3C를 해줘야 한다. 나는 그냥 계산기로 연산을 해주었다. 그럼 70FEEC가 나온다. 이제 이 주소의 .. 더보기
[CodeEngn]코드엔진 Basic RCE L15 문제: Name이 CodeEngn일때 Serial을 구하시오 저번에 푼 문제와 비슷한 듯 하다. 일단 ollydbg로 열어본다. 일단 ollydbg에서 그냥 열리는 것을 보아, 패킹은 되어있지 않다. text strings를 확인해본다. 거의 맨 밑으로 가보니 이렇게 Cracked, Try again이 나온다. 이 부분으로 이동해본다. PTR DS:[0x45B844]와 EAX를 비교함을 확인할 수 있다. 여기서 PTR DS:[주소]는 이 주소에 저장된 값을 뜻한다. 온 김에, 그 주소에 있는 값을 알아보고자 한다. Follow in Dump - Memory address를 누른다. 그럼 60 61 00 00 이 나오는데, 이는 리틀엔디안으로 표기되어 있다. 따라서 00 00 61 60 으로 보면 된다.(.. 더보기
webhacking.kr(old) 38번 LOG INJECTION에 관한 문제이다. 그냥 기본적으로 사용되는 ''or1=1을 넣었는데 입력만 되고, 딱히 다른 반응은 없다. 코드를 확인해보니, admin.php로 가라는 듯 하다. 그래서 맨 위처럼 검색하여 admin.php를 살펴보았다. admin으로 로그인해야 하고, 밑에 [ip주소] : [입력한 값] 형태로 나옴을 확인했다. 입력한 값을 'admin'으로 바꾸어야 할 것이다. 그냥 곧바로 admin을 쳤는데, 나보고 '너는 admin이 아니다'라고 하는 것을 확인했다. 그래서 그냥 아무거나 다 넣고 검색해보았다. 그럼 결과가 이렇게 쌓이는데, CRLF가 생각난다. CRLF에 대한 정보는 이러하다. https://jhgoo1398.tistory.com/entry/CRLF-Injection /.. 더보기
[CodeEngn]코드엔진 basic RCE L14 문제: Name이 CodeEngn 일때 Serial을 구하시오 (이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) Ex) 11111 bruteforce에 관한 문제인 듯 하다. 프로그램을 일단 실행해보니 이렇게 나옴을 확인할 수 있다. ollydbg로 열어보니 패킹되어있을 수 있다고 한다. PEiD를 통해 패킹여부를 확인해본다. UPX로 패킹되어있음을 확인했다. UPX를 통해 언패킹한다. 난 14.exe를 un_14.exe에 저장해주었다. 이제 파일을 올리디버거로 열어준다. 문자열을 확인해보니(Search for- ~text strings) Good job이 있다. 저쪽으로 이동해본다. 보니, Good Job으로 가려면 저기 빨간색체크 표.. 더보기
webhacking.kr(old) 32번 31번 문제를 들어가보면 이렇게 인기순위? 비스무리한 창이 나온다. 이게 뭔가 하고 멍을 때리다가 아무거나 눌러보았다. 나는 2순위의 inchang21를 눌러봤는데 hit가 하나 올라감을 확인했다. 한번 더 다른 거나, 같은 걸 눌러봤다. 이미 투표가 되었다고 한다. editThisCookie를 통해 쿠키를 확인해보니, vote_check가 되어있음을 확인했다. 표시한 휴지통 부분을 계속 눌렀다 투표했다 눌렀다 투표하다를 반복하니, 너무 비효율적임이 느껴졌다. 그래서 표시한 부분을 누르도록 했다. 이는 금지로, 휴지통을 계속 누를 필요가 없다. 그럼 이 창이 뜨는데, 여기서 값으로 차단을 누르고, 이 규칙 더하기를 누르면, '이미 투표가 되었다'란 메시지는 뜨지 않는다. 근데 그 후 어떻게 해야 하는지 .. 더보기
[codeengn]코드엔진 basic RCE L10 문제: OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE EX) 00400000EB03 10.exe를 열어보니 암호화되어있을 수도 있다고 한다. ASPack은 처음 봤는데, 올바른 OEP를 찾아서 Dump를 띄우면 된다고 한다. (9번처럼 POPAD를 통해 어떤 부분을 빼고 PUSHAD를 통해 넣었음을 유추할 수 있다.) 9번을 풀어야 이걸 풀 수 있나보다. PUSHAD가 있으니 빼와서 넣었음을 예측해볼 수 있다. POPAD를 찾아보고 breakpoint를 걸어보려 했는데, 실행되지 않을 수도 있다는 메시지를 볼 수 있었다. 그래서 456335부터는 실행되지 않을 수도 있다는 것을 확인했다. 일단 재시작하여 F8을 통해 진행해보았다. PUSHAD.. 더보기
[CodeEngn]코드엔진 basic RCE L09 문제: StolenByte를 구하시오 Ex) 75156A0068352040 StolenByte를 구하는 문제이다. 먼저 Ollydbg로 열어보았더니 암호화되어있을 수도 있다고 한다. PEiD로 열어보니 UPX로 패킹되어있다고 한다. 09.exe를 unpack해주었다. unpack한 걸 열어보니, 12개 정도가 NOP으로 채워져있다. Stolen byte가 있다는 건 POPAD를 통해 명령어를 빼고, PUSHAD를 통해 명령어를 넣었을 것이라고 예측해볼 수 있다. 일단 POPAD를 검색해본다. 근데 나오는 게 없다. PUSHAD를 검색해본다. 이것도 나오는 게 없다. 혹시 몰라서 패킹되어있었던 원본의 09.exe를 ollydbg로 열어본다. PUSHAD가 여기있다. POPAD를 검색해본다. 언패킹했을 때 .. 더보기
[CodeEngn]코드엔진 basic RCE L13 문제: 정답은 무엇인가 올리디버거를 통해 열어보려고 했는데, 파일을 시작할 수 없다고 한다. 패킹은 되어있지 않고 C#으로 작성됨을 확인했다. 디컴파일을 위해 .Net reflector을 다운받았다. 계속 +를 눌러 Main으로 들어갔다. 코드를 확인해보니 친절하게 decrypt도 마련되어있음을 확인할 수 있었다. source code를 export해본다. Start해준 후, 명시되어있는 디렉토리로 가서 파일의 위치를 알아놓는다. 그걸 visual studio에 추가해서 파일을 연다. 이렇게 파일을 해놓고 ctrl+f5를 통해 실행해본다. 비밀번호 입력창은 커녕 위치들과 처리되지 않은 예외만 나오고 프로그램이 종료됐다. 검색을 해보니, 내 코드는 좀 다른 사람들과 다름을 확인했다. https://whit.. 더보기

반응형