Solve Nonogram
SQL injection
name에 AAAA를 입력하면 이런 식으로 로그가 남는다.
로그에 남는 answer는 앞에서 푼 노노그램의 정답을 나타내는데, name을 입력받는 페이지의 HTML 코드에 answer
이라는 이름으로 정의되어 있다.
answer
의 value
를 바꾸고 name을 입력해보면, 이전까지의 로그들은 사라지고 바꾼 value
에 대한 로그만 남는 것을 확인할 수 있다.
그렇다면 서버에서는 select ~ from ~ where answer = 'abcd'
형태의 쿼리를 실행해서, 특정 answer에 대한 로그들만 가져와서 출력하고 있다고 추측할 수 있다.
answer
의 value
를 abcd' or 1=1#
로 바꾸고 name을 입력하면, 서버에서 answer
의 value
에 관계없이 모든 로그를 출력하게 된다.
일단 문제가 풀리고, 그 다음에 출력되는 로그를 보면 admin
의 secret data를 확인할 수 있다.
728x90