본문 바로가기

웹 해킹 (Web)/webhacking.kr

[webhacking.kr] 웹해킹.kr old-26번 (100)

728x90
반응형

이번에는 webhacking.kr의 old-26번 문제입니다. php를 이용하는 문제고, 100점이 배점되어 있습니다.

 

문제에 들어가면 위와 같은 검은 화면만 뜹니다. 소스 코드를 보겠습니다.

 

코드를 보니 GET 방식으로 넘겨주는 id가 admin일 때 문제가 해결됩니다.

 

그 위에는 id를 urldecode() 함수를 통하여 디코딩 해주었습니다.

 

디코딩을 해주었으니 인코딩을 해주어 원래대로 변환해주어야 합니다. 인코딩 표를 참고하겠습니다.

 

admin => %61%64%6d%69%6e 입니다. GET 방식으로 넘겨주므로 URL을 바꿔보겠습니다.

 

인코딩을 진행한 값을 넣어도 admin으로 자동 변환됩니다.

 

웹 서버와 브라우저 간의 통신에서, 브라우저는 form에서 입력받은 데이터를 자동으로 인코딩한 값을 PHP 서버로 전송하고, PHP는 전달받은 인코딩된 값을 자동으로 디코딩합니다.

이를 통해 %61%64%6d%69%6e이 자동으로 디코딩 되어 admin으로 변환되었다는 사실을 알 수 있습니다.

 

그러므로 인코딩을 한 번 더 진행해줍니다. 구글에 url encode 로 검색하면 많은 사이트가 있습니다.

 

burpsuite와 같은 툴을 이용해도 됩니다.

 

%61%64%6d%69%6e을 한 번 더 인코딩한 값은 %2561%2564%256d%2569%256e입니다.

 

이 값을 URL에 GET 형식으로 id에 대입하니 문제가 해결되었습니다.

728x90
반응형