반응형

보안 공부/Web 보안 27

Server-side Template Injection(SSTI) template 별 점검 방법

Template 별 점검 방법 * Smarty (unsecured) - PHP - 기본 Injection 확인 구문 >> {5*5} //연산 결과 : 25 >> a{*comment*}b //주석 결과 : ab - PHP 코드를 사용하는 구문 {php}$d="bHM=";system(base64_decode(str_pad(strtr($d,'-_','+/'), strlen($d)%4,'=',STR_PAD_RIGHT)));{/php} >> ls 명령어를 base64로 인코딩하여 명령어 실행 - Smarty 문법 구문 >> {include file = '/etc/passwd'} >> {include_php file='/etc/passwd'} * Twig(> {{5*5}} // 연산 결과 : 25 >> {{5*"5..

Server-side Template Injection 취약점 (SSTI)

* Server-side Template이란? 정적 웹페이지 - 서버에 미리 저장된 정보(HTML, 이미지, JS등)를 별다른 가공 없이 바로 보여주는 페이지 동적 웹페이지 - 서버 내 정보를 스크립트로 가공한 이후 전달되는 페이지 Server-side Template Engine - 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어 최종 페이지(html)를 완성한 이후 클라이언트에서 전달해주는 역할 - Html 코드에 고정적으로 사용하는 부분은 Template으로 만들고 동적 생성해야 하는 부분만 Template의 특정 장소에 끼워 넣는 방식으로 동작 >> 사용자가 입력하는 데이터와 미리 정의된 템플릿을 조합하여 사용자에게 보여주는 방식 Server-side Templa..

Spring Framework 취약점 진단

Spring Framework Spring Framework는 2002년부터 사용된 Java 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 Spring이라고도 하며, Java 기반 동적인 웹 사이트를 개발하기 위한 여러가지 서비스를 제공 공공기고나의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로 사용됨 Spring Framework 파일구조 Servlet-context.xml : 서버 요청과 관련된 객체 정의 (URL 관련된 controller나, 어노이테이션 등의 설정) root-context.xml : 비즈니스 로직을 위한 설정(ex. 회원가입 과정-아이디 중복여부 확인) / DB에 접속하기 위한 정보 기술(id, pw) views(디렉터리) : Sprin..

OpenSSL 취약점 점검 가이드

SSL(Secure Sockets Layer) / TLS(Transport Layer Security) 인터넷 상의 보안 통신 표준, 데이터를 암호화 하는 프로토콜 네트워크 구간에서의 데이터를 암호화 하여 중간에 데이터가 탈취되거나 도청될 때 데이터를 주고받는 당사자 외에는 복호화 할 수 없음. 인증 - 무결성 - 기밀성을 보장함 OpenSSL C언어로 되어 있는 공개 암호화 라이브러리, 비밀키 암호화/공개키 암호화/MAC/키 관리 SSL,TLS에서 사용되는 거의 모든 암호화 알고리즘이 구현되어 있음 오픈소스 프로젝트로 개발되어 여러 사람들에게 안정성이 인증되었고, 무료로 사용할 수 있을 뿐만 아니라 제공되는 기능들은 많은 소프트웨어에서 사용할 정도의 보안성을 가지고 있음 발생하는 취약점 리스트 - He..

wordpress 취약점 진단 방법

정보 수집부터 보호 대책 까지 1. wordpress 사용 확인 : 점검을 수행할 대상에서 wordpress를 사용하고 있는지 확인한다. - 메인 페이지나 특정(plugin을 사용하는) 페이지 접근 시 페이지 내 소스코드 또는 주석으로 wordpress 버번과 사용중인 plugin 이름, 버전 정보를 확인 할 수 있음. - style 부분에서 사용중인 theme 정보를 확인할 수 있음 2. 정보수집 1) cve 정보 수집 - wordpress theme vulnerabilities 2) nmap nse - http-wordpress-enum -> plugin, theme 정보 스캔 > 명령어 : nmap -sV -p 80 --script http-wordpress-enum 3) wpscan : WPSca..

JWT(Json web token) 취약점 점검

이전 작성 참고 내용 https://itinformation.tistory.com/527 JWT(Json Web Token) 보안 특성 및 대처 방안 JWT 란? - JWT는 상호간의 정보를 안전하게 전송하는데 사용되는 기술 - 주로 신원(identity) 정보와 클라이언트의 요청과 관련된 정보를 운반하는데 사용 - 토큰은 인증(authentication)을 통해서 생성 -> itinformation.tistory.com JWT 장점 - JWT는 쿠키 등에 저장되므로 서버에서 인증을 위한 세션 저장소가 필요 없음 - 다른 서비스 인증에서도 공통적으로 사용할 수 있어 확장성이 뛰어남 - REST 서비스로 제공 가능 JWT 단점 - 필드가 추가되면 토큰 크기가 증가 - Header나 payload는 단순히 ..

취약점 점검을 위한 자바스크립트 분석 유형

1. Client Side 검증 우회 - 데이터를 서버로 보내기 전에 클라이언트에서 먼저 검증하여 사용자의 실수로 발생하는 통신의 낭비를 줄일 수 있음 - 서버에서 값이 유효한지 확인하는 과정이 없어 사용자에게 더 빠른 오류 피드백을 줄 수 있음 - 단점 > 클라이언트에서만 값을 확인할 경우, 서버에서 데이터를 빼가는 등의 악영향을 미칠 수 있음 > E2E 암호화를 하지 않는 경우 전송되는 데이터를 손쉽게 바꿀 수 있음 > 클라이언트에서 검증하는 로직은 공격자가 확인하고 우회할 수 있음 2. 보안 프로그램 설치 탐지 우회 - 보안 프로그램은 로컬에서 동작하는 웹 서버 구조를 가지고 있음 - 자바 스크립트로 보안 프로그램에 요청을 보내고 요청에 따라 암호화, 전자 서명 등을 진행 - 대책 > 난독화를 통한..

SSL 취약점 (HeartBleed, Poodle 취약점)

heartBleed (CVE-2014-0160) - 개요 : SSL을 사용한 통신 과정에는 클라이언트와 서버의 연결 지속성을 유지하기 위해 HeartBeat를 사용하는데, 이 과정에서 경계값을 제대로 검증하지 않아 서버의 메모리가 그대로 노출되는 취약점 - 이 취약점을 통핸 개인키, 비밀키, 세션정보를 획득이 가능하고 클라이언트와 서버 간의 암호화 통신 내용을 해독할 수 있음 - 또한 heartBleed 취약점은 공격자가 접근한 흔적을 남기지 않기 때문에 피해규모를 확인할 수가 없으며 추적 불가능 - 취약점 포인트 : 사용자가 웹사이트에 접속을 하였을 때 서버에 정보를 보내지 않더라도 연결을 유지하기 위해 사용되는 HeartBeat를 프로토콜을 사용할 때 발생 - 클라이언트는 서버의 작동 여부를 확인하며..

SSL 공격법 'POODLE' 취약점

개요 Google의 보안 전문가들(Bodo Moller 외 2명)은 SSL 3.0의 설계상의 취약점과 이를 활용한 공격법 "POODLE (Padding Oracle On Downgraded Legacy Encryption)"에 대한 상세 보고서를 공개('14,10.14) "POODLE"은 TLS 연결 설정과정에서 하위버전인 SSL3.0으로 연결 수립을 유도한 뒤, 패딩 오라클 공격을 통해 암호화된 통신내용을 복호화하는 공격기법 ※ SSL/TLS : 통신 과정에서 보안과 데이터 무결성을 제공하는 보안 프로토콜. 넷스케이프사에서 SSL을 개발 하여 업계표준으로 사용되다가 수정을 거쳐 TLS로 명칭을 변경하고 국제표준으로 채택됨 ※ 패딩 오라클 공격 : 알고리즘 자체 취약성이 아니라 컴퓨터 동작 시간, 온도,..

Http secure flag (http 보안 플래그)

쿠키란 쿠키(Cookie)란 서버가 브라우저에게 주는 정보이다. 주로 사용자의 로그인 결과 정보를 응답 헤더의 Set-Cookie에 담아 브라우저에게 전달하면, 브라우저는 해당 정보를 로컬에 저장하여 활용한다. 대개 브라우저를 종료하면 같이 소멸되는 짧은 수명의 쿠키를 가장 많이 사용하고, 브라우저를 종료해도 오랫동안 유지되는 긴 수명의 쿠키 또한 사용한다. secure 브라우저에서 쿠키는 기본적으로 HTTP, HTTPS 프로토콜에 관계없이 서버에 전달된다. 이 경우 HTTP 요청시 외부의 공격자에게 쿠키 정보를 탈취당할 수 있어 위험하다. secure를 명시하면 HTTPS 프로토콜일 경우에만 쿠키를 전달하여 외부의 공격자로부터 쿠키 정보를 보호할 수 있다. -> Secure attribute is mo..