목록LOS (17)
Bace
문제는 다음과 같다. GET으로 pw에 거짓인 값을 넣어주고 뒤에 id를 admin으로 바꿔주면 풀리는 문제 같다. 하지만 공백이 필터링 되어있어서 공백 우회를 위해 %20을 썼다. pw뒤에 0을 넣은 후 '를 넣어서 닫아주고 id 부분의 첫번째 자리에 '를 넣어서 요청이 되게 하였다. ?pw=0%27%0aor%0aid=%27admin 이렇게 하면 pw가 거짓인 값이므로 그냥 넘어가게 되고, id가 admin이므로 결과값이 admin이 된다. solve
문제는 다음과 같다. GET으로 pw를 받는데, pw 값과 GET으로 넘긴 pw 값이 일치해야 풀리는 것 같다. 일단 pw에 'or'1# 으로 보내보았다. Hello admin이라고 뜬다. pw값과 일치하는지 아닌지를 Hello admin 문자열을 통해 확인하는 것 같다. 하지만 풀리지 않는 것으로 보아 정확한 pw 값을 넣어주어야 풀리는 것 같다. 일단 pw 길이를 구하기 위해 ?pw=' or id='admin' and length(pw)=숫자# 을 보내보았다. length(pw) 값에 8을 넣을때 Hello admin이 나온다. pw 길이가 8인것 같다. 이제 pw 값을 첫번째 자리부터 알아내기 위해 ?pw=' or id='admin' and substr(pw,1,1)=숫자 or 영어 를 보내보았다...
문제는 다음과 같다. 코드를 보면 GET으로 no를 받는데, id를 admin으로 보내야 solve 되는 것 같다. id란이 없으므로, no 뒤에 id를 붙여서 보내보았다. 풀리지 않는다. admin을 '로 묶지 않아서 그런 것 같다. 하지만 '은 필터링되기 때문에, admin을 hex 값으로 바꿔서 보내보았다. solve