본문 바로가기
Wargame(CTF)

Webhacking.kr 2번

by Hide­ 2014. 4. 12.
반응형

소스를 확인해본다.

    <area shape="rect" coords="15,8,517,54" href="index.php" target="" alt="" />
    <area shape="rect" coords="339,63,403,93" href="about.php" target="" alt="" />
    <area shape="rect" coords="413,63,490,92" href="member.php" target="" alt="" />
    <area shape="rect" coords="500,63,582,92" href="research.php" target="" alt="" />
    <area shape="rect" coords="592,63,651,92" href="bbs/index.php" target="" alt="" />
    <area shape="rect" coords="662,64,745,93" href="fun.php" target="" alt="" />
    <area shape="rect" coords="756,63,825,93" href="contact.php" target="" alt="" />
    <area shape="rect" coords="851,7,890,65" href="admin/" target="" alt="" />

admin 이란 페이지를 찾았다.

쿠키를 확인해보면 time 이라는 값이 있다.

이 부분이 Injection 포인트가 되며 소스값에 주석으로 표시되는 시간값이 참/거짓을 알 수 있는 부분이 된다.

time=1397298833 뒤에 and 1=1 과 1=2 를 넣어서 참/거짓일 때의 서버반응을 확인해보았다.

1. 참 일때의 반응

<!--2070-01-01 09:00:01-->

2. 거짓 일때의 반응

<!--2070-01-01 09:00:00-->

 

참과 거짓일때의 반응을 확인했다. 이제 테이블명과 컬럼명을 알아내야 하는데 이부분에는 게싱이 필요하다.

이 부분에서 상당히 헤매다가 admin 페이지 라면 테이블 명도 admin 이라고 생각을 하였고 패스워드 컬럼명은 당연히

password 라고 생각을 하고 Injecton 을 시작하였다.

time=1397298833 and (select ascii(substring(password,1,1)) from admin)>

(이부분에서 select 앞에 왜 괄호가 들어가는지 궁금하여 리셋이에게 물어봤더니 앞부분과 비교를 하려면 괄호로

묶어줘야 한다고 한다.)

password : 0XXXXXXXXX


해당 암호를 통해 admin 페이지에 로그인을 시도하였다.



메뉴얼 패스워드라고 하는걸 보니 무언가 더 남아있는 것 같다.

사이트를 좀더 돌아다니다보니 게시판에서 비밀글을 발견하였다.

해당 게시판 상단에 FreeB0aRd 라고 써있는것으로 보아 테이블명은 FreeB0aRd 라고 추측하고 또다시

인젝션을 시도하였다.

time=1397298833 and (select ascii(substring(password,1,1)) from FreeB0aRd>

password : 75XXXXXXX


해당 암호를 통해 게시글을 조회하니 zip 파일이 하나 있었고 위에서 알려준 메뉴얼 패스워드를 통하여 압축을

해제하니 암호를 얻을 수 있었다.

'Wargame(CTF)' 카테고리의 다른 글

Webhacking.kr 5번  (0) 2014.04.13
Webhacking.kr 4번  (0) 2014.04.13
Webhacking.kr 3번  (0) 2014.04.12
Webhacking.kr 1번  (0) 2014.04.12
Oldzombie's Wargame 1~8  (0) 2007.03.08