Webhacking.kr 53번 문제 풀이


53번 문제!!


한번 풀어보자!!


53번 문제 클릭!



그냥 hello world 라는 단어만 보인다


소스보기를 해보자



index.phps 페이지를 가보자



val 라는 값을 이용하여 쿼리문을 전달한다


val 라는 값을 이용하여 쿼리문을 결과가 나오면 $f 에 값이 저장되고


TABLE NAME을 입력할 수 있는 입력 칸이 나오도록 되어있는거 같다


그리고 그 테이블 네임에 table 명을 입력하면


answer 값으로 전달되어 hidden_table비교하고


결과가 참이면 53번 문제가 풀리는듯 싶다



일단 val 값에 아무 숫자나 넣어보았다


?val=1 일 경우


test 출력



?val=2 일 경우


guest 출력



이런식으로 val가 3, 4 일 때 까지 값이 출력된다




그 이후 숫자는 값이 출력되지 않았다 (간단한 테스트결과에서만)


이제 val 를 이용하여 table 네임을 알아내야 하는뎅


어떤 방법으로 알아낼 수 있을지 검색해보다가..


그냥 살짝 힌트로 봤다..ㅠㅠ


procedure analyse() 라는걸 이용하면 된다고 한다


procedure analyse() 는 테이블 컬럼을 최적화하기 위하여 사용한다고 한다


http://gubok.tistory.com/339


위 블로그에서 조금은 자세히 알아보도록 하자


한 번 사용해 보았다


여러가지 결과가 $f에 저장되고


$f[0] 의 결과만 출력되기 때문에 위 에서 보이는 Field_name 부분이 출력된다.


test.Tb.id --> DB명.Table명.컬럼명




이제 문제를 풀어보자


?val=4 procedure analyse()



그럼 아래와 같이 Field_name이 출력된다.


oldzombie.Hidden_Table.칼럼명



Hidden_Table명을 입력하면



Congratulation!!!!!!!!!!



이렇게 53번 문제도 클리어!!!