입력란이 하나가 존재하는군요!
소스코드를 봅시다 :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 |