본문 바로가기

웹해킹/webhacking.kr

webhacking.kr old 61번 문제풀이(Writeup)

반응형

webhacking.kr old 61번 문제풀이(Writeup)

old 61번 문제풀이 1

문제를 들어가면 위와 같이 출력된다.  코드가 있으니 코드부터 확인해보자!

 

 

old 61번 문제풀이 2

먼저 id가 없으면 id는 guest로 접속이 된다. 또 id는 addslashes함수가 있어서 '(싱글쿼터), "(더블쿼터), \(백슬래시), NuLL바이트 앞에 '\'가 추가된다. 따라서 SQL Injection 공격을 막는 함수로 사용된다. 이후 preg_match를 통해 (), |, select, from, ',', by 가 대소문자 구분 없이 필터링된다. 또 id의 길이가 15를 넘어서는 안된다. 

 

 

old 61번 문제풀이 3

먼저 admin을 그냥 넣으면 안될 것 같아서 URL 인코딩을 했다. "%61%64%6d%69%6e" 이렇게 하면 15글자이기 때문에 Access Denied가 출력된다. 그래서 0x61646d696e 를 넣었다. 역시 안된다. 그래서 데이터베이스 종류가 mysql이라고 가정하고 별칭을 줬다.

 

?id=0x61646d696e id

별칭은 원래 AS 예약어를 사용해야하지만, 생략이 되기에 글자 수 제한을 생각해서 생략했다.

old 61번 문제풀이 4

성공메시지가 출력되었다. 

 

 

 

728x90