Wargame & CTF 42

[abex' crackme] 2번 문제 풀이

문제 풀이 우선 파일을 실행시켜보았다. 이러한 창이 뜬다. abcd를 입력해보았지만 역시나 실패했다. 이 파일을 ollydbg로 열어보았다. F9로 실행을 시켰다. CALL로 함수를 호출하고 있으니 F7을 사용해서 한 줄씩 실행을 시켰다. 이러한 코드들이 뜬다. 하지만 이것을 다 찾을 수 없으니 문자열을 살펴보았다. (00401238 주소값에서 찾아야 한다.) 쭉 내리다보면 우리가 아까 보았던 메시지와 다른 메시지들이 보인다. 아까 본 "Nope, this serial is wrong!"이 있는 코드로 가보았다. 코드를 올리면서 더 살펴보니 중요하게 봐야 할 점프문이 눈에 보인다. 이 구간에서 스택을 살펴보았다. 이와 같이 나와있으며 느낌상 "C5C6C7C8"이 serial 같아서 입력을 해보았다. 알맞..

[abex' crackme] 1번 문제 풀이

문제 풀이 우선 파일을 실행시켜 보았다. 그러면 이러한 메시지를 확인할 수 있다. 확인을 누르면 이런 메시지가 출력이 된다. 이 문제는 Ollydbg를 사용하여 풀었다. Ollydbg로 파일을 열어보았다. F9를 눌러 실행시켜보았다. 이 부분이 메인인것 같다. F8을 누르며 한 줄씩 실행하였다. 아까 실행시켰을 때 보았던 메시지가 보인다. 0040101D INC ESI : ESI 값을 1 증가 0040101E DEC EAX : EAX 값을 1 감소 0040101F JMP SHORT abexcm1.00401021 : 00401021 주소값으로 점프 00401021 INC ESI : ESI 값을 1 증가 00401022 INC ESI : ESI 값을 1증가 00401023 DEC EAX : EAX 값을 1 ..

[los]cobolt 문제 풀이

문제 풀이 if($result['id'] == 'admin' ) solve("cobolt"); 쿼리문이 실행되었을 때 id값으로 admin을 가지면 문제는 풀린다. id 값을 알고 있으므로 id 값을 가지고 문제를 풀면 된다. 즉, 쿼리문을 or을 통해 참으로 만들어줄 필요 없이 id 값만 지정해주고 그 뒤는 주석처리를 해주면 된다. admin' -- 이를 입력해주면 된다. 뒤에 --을 통해 주석처리를 해줄 때는 띄어쓰기를 해주어야 주석이 처리되므로 %20(띄어쓰기)을 덧붙여주어야 한다.

[los]gremlin 문제 풀이

문제 풀이 if($result['id']) solve("gremlin"); 쿼리문 실행되었을 때 id의 값이 존재하면 이 문제는 풀린다. 그렇다면 우리는 id 값이 참이 되면 된다. id의 값으로 아무 값이나 넣고 or을 통해 참으로 만들어 준다. 뒤에 다른 코드들이 실행되지 않도록 주석처리를 해주면 된다. 1' or 1=1 -- 이를 url 피라미터 값으로 입력해주면 된다. 뒤에 --을 통해 주석처리를 해줄 때는 띄어쓰기를 해주어야 주석이 처리되므로 %20(띄어쓰기)을 덧붙여주어야 한다.

[webhackin.kr] old-26 문제 풀이

문제 https://webhacking.kr/challenge/web-11/ 풀이 소스코드를 볼 수 있는 링크가 있으므로 확인해본다. php코드를 보면 GET방식으로 받은 id 값이 'admin'이면 문제가 풀리는 것을 알 수 있다. 하지만 바로 'admin'값을 넣어주면 preg_match 함수로 필터링이 되어 문제가 풀리지 않는다. preg_match( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) 주어진 패턴에 있는 정규식과 일치하는 항목을 subject에서 검색한다. 그렇다면 'admin'을 url 인코딩을 해서 id값에 넣을 것이다. 'admin'은 %61%64%6d%69..