dvwa 보안레벨을 중간 단계로 올려서 진행했습니다
union select table_name, 2 from information_schema.tables where table_schema='dvwa' %23
SQL 오류가 발생하며 해당 오류는 작은 따옴표 사용으로 인해 발생합니다
이 부분을 우회하기 위해서 작은 따옴표를 URL 인코딩을 통해 우회하기 위해 시도했습니다
작은 따옴표는 URL 인코딩으로 진행하면 %27입니다
union select table_name, 2 from information_schema.tables where table_schema=%27dvwa%27 %23
이 또한 마찬가지로 실패했습니다
그렇기 때문에 새로운 방법을 찾아봐야 했습니다
인용 부호를 필터링하기 때문에 해당하는 작은따옴표를 HEX 값으로 인코딩 후 대입했습니다
table_schema='dvwa'를 작은따옴표를 제외하고 dvwa를 16진수로 변경 후 대입하면 정상적으로 동작합니다
3개의 테이블 이름들이 출력되고 이전과 동일하게 익스플로잇이 가능합니다
table_name에 users 테이블을 대입하기 위해 users 또한 16진수 값으로 변경했습니다
이전과 동일하게 진행하면 아이디와 비밀번호를 확인할 수 있습니다
and와 union등이 블랙리스트로 필터링되어있는 경우 이를 우회해야 한다
프록시 툴을 이용하여 서버에서 사용되는 일부 필터를 우회하는 여러가지 방법들이 있다
SQL 인젝션을 발견하기 위해 유효한 명령문의 대표적인 예로
and 1=1 이 있다
이 문장이 블랙리스트로 필터링되었다면 우리는 anD 222=222를 사용해볼 수 있다
또한 aNd 111=111 과 같은 방법도 사용해볼 수 있다
또 다른 블랙리스트로 존재하는 것이 공백을 필터링하도록 설정하여 URL에서 공백을 허용하지 않는 것이다
하지만 +, /**/를 사용하여 이를 무시할 수 있다
uNioN+sEleCt+1,2+%23