SQL Injection (7)

밍기적·2022년 12월 29일
0

웹해킹

목록 보기
18/35

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진수로 변경 후 대입하면 정상적으로 동작합니다

  • dvwa를 16진수로 변경시 0x64767761이다

3개의 테이블 이름들이 출력되고 이전과 동일하게 익스플로잇이 가능합니다

table_name에 users 테이블을 대입하기 위해 users 또한 16진수 값으로 변경했습니다

  • users를 16진수로 변경 시 0x7573657273이다

이전과 동일하게 진행하면 아이디와 비밀번호를 확인할 수 있습니다

필터우회


and와 union등이 블랙리스트로 필터링되어있는 경우 이를 우회해야 한다

프록시 툴을 이용하여 서버에서 사용되는 일부 필터를 우회하는 여러가지 방법들이 있다

SQL 인젝션을 발견하기 위해 유효한 명령문의 대표적인 예로

and 1=1 이 있다
이 문장이 블랙리스트로 필터링되었다면 우리는 anD 222=222를 사용해볼 수 있다

또한 aNd 111=111 과 같은 방법도 사용해볼 수 있다

또 다른 블랙리스트로 존재하는 것이 공백을 필터링하도록 설정하여 URL에서 공백을 허용하지 않는 것이다

하지만 +, /**/를 사용하여 이를 무시할 수 있다

uNioN+sEleCt+1,2+%23

0개의 댓글