효투의 세상 로딩중...
효투의 세상 로딩중...
반응형

SQL injection으로 DB를 추출할 수 있는 것은 기본적으로 다 알고있다.

하지만 이 SQL 인젝션 취약점이 진짜 위험한 이유는 DB가 털리는 것도 물론 굉장히 위험하지만

SQL injection으로 파일 다운로드, 파일 업로드, 명령쉘 실행 등 정말 다양한 추가적인 공격이 가능해서이다.

 

1편과 2편으로 포스팅을 나눠서할 예정이고 

1편은 sqlmap을 사용해서 동작하는 방법이나 어떤 결과가 나오는지, 2편은 도대체 어떻게 추가 공격이 가능한지 공격쿼리를 볼 예정이다.

일단 sqlmap은 기본적으로 알다시피 공격자가 일일히 하나하나 DB명 테이블명 컬럼명 엔티티 등을 추출하는데 너무 오랜 시간이 걸리기 때문에 아래 사진처럼 자동화 도구로써 db를 추출해준다.

하지만 sqlmap에 내장되어있는 옵션을 이용하면 여러가지 기능을 볼 수 있다.

1. --sql-shell

취약한 파라미터가 발견되었을 때 --sql-shell 옵션을 주면 아래 사진처럼 프롬포트가 출력되는것을 확인할 수 있다.

아래 sql-shell> 프롬포트는 정말 sql 쉘이다.

select 문이나 insert 등 다양한 sql 쿼리를 이용하여 DB를 열람하고 수정하고 삭제할 수 있다.

 

명령어

sqlmap -u "취약한URL" --sql-shell

 

2. --file-read

파일 리드 옵션은 흔히 파일 다운로드 취약점으로 발견되는 공격과 비슷하다.

sql 쿼리문을 통해 시스템의 특정 파일을 읽어오면 그 파일의 내용을 로컬에 저장할 수 있다.

--file-read 옵션으로 리눅스 파일시스템 내 /etc/passwd 파일을 읽어오라 옵션을 주었을 때

sqlmap은 공격을 시도한 후 아래 하얀글 씨로 성공했다고 다운로드가 되었는지 확인할거냐고 물어본다 Y를 주면

저장된 경로를 알려주고

해당 경로로 가보면 passwd파일이 읽어와진 것을 볼 수 있다.

명령어

sqlmap -u "취약한URL" --file-read "타겟파일"

 

반응형

3. --os-shell

os-shell은 시스템쉘을 가져오는 명령어이다.

원리는 Webshell 업로드와 같은 방법인데 아래 사진과 같이 --os-shell 옵션을 주게되면

웹이 어떤 언어를 지원하는지 묻는다. 해당하는 언어를 선택해주고 추가적으로  sqlmap으로 경로공개에 대해서 더 공격할 것인지 묻는다.

그리고 어떤 디렉터리에 파일 쓰기를 할 것인지 묻는데 보통은 권한이 허용되어있는 tmp 디렉터리나 다른 디렉터리를 찾아서 추가적인 공격을 하지만 나는 테스트를 위하여 아예 다 권한을 열어주었다.

어쨌든 dashboard 디렉터리를 지정해주면 os-shell 프롬포트가 생성되고 명령어가 동작하는 것을 볼 수 있다.

사진을 보면 파일 tmpuqxlw.php 와 tmpbqnmc.php가 업로드된 것을 볼 수 있다.

이 업로드한 쉘 파일 php를 통해 명령어를 실행하는 방법이다.

쉘에 직접 URL 접근을 해보면 또 다른 더 편한 웹쉘을 업로드할 수 있도록 업로더 기능을 이용할 수 있다.

다른 쉘 업로드

이 후에 os-shell을 종료하게 되면

tmp php파일도 삭제되게된다.

명령어

sqlmap -u "취약한URL" --os-shell

 

4. --file-write

file-write 옵션은 파일 업로드 취약점과 동일한 방법으로 쉘 파일을 디렉터리 내 쓸 수 있다.

file-write 단독으로 사용하지않고 --file-dest 옵션과 같이 사용한다.

file-write = 쓰기를 할 파일

file-dest = 목적지 경로 (쓰기를 할 경로)

아래 그림과 같이 파일과 경로를 지정해주면

하얀 글 씨로 파일 쓰기가 성공했는지 확인하겠냐고 묻는다 Y를 해주면 성공했다는 INFO 로그를 확인할 수있다.

해당 php 파일로 접근해서 웹쉘 처럼 명령어를 실행할 수 있다.

명령어

sqlmap -u "취약한URL" --file-write "쓰기 할 파일(경로포함)" --file-dest "목적지 경로)

 

2022.07.26 - [웹] - [웹] SQL Injection을 이용한 다양한 공격 기법 (Feat. sqlmap) - 2

 

[웹] SQL Injection을 이용한 다양한 공격 기법 (Feat. sqlmap) - 2

1편 포스팅에선 어떻게 공격이 진행되는지 살펴봤다. 2022.07.25 - [웹] - [웹] SQL Injection을 이용한 다양한 공격 기법 (Feat. sqlmap) - 1 [웹] SQL Injection을 이용한 다양한 공격 기법 (Feat. sqlmap) - 1..

hyotwo.tistory.com

 

반응형
  • hyotwo7658@gmail.com

복사 완료 👍