본문 바로가기

공부/정보보안20

포맷 스트링 버그(format string bug) 포맷 스트링 버그 포맷 스트링 버그(format string bug)는 printf 등의 함수에서 문자열 입력 포맷을 잘못된 형태로 입력하는 경우 나타나는 버그이다. 보안 취약점으로 포맷 스트링 익스플로잇은 프로그램을 충돌시키거나 악의적인 코드를 실행시키는 데 사용될 수 있다. 버퍼 오버플로 공격에 비해 취약점을 쉽게 찾아낼 수 있고 사전에 완전한 예방이 가능하다. 서식 지정자(Format specifier) C언어의 대표적인 서식 지정자 %d : 정수형 10진수 %f, lf : 실수 %c : 문자 하나(char) %s : 문자열(char[]) %u : 10진수 %o : 8진수 %x : 16진수(소문자) %x : 16진수(대문자) %n : 쓰인 총 바이트 수 포맷 스트링 공격 포맷 스트링 버그는 데이터의.. 2020. 2. 17.
버퍼 오버플로(buffer overflow) 버퍼 오버플로(buffer overflow) 프로그램이 데이터를 버퍼(buffer)에 저장할 때, 버퍼가 가득 차 넘치게 되어 프로그래머가 지정한 부분 바깥에 덮어 씌워버리는 취약점, 버그, 이를 이용한 공격 방법을 말한다. 넘쳐난 데이터는 원래 데이터를 밀어내거나 이상한 곳에 저장하는 것이 아니라 덮어 씌우는 것이다. 덮어 씌워진 메모리에는 다른 데이터가 이미 포함되어 있을 수 있고, 이 때문에 메모리 접근 오류, 프로그램 종료, 시스템 보안 취약점 등이 발생할 수 있다. 버퍼 오버플로는 보통 데이터를 저장하는 과정에서 그 데이터를 저장할 메모리 위치가 유효한지를 검사하지 않아 발생한다. 이러한 경우 데이터가 담긴 위치 근처에 있는 값이 손상되고 그 손상이 프로그램 실행에 영향을 미칠 수도 있다. 특히.. 2020. 2. 15.
제로 트러스트 보안 모델 제로 트러스트 보안 모델 제로 트러스트(Zero Trust)는 2010년 포레스터 리서치(Forrester Reserach)의 애널리스트이던 존 킨더박(John Kindervag)이 처음 소개한 보안 모델/프레임 워크이다. 제로 트러스트 모델은 기본적으로 인증받기 전 그 누구도 신뢰하지 않으며 접근권한을 부여하기 전에 모든 것에 대한 엄격한 인증을 요구한다. 매우 적극적인 보안 방식으로 모든 파일이 잠재적 위험 요소라는 전제하에 모든 데이터를 모니터링하며, 모든 데이터에 접근할 때 안전한 경로를 통하도록 하고 데이터 접근 권한은 필요한 경우에만 허락한다. 시스템 설계 시 기존에 외부에서 내부가 아니라 내부에서 외부로 설계하며 모든 트래픽을 검사, 로그 리뷰한다. 경계 보안 모델의 위험성 기존의 경계 보안.. 2020. 2. 3.
[DVWA] File Upload File Upload 파일 업로드 취약점(File Upload Vulnerability)은 웹 페이지(게시판 등)의 파일 업로드 기능을 이용하여 일반적으로 허용된 파일 이외에 악의적인 영향을 끼치는 스크립트 파일(Web Shell)을 업로드할 수 있는 취약점을 말합니다. 취약점을 이용해 웹 쉘을 업로드하고, 업로드된 웹 쉘의 경로에 접근한 후, 웹 쉘을 실행하여 시스템 명령어를 사용하는 식으로 진행됩니다. Low Level 소스 코드 Low Level의 소스 코드는 특별한 필터링 없이 파일 업로드를 허용하고 있으며, 업로드된 파일은 root/hackable/uploads경로에 저장됩니다. 실습 아무런 필터링도 존재하지 않기 때문에 웹 쉘을 바로 업로드할 수 있습니다. 이후 표시된 경로로 접근하여 웹 쉘을.. 2019. 11. 27.
[DVWA] CSP Bypass CSP Bypass CSP(Content Security Policy)는 XSS(Cross-site scripting) 및 injection 공격을 비롯한 특정 유형의 공격을 탐지하고 완화하는 데 도움을 주는 추가 보안 계층입니다. 기본적인 구현은 Content-Security-Policy라고 불리는 HTTP 헤더를 기반으로 합니다. Low Level 소스 코드 Low level의 소스 코드에는 콘텐츠 허용 목록에 4개의 주소(pastebin, example, code.jquery, ssl.google-analytics)를 추가해 정책이 적용되지 않도록 설정되어있습니다. 여기서 주목해야할 부분은 pastebin.com입니다. pastebin.com은 사용자가 플레인 텍스트를 저장할 수 있는 웹 애플리케이.. 2019. 11. 25.
[Wargame.kr] QR CODE PUZZLE 문제 QR CODE PUZZLE 문제 2019.09.23 기준 113point 문제입니다. javascript puzzle challenge just enjoy! 소스 코드 더보기 QR Code Puzzle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 해결 방법 이미지 경로 unescape 스크립트 부분에서 이미지 경로가 변환되어 있습니다. escape() 함수는 ASCII 에 해당하지 않은 문자를 모두 유니코드 형식으로 변환 그와 반대로 unescape() 함수는 변환된 문자열을 복호화합니다. 변환된 경로를 복호화하기 위해 개발자 도구 console 창에 unescape('.%2f%.. 2019. 9. 23.