wargame 47

[wargame.kr] already_got

이런 류의 문제들이 많아서 보자마자 감을 잡은 사람도 있을 것이고, 감을 못 잡는 사람은 어떻게 접근해야하는 지 몰라서 골치 아플 수 있다. 처음 문제를 접하는 분들을 위해 문제 설명 부분에 HTTP Response Header에 대한 언급을 해주고 있다. 설명에서 보다시피 already_got은 HTTP Response Header를 볼 줄 아는 가에 대한 문제다. Response Header를 보는 방법은 다양하다. 프록시 툴이나 와이어 샤크 등 패킷을 잡아서 봐도 되고 크롬 개발자 도구를 이용해도 되고 툴이나 크롬을 사용하지 않는 경우엔 response header view 해 주는 웹 사이트를 이용해도 된다.

wargame/wargame.kr 2019.04.08

webhacking.kr 42번 풀이

webhacking.kr 42번 풀이 [HINT] 1. Base642. File Download3. Brute Force Attack 페이지에 접근하면 두개의 다운로드 링크를 볼 수 있는데, read me 의 test.zip은 다운 경로가 없고 권한이 없다는 메세지를 띄우는 JS코드가 박혀있다.test.zip을 열어보는 것이 목표일 것이다. test.txt의 다운로드 URL을 보면 파라미터로 base64의 값을 보내는 것을 확인 할 수 있다. 이는 test.txt의 base64 encode한 값이다.예상으로 파라미터를 test.zip의 base64 encode한 값을 넣으면 다운 받을 수 있을 것 같다. test.zip을 base64 인코딩 한 값은 dGVzdC56aXA= 이고, 이를 파라미터에 넣으면 ..

webhacking.kr 18번 풀이

webhacking.kr 18번 풀이 간단한 인증우회 문제 [HINT] 1. SQL Injection2. space bypass no를 get 파라미터로 받는다.no는 특정 문자열이 들어가있으면 필터링하고들어가있지 않은 경우, sql query를 요청한다. 반환값으로 admin이면 문제를 풀 수 있다. table에 있는 값은 1이 guest, 2가 admin이다. where 조건문의 id가 guest로 고정되어 있으므로 no에서 sql injection을 시도하여 admin 값을 반환하게 한다.간단하게 2 or 1=1로 시도했다. 참고로 int형의 컬럼에 조건문을 걸 때는 싱글쿼터 등의 구분자를 적지 않고 숫자만을 입력할 수 있으니int형의 컬럼 조건문에 sql injection을 걸 때에는 싱글쿼터가 ..

[LOB] orc

개인적으로 RET 함수 뒤에 쉘 코드를 써 내려 가는 방법을 배웠던 적이 있어서 goblin 문제보다 쉽게 풀 수 있었다. 소스코드 분석 프로그램은 인자로 입력값을 받고, 환경변수에 쉘 코드를 삽입하는 방법을 방지하기 위해 환경변수를 0으로 덮어 씌워버린다.그리고 인자 값의 48번째 값이 \bf가 아니라면 프로그램을 종료한다. 다른 쉘 코드 삽입 방법이 많지만 스택에 쉘 코드를 삽입하여 문제를 풀라는 의미인 듯 하다. 위의 조치를 다 하면 strcpy 함수를 통해 buffer에 입력 값을 복사하고 출력한다. 문제 풀이 argv[1][47] != '\xbf'' 로 인해 48번째 값이 \xbf가 들어가야 프로그램이 도중 종료되지 않는 것을 확인 할 수 있다.덤으로 Segmentation fault가 발생한다..