풀이
언뜻 보면 지금까지 했던 SQLi와 달라 보이지만, 둘째 단락을 봐보자.
result['pw'] == $_GET['pw']가 같아야 한다.
즉, 진짜로 pw값을 맞춰야 한다는 소리다.
이번 문제는 Blind SQLi이다.
우선 pw의 길이를 맞추기 위해, 다음 Query문을 넣어보자.
Query: ?pw=1' or id='admin' and length(pw)=8%23
물론, 나는 패스워드 길이를 파이썬을 이용해 찾았다.
이렇게 pw가 8자리라는 정보를 얻었으면, substr 함수를 통해 BruteForce 해볼 수 있다.
여기서 substr 함수가 무엇인지 간단히 설명하겠다.
substr(string, start, length)
-> 주어진 string에 start번째부터 length만큼 자른다.
substr('qwer', 2, 1) -> 'w'
substr('qwer', 1, 2) -> 'qw'
이러한 방법으로 n번째 자리의 pw값을 얻을 수 있다.
파이썬 코드는 다음과 같다. PHPSESSID 쿠키 값은 여러분들의 쿠키 값으로 바꿔줘야 한다.
이렇게 해서 얻어낸 pw값에서 대소문자를 주의하며 pw값을 넣어보자.
'Wargame > LOS' 카테고리의 다른 글
[LOS] bugbear 풀이 (st.13) (0) | 2020.05.29 |
---|---|
[LOS] xavis 풀이 (st.19) (0) | 2020.05.29 |
[LOS] cobolt 풀이 (st.2) (0) | 2020.05.28 |
[LOS] goblin 풀이 (st.3) (0) | 2020.05.28 |
[LOS] gremlin 풀이 (st.1) (0) | 2020.05.28 |