SK shieldus Rookies 16기 (애플리케이션 보안#07)

만두다섯개·2023년 11월 12일

SK 루키즈 16기

목록 보기
14/52

주요 정보

  • 교육 과정명 : 클라우드기반 스마트융합보안 과정 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 값이 동일한가?(브릿지 네트워크 모드에서)
  1. 동일한 가상 이미지 사용으로 가상화된 네트워크 인터페이스 설정이 이미지에 포함된 경우.
  2. 호스트 OS의 공유한 무선 LAN 어댑터로부터 동일한 eth0 주소를 우연히 받은 경우
    나는 1번이 더 유력해 보인다. 다른 교육자분의 칼리 리눅스 eth0 주소를 확인했을 때 동일했기 때문이다.

왜 칼리 리눅스 DVWA 실습을 하다보면 인터넷이 튕길때가 있을까?

  • 칼리 리눅스 OS, 호스트 OS 는 브릿지 네트워크 모드이다. 두 OS는 네트워크 설정을 공유한다.
  • 칼리 리눅스 Burp Suite 프로그램을 처음 실행하면 이후 자동으로 설정된 프록시를 사용해 크로미움 브라우저로부터 Burp Suite 인터럽트 기능을 사용하게 된다.
  • 칼리 리눅스 OS 설정에서는 브릿지 네트워크 이므로 계속 호스트-게스트 간 네트워크 설정을 공유하려고 한다. 그러나 게스트 OS 내부에서 사용하는 프로그램에서 프록시 서버를 사용한다. 이렇게 서로다른 네트워크 설정의 사용이 맞물려 게스트와 호스트가 동일하게 연결된 공유기가 죽어버리는 것 같다.
  • 해결방법 : 게스트 OS 네트워크 설정에서 프록시 설정을 버프스위트 프록시와 동일하게 설정한다!

#### Bruf Suite 프로그램을 종료했는데도, 칼리 리눅스 인터넷 연결이 끊기는 이유는?

  • 버프 스위트 프록시 기능으로 칼리 리눅스 내 DVWA 접속으로 인해 연결이 끊기는 듯.
  • 노트북을 한번껏다 켜야 한다.
profile
磨斧爲針

0개의 댓글