SQL Injection/LoS
LoS Chapter 26 - red_dragon
ragdo11
2022. 11. 21. 16:20
26번째 문제 빨강용
좀 재밌었던 문제였다. 진짜 딱 CTF용 같은 문제랄까 사고력을 좀 요구하는..
코드를 위에서 부터 특이한 점을 보자면 딱히 필터링을 하지는 않으나 id는 8자부터는 입력할 수 없으며 no 값을 입력해주지 않으면 1로 초기화가 되고 admin의 no 값을 입력해주면 문제가 풀린다.
우선 뭐라도 시도해보기 위해서는 id 값을 받는 부분은 탈출이 이루어져야 한다. 그 다음엔 어떻게 해야 할까?
싱글 quote로 탈출은 했는데 두 가지 해야할 것이 있다. 제일 먼저 고려할 것은 남은 하나의 quote의 처리, 처리한 후 사용가능한 글자 수로 어떠한 우회문을 만들 것인가
싱글 quote을 한 번 사용해서 탈출하는 대신에 \를 사용하고 no에 quote를 넣는 방법을 생각해 보았으나 num은 is_numeric 함수로 숫자값만 받는다.
어짜피 no 값을 알아내야 하니 우회문을 no을 비교해야 할 것이니 다음과 같이 작성하면 된다.
남은 쿼트는 # 주석으로 우회하고 no에 개행문자를 삽입해줘서 우회하는 방식이다.
참고로 파이썬에 능하지 않아서 이건 코드에 집어넣지 못하였다.. ㅠㅠ 일일이 대입해봐도 크게 오래걸리진 않았다! 앞자리씩 비교하면서 숫자를 찾아가면 될 것 같긴 한데..
끝