반응형

취약점 16

[비박스(bWAPP)] - 하트블리드 취약점

하트블리드 취약점 하트블리드 취약점은 지금까지 알려진 취약점 중에서도 가장 유명하다고 할 수 있는 취약점이다. 2014년에 공개되었으면 SSL/TLS 프로토콜을 구현한 OpenSSL 라이브러리 중 1.0.1 ~ 1.0.1f 버전에 존재하는 취약점이다. 원래 HTTPS로 구현된 웹사이트들은 안전하다고 알려져있지만 하트블리드 취약점으로 인해 민감한 정보가 노출될 수 있다. 취약점이 SSL/TLS 하트비트라는 확장 기능에서 발견되었기 때문에, 하트블리드라는 이름이 생겼다. 하트 블리드 취약점을 이용하면 공격자는 웹 서버 호스트의 메모리를 읽을 수 있게 되어 사용자의 로그인 정보 및 그 밖에 노출되면 안되는 민감한 정보들을 탈취 할 수 있다. Nginx 웹 서버가 취약한 OpenSSL 저번을 사용하고 있다. 힌..

[Hackerschool FTZ] - level 5 문제

문제 내용 힌트를 보면 /usr/bin/level5 프로그램을 실행하면 /tmp 디렉토리에 level5.tmp라는 임시 파일을 생성한다고 한다. /usr/bin/level5를 실행하고 /tmp 디렉토리를 확인 해 보겠다. 명령어를 실행하였지만 level5.tmp가 생성되지 않았다. 하지만 생성된것이 아니라 빨리 삭제가 된것이여서 보이지 않는 것이다. 이것은 레이스 컨디션 공격을 통해 문제를 해결할 수 있다. 레이스 컨디션 공격을 위한 조건은 아래와 같다. 1. SUID가 걸려있어야 한다. 2. 임시파일을 생성해야 한다. 3. 임시로 생성되는 파일의 이름을 알아야 한다. /usr/bin/level5를 실행하면 /tmp/level5.tmp 파일이 생성된다. setUID가 걸려있고 임시파일을 생성하고 생성되는..

[비박스(bWAPP)] - Directory Traversal - Files

리눅스에서 ../ 문자열은 파일의 경로를 지정할 때 사용되면 상위 디렉터리의 경로를 지정한다. 디렉터리 트레버설 취약점은 파일 경로를 지정하는 파라미터의 값으로 이러한 ../ 문자열의 입력을 허용함으로써 발생하는 취약점이다. ../../../etc/와 같은 방법으로 추트 디렉터리를 거쳐 다른 디렉터리를 지정할 수 있게 되므로 호스트 내부의 모든 파일에 접근하는 것이 가능하다. bWAPP의 A7 Directory Traversal - Files을 선택하여 실습을 진행한다. Directory Traversal - Files 실습 실습 페이지의 URL을 보면 page 파라미터에 message.txt가 지정되어 전달되고 있다. 이 실습 페이지는 page 파라미터에 저장된 파일인 message.txt 파일의 내용..

[비박스(bWAPP)] - Base64 인코딩

Base64 인코딩이란? base64 인코딩이란 이진 테이터를 아스키 텍스트 문자열로 변환하는 방법이다. base64 인코딩은 대표적으로 전자우편 또는 HTTP 메시지를 전송할 때 사용하는데, 파일 전송과 같이 텍스트로 표현할 수 없는 바이너리 데이터를 전송할 때 base64로 인코딩 하여 전송한다. base64인코딩 과정은 각각 8비트로 구성된 3개의 바이트를 6비트씩 쪼개어 4로 나누는 방식으로 진행된다. 디코딩 과정은 인코딩 과정과 반대로 6비트로 구성된 4개의 바이트를 8비트씩 쪼개어 3등분한다. 비박스에서 base64에 관련한 문제를 풀어보도록 하겠다. 문제 풀이 해당 페이지 내용은 secret은 암호화된 쿠키로 저장되어 있다고 한다. 힌트에는 암호화된 쿠키를 복호화하라는 것 같다. 그림 2와 ..

[비박스(bWAPP)] - HTML5 Web Storage (Secret), XSS - Reflected (GET)

내용을 보면 로그인 이름과 시크릿이 html5에 저장되어 있다고한다. 힌트는 XSS(크로스 사이트 스크립트)를 통해 알아 내는 문제이다. 스토리지를 확인 해 보면 로그인 아이디는 bee이고 시크릿은 any bug?로 정보를 알려주고 있다. 크로스 사이트 스크립트 공격을 시도하기 위해 bWAPP 메뉴 중 A3에 XSS - reflected(get) 메뉴를 선택한 후 공격을 시도해 보겠다. first name에 기본적인 자바스크립트를 작성하여 넣어보겠다. 스크립트가 작동한 것을 확인 하였으니 로컬스토리지에 있는 내용을 읽어 보겠다. localStorage.getItem() 자바스크립트 함수를 이용하여 로컬 스토리지에 저장되어 있는 내용을 읽었고, 인자로 secret을 입력함으로써 secret 키의 값을 읽을..

pentesterlab [From SQL Injection to Shell] 문제

[From SQL Injection to Shell] https://pentesterlab.com/exercises/from_sqli_to_shell/attachments PentesterLab: Learn Web App Pentesting! ISO The ISO for this exercise can be downloaded by clicking here (169MB). pentesterlab.com 위 웹사이트에서 실습 문제를 위한 ISO 파일을 다운 받을 수 있다. 환경구성 종류는 linux로, 버전은 우분투 32비트로 선택한다. 네트워트는 host_only로 설정한다. 부팅이 완료되면 ip addr 명령어를 실행하여 IP 주소를 확인한다. 이 아이피 주소가 웹 서버의 IP주소가 되는 것이다. 웹 ..

반응형