WebHacking/Lord of Sql injection
darkknight 문제 풀이
Namchun
2023. 9. 10. 01:14
코드 분석
pw는 따옴표를 입력받지 못하게 하여 escape를 방지하였지만 no에서는 injection이 가능하다.
하지만 golem 문제와 같이 'substr' 문자열을 필터링하고, 'ascii' 문자열까지 필터링한다.
공격 기법
mysql에서는 ASCII() 함수와 비슷한 ORD() 함수를 제공한다.
두 함수의 차이점으로는 ASCII() 함수는 문자열의 가장 왼쪽 문자의 아스키 코드 값을 반환하고, ORD() 함수는 아스키 코드 값을 반환한다.
사실상 SUBSTR()과 같은 함수를 사용하여 한 글자씩 두 함수에 넣는다면 같은 값을 반환할 것이다.
SUBSTR() 함수를 우회하는 방법은 이전 포스팅에 소개되었으니 바로 blind sql injection 코드를 작성해주면
pw : 0b70ea1f
이런 식으로 pw를 추출할 수 있다.