Challenge 57 시작!
입력값은 msg 와 se 이다. 소스코드를 보자.
msg 와 se 에 addslashes() 로 필터링이 되어 있다. 그리고 se 에는 특정 문자들이 추가로 필터링 되어 있다. msg 와 se 를 입력할 경우 insert 문을 통해 값을 저장해주고 있다. 이 때 flag 값도 같이 저장되는 것을 볼 수 있다. 때문에 이 flag 값을 알아내야 이번 문제를 해결할 수 있다. Done 말고는 별다른 출력 메시지가 없어 blind injection 을 수행하기에는 애매하다. 그런데 필터링 중에 benchmark 가 있는 것을 보니 Time Base SQL Injection 인 것을 예상할 수 있다. sleep() 함수는 필터링 되지 않았기 때문에 이를 이용하면 flag 값이 들어가는 pw 정보를 알 수 있을 것 같다. Python 코드를 작성하여 pw 정보를 알아내자.
se 인자에 if 문을 통해 조건이 참일 경우 sleep() 함수가 동작하여 정보를 알아낼 수 있도록 코드를 작성한다.
코드를 실행하여 위와 같이 flag 값을 알아낼 수 있다. 인증하러 가자.
성공!
'WarGame > webhacking.kr' 카테고리의 다른 글
Challenge 59 (0) | 2020.05.04 |
---|---|
Challenge 58 (0) | 2020.05.04 |
Challenge 55 (0) | 2020.04.29 |
Challenge 54 (0) | 2020.04.29 |
challenge 53 (0) | 2020.04.29 |