본문 바로가기

웹해킹

(16)
웹해킹 #14 자바 역직렬화 취약점 공격 1. 자바 역직렬화 취약점 개요 - 발견 시 공격자가 원격에서 코드를 실행할 수 있는 RCE(Remote Code Execution) 공격으로 이어져 심각한 영향을 줌 - 자바 프로그램상에서 어떤 객체가 생성되면 그 객체는 메모리에 상주하게 되고, 프로그램이 실행되는 동안 필요에 따라 사용됨 - 프로그램이 종료되면 메모리에 있던 객체는 사라지고, 객체에 지금까지 프로그램이 사용하면서 저장한 데이터가 있는데, 그 데이터를 다음 번 프로그램 실행 시에도 계속해서 사용해야 한다면, 메모리에 상주하던 객체와 그 데이터를 파일이나 데이터베이스 등에 저장해 두어야 할 것 - 저장을 하기 위해 객체를 바이트 스트림이라는 순차적 데이터로 변환하는 과정이 직렬화이고, 저장되어 있는 바이트 스트림을 다시 객체로 만들어 원..
웹해킹 #13 알려진 취약점을 이용한 공격 - 메타스플로엣을 활용한 PHP-CGI 취약점 + 알려진 취약점 공격 대응 3. 메타스플로잇을 활용한 PHP-CGI 취약점 공격 - PHP 버전 5.3.12와 5.4.2 이전 버전(오래된 버전)에 소스코드가 노출되거나 공격자가 임의의 코드를 실행할 수 있는 취약점(CVE-2012-1823) 존재 - 요청 URI의 쿼리스트링 부분을 잘못 처리함으로써 발생됨 - bWAPP의 /admin/ 경로에서 PHP-CGI 취약점 공격 실습 가능 실습 : PHP-CGI 취약점에 의해 소스코드가 노출될 수 있는 것을 확인하고, 메타스플로잇 프레임워크를 이용하여 리버스 쉘 획득 - 웹 브라우저를 이용하여 /bWAPP/admin/ 경로로 접속 ->관리자 포털 페이지 - 웹 브라우저 주소창에서 경로 뒤에 추가로 ? 를 입력한 후 쿼리스트링 부분에 -s 입력 192.168.56.102/bWAPP/adm..
웹해킹 #13 알려진 취약점을 이용한 공격 - 쉘쇼크 취약점 2. 쉘쇼크 취약점 공격과 리버스 쉘 실습 - 쉘쇼크 : bash 쉘의 취약점이며, 시스템 환경변수에 () { :;}; 같이 특정 패턴의 문자열과 함께 임의의 명령어가 저장되어 있으면 쉘이 실행될 때 해당 명령어가 실행되는 취약점 - env x=’() { :;}; echo vulnerable’ bash -c ‘echo this is test’ → 이 명령문을 통해 시스템이 쉘쇼크에 취약한지 확인 가능 → x 환경 변수에 쉘쇼크 공격 패턴과 명령어를 지정한 뒤 bash 쉘을 실행하여 지정한 명령어가 실행되는지 확인하는 명령어 →취약 시 echo vunerable 명령어가 실행됨 - CGI로 구현된 웹 애플리케이션의 경우 요청 헤더가 환경 변수로 저장됨으로써, 웹을 통해 쉘쇼크 공격이 가능하여 피해가 더 광..
웹해킹 #13 알려진 취약점을 이용한 공격 - 하트블리드 취약점 - 오픈소스 라이브러리를 직간접적으로 사용하면서 생기는 취약점이 대부분 1. 하트블리드 취약점 공격 실습 - HTTPS 프로토콜의 근간이 되는 SSL/TLS 프로토콜을 구현한 OpenSSL 라이브러리 중 1.0.1 – 1.0.1f 버전에 존재하는 취약점 -> SSL/TLS 하트비트라는 확장 기능에서 발견됨 - 하트블리드 취약점을 통해 공격자가 웹 서버 호스트의 메모리를 읽을 수 있게 되어 사용자의 로그인 정보 및 그 밖에 노출되면 안 되는 민감한 정보들을 탈취할 수 있음 - 8443 포트는 HTTPS 프로토콜로 접속해야 하는 포트인데, HTTPS 프로토콜로 접속하게 되면 모든 통신이 암호화되어 전송되어야 하는 반면, 하트블리드 취약점이 있으면, 로그인 시 사용된 패스워드 등의 사용자 정보가 노출될 수 있..
웹해킹 #12 XXE(XML 외부 엔티티) 공격 - 접근 통제 취약점의 일부 1. XXE 공격 개요 - XML 타입의 데이터가 웹 요청을 통해 전송되고, 서버에서 XML 외부 엔티티를 처리할 수 있도록 설정된 경우 나타남 - 사용자가 웹 어플리케이션으로 전달되는 XML 데이터를 직접 업로드하거나 수정할 수 있는 경우, 공격자는 외부 엔티티를 참조하는 XML 데이터를 전송하여 파일과 같은 서버 내부의 정보를 탈취하거나 서비스 거부 공격, SSFR 등의 공격 수행 가능 - XML 외부 엔티티 선언 형태 - DOCTYPE 선언 후 ENTITY 태그를 이용하여 xxe라는 외부 엔티티 선언 - 선언된 외부 엔티티는 프로그래밍을 할 때 변수를 참조하는 것처럼 XML 내부에서 참조 가능 → xxe 엔티티 참조하면, xxe의 값인 SYSTEM 키워드로 지정된 /et..
웹해킹 #11 접근 통제 취약점 공격 접근 통제가 제대로 이루어지지 않아 공격자가 다른 사용자나 관리자 권한이 필요한 리소스에 접근할 수 있는 되는 것 - 취약한 접근 통제 리스크 사례 ① URL이나 파라미터를 조작하여 다른 사용자의 리소스에 접근하거나 허용되지 않은 기능을 실행할 수 있는 경우 ② 적절한 인증 및 인가 과정을 거치지 않고 관리자 페이지에 접근할 수 있는 경우 ③ 디렉터리 트래버설 취약점과 같이 웹 디렉터리 경로를 벗어난 호스트 내부 경로의 리소스에 접근할 수 있는 경우 1. 안전하지 않은 직접 객체 참고 (IDOR 공격) - 공격자가 요청 메시지의 URL이나 파라미터를 변경하여 정상적으로 허용되지 않은 기능을 실행하거나 다른 사용자의 리소스에 접근할 수 있는 공격 - 서버 쪽에서 입력값 검증을 소홀히 할 경우 IDOR에 취..
웹해킹 #10 민감한 데이터 노출 * 민감한 데이터의 종류 ① 각종 개인정보 (주민등록번호, 카드 정보뿐만 아니라 건강 정보, 종료, 정치 성향, 가족 구성원 등 모든 사생활 관련 정보 포함) ② 패스워드, 세션 ID, 세션 토큰 등과 같은 로그인에 사용되는 정보 ③ 업무상 기밀 등 비공개로 관리되는 정보 - 데이터가 적절히 암호화되지 않거나 평문으로 저장되어 노출되는 경우 위험! * 민감한 데이터 노출 리스크 ① HTTP 프로토콜을 사용하여 민감한 데이터가 전송되는 경우 ② 민감한 데이터가 평문으로 저장되는 경우 ③ 안전하지 않은 암호화 방식을 사용하는 경우 1. HTTP 프로토콜에 의한 노출 - HTTP 프로토콜로 전달되는 요청/응답 메시지는 네트워크 스니핑 기법을 통한 도청 위험 있음 * 네트워크 스니핑 : 네트워크에 전송되는 데이..
웹해킹 #9 파일 업로드 공격 - 파일 업로드 기능을 이용하여 웹쉘이라고 하는 악성 파일 업로드하고 시스템 명령을 실행하는 공격 1. 파일 업로드 공격 개요 - 파일 업로드하는 기능에 보안 대책이 적용되어 있지 않을 때 발생 * 웹쉘 : 웹을 통해 시스템 명령어를 실행할 수 있는 웹 페이지의 일종 2. 파일 업로드 공격 실습 - 이미지 파일 대신 webshell.php 업로드 - 업로드가 성공했으며, ../../hackable/uploads/webshell.php 라는 경로를 통해 파일이 http://192.168.56.102/dvwa/hackable/uploads/webshell.php에 업로드 된 것 확인 가능 (URL 경로가 /dvwa/vulnerabilities/upload/ 이므로 ../ 두 번 사용시 http://192.1..