
webhacking.kr 61번 write up
·
웹/웹 해킹 문제 풀이
61번 문제의 화면이다. 소스코드를 확인해보자 get 메소드 방식으로 요청한 id의 값이 없으면 기본 값으로 "guest"를 지정한다. id의 값은 addslashes 함수로 ' " 쿼터가 있으면 쿼터앞에 \ 백슬래쉬가 붙는다. 특수문자를 인식하기 위해 사용하기도 하며 sql injection 공격을 필터하기 위해도 사용한다. 마찬가지로 preg_match 함수로 특정 문자를 필터링한다. id의 값은 16글자 이상이면 안되며 result변수에 데이터를 가져와 배열화 시킨다. id의 값이 admin이면 문제가 해결된다. get 요청으로 id값을 요청해보면 위와 같이 $result['id'] 값이 test가 된다. 즉 테이블에 id컬럼에 test값이 있는 것이다. 문제를 해결할려면 id컬럼에 test가 아닌..