0x0102
Old.18 본문

초기 화면
SQL 인젝션을 사용하는 문제인 것 같다.

먼저 코드 확인
소스 코드 해석
- get 방식으로 no 전달
- 정규표현식으로 공백 / & / select / from 등 문자열 필터링
- 하단에 sql 쿼리문
- if 조건문에서 id = admin 일때 해결 예상
- 주석으로 admin의 no는 2라는 것을 알 수 있음
- id = guest로 고정되어 있으므로 쿼리문 수정하기
- "select id form chall18 where id='guest' and no= 뒤에 '-1' or no='2'로 변경
-> 앞의 and문을 거짓으로 바꾸고 뒤의 or문으로 참을 만들어주므로 식 성립
아이디 란에 '-1'or no='2' 제출


그러나 공백이 필터링 되어 no hack 표기
처음 코드에서 확인하였듯 get 방식으로 전달하므로 url에서 탭을 url encode 한 %09로 공백 대체


해결