Web/Lord of Sql injection

bugbear 문제 풀이

Namchun 2023. 9. 10. 01:35

코드 분석

따옴표, substr, ascii, =, or, and, 공백, like, 0x 해당 문자열들을 필터링한다.

pw에 넘겨진 값과 result의 pw와 직접 비교하여 맞으면 solve() 함수를 실행하기 때문에 pw의 값을 알아내야 한다.

공격 기법

이전 포스팅에서 사용하였던 ORD() 함수는 'or' 문자열이 포함되어 있기 때문에 사용하지 못한다.

따라서 HEX() 함수를 사용해서 hex 값을 알아내고, 이를 CONV(hex값, 16, 10)으로 10진수로 변환하였다.

 

그리고 조건이 참이 되었지만 guest도 같이 조회되었기 때문에 id != "guest"를 시도하였다.

하지만 '='가 필터링되기 때문에 mysql에서 제공하는 '<>' 연산자를 사용하여 !=와 같은 효과를 만들어내었다.

 

'Web > Lord of Sql injection' 카테고리의 다른 글

assasin 문제 풀이  (0) 2023.09.10
giant 문제 풀이  (0) 2023.09.10
darkknight 문제 풀이  (0) 2023.09.10
golem 문제 풀이  (1) 2023.09.09
skeleton 문제 풀이  (0) 2023.09.09