전체보기 333

[abex' crackme] 4번 문제 풀이

문제 풀이 파일을 실행시켜보았다. 아무거나 입력을 해보아도 버튼이 활성화되지 않는다. ollydbg로 파일을 열어보았다. ollydbg에서 문자열을 찾아보았다. "Well done!" 이라는 문자열이 보인다. 일단 저 문자열을 따라가 보았다. MSVBVM60.__vba 이런 식의 문자들이 보인다. 이러한 정보들로 보아하니 비주얼 베이직으로 프로그래밍된 것을 알 수 있다. (peid를 이용하면 바로 알 수 있는 정보이다.) 비주얼 베이직으로 쓰인 함수들이다. 이는 우클릭 -> search for ->all intermodular calls 를 통해 볼 수 있다. 보다보면 StrCMP 라는 부분이 있는데 이 곳에서 비교해준다는 것을 예측할 수 있다. (시리얼 값을 입력받을 때, 그 값이 시리얼인지 아닌지 비..

[abex' crackme] 3번 문제 풀이

문제 풀이 파일을 실행시켜보았다. 확인을 누르면 파일을 찾을 수 없다는 메시지창이 뜬다. ollydbg로 파일을 열어보았다. 열자마자 우리가 아까 보았던 메시지창들이 보인다. 위에서부터 살펴보면 파일을 확인하려면 ok를 누르라는 메시지창을 띄운다. 그 밑에는 CreateFileA 가 보인다. 이는 파일 또는 I / O 장치를 만들거나 열어주는 기능을 한다. Mode의 OPEN_EXISTING은 파일 또는 장치가 있는 경우에만 열어준다. FileName은 "abex.l2c"이다. 즉, "abex.l2c" 파일이 있을 경우 이 파일을 열어준다. 하지만 현재 우리는 저 파일을 갖고 있지 않기 때문에 실행을 시키면 JE SHORT crackme3,00401075 가 실행되어 에러메시지를 띄운다. 그래서 "abe..

[webhacking.kr] old-18 문제 풀이

문제 webhacking.kr/challenge/web-32/ 풀이 문제에서 이는 SQL INJECTION 문제라고 알려주었다. view-source를 통해 소스를 확인해보았다. 중요한 부분만 보겠다. id 값이 admin이면 문제는 풀린다. 하지만 퀴리문을 보면 id 값은 guest로 지정이 되어 있다. 그러므로 우리는 no의 값을 통해서 admin 값을 만들어주어야 한다. 주석처리를 보니 admin의 no 값이 2라고 친절히 알려주고 있다. 0 or no=2 이렇게 치면 no hack이라는 문구가 뜬다. 그 이유는 preg_match를 통해 필터링을 해주고 있기 때문이다. 띄어쓰기를 필터링 해주고 있으므로 이를 %09(tab)으로 바꾸어 입력해보았다. 0%09or%09no=2 이를 주어진 칸에 입력을..

[webhacking.kr] old-15 문제 풀이

문제 webhacking.kr/challenge/js-2/ 풀이 문제를 열면 이러한 알림창이 뜬다. 그리고 확인을 누르게 되면 webhacking.kr의 메인화면으로 돌아가게 된다. 알림창이 뜨지 않아야 해당 문제의 소스코드를 확인이 가능하다. 그렇기 때문에 자바스크립트를 차단해주는 설정을 걸어준다. 크롬 브라우저의 오른쪽 위에 점 세개 -> 설정 -> 사이트 설정 -> 자바스크립트 에 가서 설정을 해주면 된다. 그 뒤 해당 문제에 다시 접속하여 코드를 확인해 보았다. 코드를 보니 url에 ?getFlag라는 값을 붙여주면 문제가 풀릴 것 같다. 문제가 풀렸다.

[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(띄어쓰기)을 덧붙여주어야 한다.