darkknight 풀이
대충 보니 이 문제 역시 Blind SQL injection인 것 같습니다. 이번 문제는 preg_match()를 이용한 필터링이 좀 많습니다. pw는 ' 문자가 필터링되고, no는 ', substr, ascii, =가 필터링됩니다. 각각 우회 방법은 아래에 정리해놓겠습니다. ' -> " = -> like() substr -> left(), right(), mid() ascii -> ord() 우선 pw의 길이를 알아보겠습니다. no=0 or length(pw) like [숫자] 위의 구문을 쿼리에 삽입해서 Hello admin이 뜨는 경우를 확인해보겠습니다. 이제 pw를 알아내기 위해 파이썬으로 코드를 짜서 돌려보겠습니다.
2021.08.29