프로젝트/Webhacking.kr

[Webhacking.kr] Challenge(old) 53번 문제

Uggjjini 2021. 7. 19. 12:04

문제페이지는 해당 페이지와 같다.

 

페이지에는 view-source 링크만 존재한다.

 

view-soure 링크를 통하여 해당페이지의 소스코드를 확인한다.

 

 

 if($_GET['answer'] == $hidden_table) solve(53);

 

GET 방식의 answer 파라미터 값이 hidden_table 이면 해당 문제가 풀린다.

 

숨겨진 테이블명을 알아내면 문제가 풀리는 것 같다.

 

SELECT 구문을 injection 하여 알아내고 싶지만 필터링 되기 때문에 procedure analyse() 라는 함수를 사용한다.

 

procedure analyse() 는 SQL 내장 함수 중 하나로 select a from {table} where a=1 procedure analyse()

가 들어오면 {DB}.{table}.{column}식으로 반환한다.

 

Get 방식으로 받아오는 val 파라미터 값을 1 procedure analyse() 로 입력해주면 해당 테이블 명을 알아낼 수 있다.

 

URL 의 val 파라미터의 값을 1 procedure analyse() 로 입력하여 전송한다.

 

 

{DB}.{table}.{column} 순으로 출력되는 것을 확인할 수 있다.

 

 

table 명은 chall53_755fdeb36d873dfdeb2b34487d50a805 이라는 것을 알 수 있다.

 

이 값을 URL의 answer 파라미터 값에 넣어 전송하면 해당 문제가 풀린다.