주요 정보
- 교육 과정명 : 클라우드기반 스마트융합보안 과정 16기
- 교육 회차 정보 : '23. 11. 10. 애플리케이션 보안 #07
첨언
- 칼리 리눅스 모바일에서도 설치 가능하다.
- 보안 점검 툴도 오탐,정탐 발생 가능하다.
보완할 점
- DVWA 파일 업로드 기능 불가(DVWA 설치 오류 해결- 현재 2가지 방법으로는 불가능)
- #6, #7 내용 추후 보완 및 정리 예정(중복 설명 존재 가능)
무엇을 깨달았나
- DVWA 취약점 실습 및 확인
- 애플리케이션 보안 과종 정리(전체범위)
- 호스트-게스트 브릿지 네트워크 구조에서의 네트워크 설정 관련 궁금증
File Inclusion
- Inclusion : 포함.
- 파일을 가져와 내용을 보여주는 기능을 사용하는 환경이다.
- [file1.php] - [file2.php] - [file3.php] 중 원하는 파일을 누르면, 해당 파일을 입력으로 받아 서버로부터 가져와 내용을 출력한다.
- 모든 방식에서 GET 방식을 사용한다는 환경이다.
File Inclusion Source Code at low level
File Inclusion Source Code at impossible level
- 사용 가능한 page 매개변수를 3가지로만 한정한다.
GET, POST 방식에서는 무조건 HTML 폼을 사용하는가?
- 데이터를 서버로 전송하는 두 가지 주요 HTTP 요청 방식중 하나.
- HTML 폼이 아닌 다른 방식으로도 HTTP 요청 가능하다.
1. AJAX 요청
2. RESTful API 요청
File Upload
Insecure CAPTCHA 불가능 오후에 한다.
SQL Injection
- $_REQUEST 배열 사용해 Submit 매개변수 존재 확인, 존재시 id 매개변수를 사용한다.
해당 배열은 GT, POST 요청 모두에서 데이터 읽을 수 있다. 따라서 Submit 매개변수를 사용하면 GET, POST 으로 데이터를 보내 작도 ㅇ가능하다.
-해당 기능에서는 submit 을 폼 방식으로 넘긴다. (GET,POST 를 사용하던 간에 다른 방식이 아니라면 HTML 폼 형식으로 보낸다)
Weak session IDs
- 시큐어 render 사용한다 (? 영상보고 확인)
- 세션 값 ($cookie-value를 만들 때) 일정한 규칙으로 만드는 것을 확인한다.
XSS (DOM)
XSS (Relfected)
<script>alert(document.cookie)</script>
결과는 쿠키 값이 alert 경고창에서 현재 보안 레벨 low 가 출력된다.
- imposiible level 에서는 정규식으로 name을 받는다.
XSS (Stored)
-Message 에 # 넣은 후 Sign Guesbook 을 누르면
결과는 쿠키 값이 alert 경고창에서 현재 보안 레벨 low 가 출력된다.
- impossible 방식에서는 두 번의 입력값 처리
- bind 파라미터 방식으로 처리한다
- hight level 에서는 bind 파라미터 방식은 사용하지 않는다..
- 해당 내용을 버프 스위트로 확인한다(자바스크립트 들어간 여부)
CSP Bypass
- bypass : 우회로,
- csp : 콘텐츠 보안 정책 : 웹 애플리케이션 보안 강화 목적의 보안 기술 중 하나로,
[웹 페이지 실행되는 스크립트], [리소스 출처 및 동작을 제어 보안정책] 정의 메커니즘이다.
- CSP 정책은 HTTP 헤더로 웹 서버에서 클라이언트 브라우저로 전송된다.
- 해당 헤더는 웹 페이지 로드 동안 어떤 리소스 및 스크립트를 실행 하는지를 지정한다.
- CSP Bypass : CSP 정책 우회 를 의미한다.
- include를 스크립트에 추가해 결과를 보여준다.
SSH Key 기반 원격접속
- sudo ssh-keygen –t ras 사용해 칼리 리눅스 터미널에서 SSH Key를 생성 가능
- ssh-keygen 은 공개키/비밀키 한쌍을 생성한다.
- 클라이언트는 비밀키, 서버는 공개키를 가지고 접속한다.
애플리케이션 보안 정리
- 파이썬 시큐어 코딩
- 공공기관, 금융권 SW 사용 시, 보안약점 진단 요구.
- 입력한 데이터의 검증 및 표현에서, SQL 인젝션 방지 목적으로 ORM 사용 또는 바인딩 파라미터 방식을 권고한다.
- 바인딩 파라미터는 SQL 쿼리에서 사용되는 변수이다. ORM에서 바인딩 파라미터로 SQL을 생성해 사용하면 자동적으로 안전한 방식이 된다.
호스트-게스트 브릿지 네트워크 구조에서의 네트워크 설정 관련 궁금증
##### 브릿지 네트워크 모드에서 호스트 eth0은 없는데, 게스트는 있다고 나오는 걸까?
- eth0은 윈도우 OS에서 직접 표기하지 않고, 이더넷 어댑터 이더넷이라고 표기한다.
- 반대로 칼리 리눅스에서는 eth0 직접 표기한다.
##### 윈도우와 리눅스의 ipconfig / ifconfig eth0 직접 명시 부분의 차이가 발생하는 이유는?
- OS마다 네트워크 아키텍처 및 디자인 차이로 발생하기 때문이다.
##### 그래도 브릿지 네트워크 모드로 설정했는데, 왜 동일하지 않는거야?
- 호스트 OS가 와이파이로 인터넷이 연결되어 있기 때문이다.
- 호스트 OS의 [Wi-Fi 인터페이스]가 [무선 LAN 어댑터 Wi-Fi]로 설정되어있고, 해당 연결을 공유해 게스트 OS에서는 [이더넷 어댑터]로 나타나는 것이다.

동일한 와이파이에 연결된 두 노트북의 칼리 리눅스에서는 eth0 값이 동일한가?(브릿지 네트워크 모드에서)
- 동일한 가상 이미지 사용으로 가상화된 네트워크 인터페이스 설정이 이미지에 포함된 경우.
- 호스트 OS의 공유한 무선 LAN 어댑터로부터 동일한 eth0 주소를 우연히 받은 경우
나는 1번이 더 유력해 보인다. 다른 교육자분의 칼리 리눅스 eth0 주소를 확인했을 때 동일했기 때문이다.
왜 칼리 리눅스 DVWA 실습을 하다보면 인터넷이 튕길때가 있을까?
- 칼리 리눅스 OS, 호스트 OS 는 브릿지 네트워크 모드이다. 두 OS는 네트워크 설정을 공유한다.
- 칼리 리눅스 Burp Suite 프로그램을 처음 실행하면 이후 자동으로 설정된 프록시를 사용해 크로미움 브라우저로부터 Burp Suite 인터럽트 기능을 사용하게 된다.
- 칼리 리눅스 OS 설정에서는 브릿지 네트워크 이므로 계속 호스트-게스트 간 네트워크 설정을 공유하려고 한다. 그러나 게스트 OS 내부에서 사용하는 프로그램에서 프록시 서버를 사용한다. 이렇게 서로다른 네트워크 설정의 사용이 맞물려 게스트와 호스트가 동일하게 연결된 공유기가 죽어버리는 것 같다.
- 해결방법 : 게스트 OS 네트워크 설정에서 프록시 설정을 버프스위트 프록시와 동일하게 설정한다!
#### Bruf Suite 프로그램을 종료했는데도, 칼리 리눅스 인터넷 연결이 끊기는 이유는?
- 버프 스위트 프록시 기능으로 칼리 리눅스 내 DVWA 접속으로 인해 연결이 끊기는 듯.
- 노트북을 한번껏다 켜야 한다.