Old 39번 문제

입력란이 하나가 존재하는군요!

 

소스코드를 봅시다 :D

소스코드

소스코드를 살펴보니

역슬래쉬(\)는 공백 처리

싱글쿼터(')는 ''로 처리된다고 하네요!

그리고 15글자로 문자열을 끊어버리는군요 ㅎㅎㅎ

 

쿼리에서 자세히보면 id 뒤에 싱글쿼터가 존재하지 않는거 보이시나요 :D ?

 

저 취약점을 이용해서 풀어보겠습니다!

 

id는 당연히 admin으로 해야하는 암묵적인 느낌을 가지고 해야하는데

mysqlql에서는 "=" 연산 작동 시 공백을 이용할 수가 있습니다!

 

'admin' = 'admin       '

위의 두개의 연산이 성립이 됩니다!

 

밑의 사이트에서 정말 잘 설명되어 있으니 한번 보시길 바래요 :D

https://woowabros.github.io/study/2018/02/26/mysql-char-comparison.html

 

MySQL에서 'a' = 'a '가 true로 평가된다? - 우아한형제들 기술 블로그

DB 알못의 어떤 리서치

woowabros.github.io

 

 

그럼 어떻게 풀면될까요 :D ?

풀이

쨘 ! 요렇게 풀면 됩니다 ㅎㅎㅎㅎ

'admin          ' 이런식으로 입력하면

싱글쿼터가 2개가 되지만 15, 16번째 위치에 속하기 때문에 뒤의 16번째는 짤려서 15번째 쿼터만 남게되죠!

그럼 'admin'으로 인식이 되어집니다 !

풀이 성공

그럼 이만 문제풀이를 마치겠습니다 !

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

Old - 25 (score:150)  (0) 2020.02.29
Old - 54 (score:100)  (0) 2020.02.25
Old - 38 (score:100)  (0) 2020.02.23
Old - 26 (score:100)  (0) 2020.02.14
Old - 24 (score:100)  (0) 2020.02.13