본문 바로가기
Web/Lord of SQL Injection

Lord of SQL Injection 26단계 (red dragon)

by jh117jh 2023. 4. 22.
728x90

이번에 처치할 몬스터는 red dragon!

 

뀨...?

 

코드를 봐 보면

이번에는 id 파라미터에 들어가는 길이가 7 이하인 게 가장 까다로웠다.

그리고 새로운 필터링이 추가 되었는데 is_numeric으로 no값이 숫자인지 확인하고 아닐 시 1을 반환해 준다.

고로 no값으로는 숫자만 넣을 수 있다.

 

no값을 그냥 brute force로 구해볼까 했는데 한참을 해도 안 나오길래 포기했다.

그래서 일단 id 파라미터에 들어갈 쿼리문을 구하기로 했다.

여기서 시간이 오래 걸렸던 게 뭘 시도할라 해도 id에 길이 제한이 걸려있어 계속 실패했다.

 

우선 id부분을 닫아줄 싱글쿼터(')와 or 그리고 뒤에 # 이 3가지는 필수로 들어갈 요소들이다.

여기서 or로 쓰면 양쪽에 공백을 넣어줘야 하므로 ||로 작성하여 길이를 줄여준다.

그래서 최종은 '||no>%23이다. 그리고 #으로 뒤에 no값이 주석처리 되므로 개행문자를 이용하여 주석에서 벗어나게 해 준다.

 

select id from prob_red_dragon where id=''||no>#' and no= %0a

1234

 

이런 형태로 작성된다.

 

이렇게 한자리씩 알아내보면

짜잔~ 

다음 몬스터 잡으러 가자~!

728x90