Old 27번 문제

문제를 들어가보니 SQL Injection 문제입니다 :D

소스를 볼 수 있으니 봅시다!

source code

소스코드를 보니 필터링, 쿼리가 보입니다!

문제를 풀려면 id를 admin으로 해야하는데 admin의 no는 2라고 명시되어 있네용 :D

 

그럼 쿼리를 어떻게 넣어줄지 생각을 해봅시다!

where id='guest' and no=(0) or no=2 이렇게 만들어주면 되지 않을까 싶습니다!

이렇게하면 앞의 id와 no는 거짓이 되고 뒤의 no=2는 참이기 때문에 admin으로 접속할 수 있을 것입니다 :D

 

그러나 " "이랑 "="는 필터링이 되어 있는것을 확인할 수 있습니다 :D

" "을 우회할 수 있는 방법은 %09, %0a, %0d 등등 있습니다! 여기선 %09를 사용하겠습니다 ㅎㅎㅎ

"="을 우회할 수 있는 방법은 like, in, instr 등등 있습니다! 간단하게 like를 사용하겠습니다 ㅎㅎㅎ

 

그럼 최종적으로 어떻게 될까요?

no = 0)%09or%09no%09like%092;%00

쿼리 뒤의 ) 때문에 주석처리를 해주어야합니다! 그래서 ;%00를 넣어서 주석처리를 해주는 방법을 선택했습니다 :D

 

또 다른방법은 no = 0)%09or%09no%09like%092--%09

--%09 또한 주석처리를 하는것이지요 :D

그리고 %09를 붙인 이유는 --뒤에 반드시 한칸의 공백을 넣어줘야 된다고 하네요..!

그래서 trim 함수나 직접 공백을 필터하는 경우에는 "#"를 사용한답니다 :D

풀이 성공!

 

이렇게 문제풀이를 마치도록 하겠습니다 :D

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 1 (score:200)  (0) 2020.04.02
Old - 47 (score:150)  (0) 2020.03.31
Old - 19 (score:150)  (0) 2020.03.22
Old - 58 (score:150)  (0) 2020.03.06
Old - 32 (score:150)  (0) 2020.03.05