[Dreamhack] Reverse Engineering Stage 6 - rev-basic-3
·
Hacking/Reversing
문제 설명 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요! 획득한 입력값은 DH{} 포맷에 넣어서 인증해주세요. 예시) 입력 값이 Apple_Banana일 경우 flag는 DH{Apple_Banana} https://dreamhack.io/wargame/challenges/17 rev-basic-3 Reversing Basic Challenge #3 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출 dreamhac..
[Dreamhack] Reverse Engineering Stage 6 - Exercise: patch
·
Hacking/Reversing
서론 이번 코스에서는 드림핵 워게임 중 patch문제를 함께 풀어보면서 이제껏 학습한 지식과 도구를 응용해 본다. patch 문제는 아래의 링크에서 확인할 수 있다. https://dreamhack.io/wargame/challenges/49/ patch flag를 그리는 루틴을 분석하고 가려진 flag를 보이게 해주세요. Reference GDI+ - Win32 apps | Microsoft Docs Graphics Functions - Win32 apps | Microsoft Docs File — x64dbg documentation dreamhack.io 본 문제의 파일은 플래그를 이미지로 출력해주지만 일부가 가려져있어 플래그를 읽을 수 없는 상태의 프로그램이다. 이번 코스를 마치면 본 문제를 해결..
[IT@Security] Web 취약점 15. 크로스사이트 리퀘스트 변조(CSRF)
·
Hacking/Web Hacking
CSRF 공격이란? 사이트 간 요청 위조(또는 크로스 사이트 요청 위조 Cross-site request forgery)는 사용자의 신뢰(인증) 정보 내에서 사용자의 요청을 변조함으로써 해당 사용자의 권한으로 악의적인 공격을 수행할 수 있는 취약점으로 사용자 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격 기법이다. OWASP - CSRF 관련 참고사항 https://owasp.org/www-community/attacks/csrf Cross Site Request Forgery (CSRF) | OWASP Foundation Cross Site Request Forgery (CSRF) on the main website for The OWASP Fou..
[IT@Security] Web 취약점 14. 취약한 패스워드 복구
·
Hacking/Web Hacking
취약한 패스워드 복구란? 취약한 패스워드 복구 로직(패스워드 찾기 등)으로 인하여 공격자가 불법적으로 다른 사용자의 패스워드를 획득, 변경할 수 있다. 따라서 패스워드 복구 로직을 변경하고 인증된 사용자 메일이나 SMS에서만 재설정된 패스워드를 확인할 수 있도록 조치해야 한다. 취약한 패스워드 복구 점검 점검 내용 웹 사이트 내 패스워드 복구 절차의 적절성 점검 점검 목적 패스워드 복구 로직을 유추하기 어렵게 구현하고, 인증된 사용자 메일이나 SMS에서만 복구 패스워드를 확인할 수 있도록 하여 비인가자를 통한 사용자 패스워드 획득 및 변경을 방지하기 위함 점검 대상 웹 애플리케이션 소스코드 1. 재설정(또는 패스워드 찾기)되는 패스워드 몇 개를 획득하여 사용자의 연락처, 주소, 메일 주소, 일정 패턴을 ..
[IT@Security] Web 취약점 13. 불충분한 인증
·
Hacking/Web Hacking
불충분한 인증이란? 중요정보(개인정보 변경 등) 페이지에 대한 인증 절차가 불충분할 경우 권한이 없는 사용자가 중요정보 페이지에 접근하여 정보를 유출하거나 변조할 수 있으므로 중요정보 페이지에는 추가적인 인증 절차를 구현하여야 한다. 불충분한 인증 점검 점검 내용 중요 페이지 접근 시 추가 인증 요구 여부 점검 점검 목적 중요 페이지에 추가 인증으로 접근을 강화하여 불필요한 정보의 노출 및 변조를 차단하기 위함 점검 대상 웹 애플리케이션 소스코드 1. 중요정보(개인정보 변경 등) 페이지 접근 시 재인증 여부 확인 개인정보 수정 페이지에 접근 시 회원 비밀번호 확인을 통해 재인증을 하는 것을 확인했다. 수정한 회원 정보 저장 시에도 역시나 재인증을 하는 것을 확인할 수 있었다. 2. 인증 후 페이지에 아이..
[IT@Security] Web 취약점 12. 약한 문자열 강도
·
Hacking/Web Hacking
약한 문자열 강도란? 약한 문자열 강도 취약점: 웹 사이트에서 취약한 패스워드로 회원가입이 가능할 경우 공격자는 추측 및 주변 정보를 수집하여 작성한 사전 파일로 대입을 시도하여 사용자 계정을 탈취할 수 있는 취약점 해당 취약점 존재 시 유추가 용이한 계정 및 패스워드의 사용으로 인한 사용자 권한 탈취 위험이 존재하며, 해당 위험을 방지하기 위해 값의 적절성 및 복잡성을 검증하는 로직을 구현하여야 한다. 약한 문자열 강도 점검 점검 내용 웹페이지 내 로그인 폼 등에 약한 강도의 문자열 사용 여부 점검 점검 목적 유추 가능한 취약한 문자열 사용을 제한하여 계정 및 패스워드 추측 공격을 방지하기 위함 점검 대상 웹 애플리케이션 소스코드 1. 웹 사이트 로그인 페이지의 로그인 창에 추측 가능한 계정이나 패스워..
[IT@Security] Web 취약점 11. 크로스 사이트 스크립팅
·
Hacking/Web Hacking
Cross-site scripting이란? Cross-site scripting(XSS) : 웹 페이지에 악성 스크립트를 삽입하여 해당 스크립트가 다른 사용자들에게 실행되도록 하는 공격, 주로 사용자의 입력값을 웹 페이지에 동적으로 표시할 때 발생한다. 공격 방식은 크게 stored 공격 방식과 reflected 공격 방식으로 나누어진다. 악의적인 사용자는 입력 필드나 URL 매개변수 등을 통해 스크립트를 삽입하고, 이 스크립트는 다른 사용자들의 브라우저에서 실행된다. 이러한 스크립트는 사용자의 쿠키 정보, 세션 데이터, 민감한 개인 정보 등을 탈취하거나 수정할 수 있다. Stored 공격 방식 Stored XSS : 악의적인 스크립트가 서버에 저장되어 다른 사용자에게 계속해서 전달되는 방식의 XSS 공..
[IT@Security] Web 취약점 10. 악성 콘텐츠
·
Hacking/Web Hacking
악성 콘텐츠란? 웹 사이트 게시판, 댓글, 자료실 등에 정상적인 콘텐츠 대신 악성 콘텐츠를 주입하여 실행될 경우 사용자가 해당 콘텐츠 열람 시 악성코드 감염 및 웹 페이지 변조 등 보안상 심각한 위험에 노출될 수 있다. 따라서 사용자 입력 값에 대한 검증 로직 추가 및 실행 제한 설정이 필요하다. 악성 콘텐츠 점검 점검 내용 게시판 등에 악성 콘텐츠 삽입 및 실행 여부 점검 점검 목적 사이트 내 악의적인 콘텐츠 삽입 및 실행을 방지하기 위함 점검 대상 웹 애플리케이션 소스코드, 웹 방화벽 1. 콘텐츠 삽입 및 파일 업로드 제한 필터링 적용 여부 점검 파일 업로드가 가능한 게시판에 php 파일 업로드가 가능하다. 이러한 경우 웹쉘이나 기타 악성 파일을 업로드 할 수 있기 때문에 패치가 필요하다. 2. 게시..
[IT@Security] Web 취약점 9. 정보 누출
·
Hacking/Web Hacking
정보 누출이란? 웹 사이트에 중요정보(개인정보, 계정정보, 금융정보 등)가 노출되거나 에러 발생 시 과도한 정보(애플리케이션 정보, DB 정보, 웹 서버 구성 정보, 개발 과정의 코멘트 등)가 노출되는 취약점이다. 과도한 정보 누출은 공격자들의 2차 공격을 위한 정보로 활용될 수 있다. 웹 사이트에 노출되는 중요정보는 마스킹을 적용하여야 하며, 발생 가능한 에러에 대해 최소한의 정보 또는 사전에 준비된 메시지만 출력해야 한다. 정보 누출 점검 점검 내용 웹 서비스 시 불필요한 정보가 노출되는지 여부 점검 점검 목적 웹 서비스 시 불필요한 정보가 노출되는 것을 방지함으로써 2차 공격에 활용될 수 있는 정보 노출을 차단하기 위함 점검 대상 웹 애플리케이션 소스코드, 웹 서버 1. 웹 사이트에 중요정보가 평문..
[IT@Security] Web 취약점 8. 디렉터리 인덱싱
·
Hacking/Web Hacking
디렉터리 인덱싱이란? 디렉터리 인덱싱 취약점 : 특정 디렉터리에 초기 페이지 (index.html, home.html, default.asp 등)의 파일이 존재하지 않을 때 자동으로 디렉터리 리스트를 출력하는 취약점 해당 취약점이 존재할 경우 브라우저를 통해 특정 디렉터리 내 파일 리스트를 노출하여 응용시스템의 구조를 외부에 허용할 수 있고, 민감한 정보가 포함된 설정 파일 등이 노출될 경우 보안상 심각한 위험을 초래할 수 있다. index of 취약점이라고도 한다. 디렉터리 인덱싱 점검 점검 내용 웹 서버 내 디렉터리 인덱싱 취약점 존재 여부 점검 점검 목적 디렉터리 인덱싱 취약점을 제거하여 특정 디렉터리 내 불필요한 파일 정보의 노출을 차단 점검 대상 웹 서버 1. URL 경로 중 확인하고자 하는 디..
[IT@Security] Web 취약점 7. XPath Injection
·
Hacking/Web Hacking
XPath Injection이란? 데이터베이스와 연동된 웹 애플리케이션에서 XPath(XML Path Language) 및 XQuery 질의문에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 입력이 가능한 폼(웹 브라우저 주소입력창 또는 로그인 폼 등)에 조작된 질의문을 삽입하여 인증 우회를 통해 XML 문서로부터 인가되지 않은 데이터를 열람 할 수 있는 취약점이다. 해당 취약점이 존재할 경우 프로그래머가 의도하지 않았던 문자열을 전달하여 쿼리문의 의미를 왜곡시키거나 그 구조를 변경하고 임의의 쿼리를 실행하여 인가되지 않은 데이터를 열람할 수 있으므로 적절한 필터링 로직 구현이 필요하다. XPath Injection 점검 점검 내용 웹페이지 내 조작된 XPath 쿼리 공격 가능성 점검 점검 목적 X..
[IT@Security] Web 취약점 6. SSI Injection
·
Hacking/Web Hacking
SSI Injection이란? SSI(Server-Side Includes) : CGI 프로그램을 작성하거나 혹은 서버사이드 스크립트를 사용하는 언어로, 웹 서버가 사용자에게 페이지를 제공하기 전에 구문을 해석하도록 지시하는 역할을 한다. SSI(Server-Side Includes) 인젝션: HTML 문서 내 입력받은 변수 값을 서버 측에서 처리할 때 부적절한 명령문이 포함 및 실행되어 서버의 데이터가 유출되는 취약점이다. 해당 취약점이 존재할 경우 웹 서버 상에 있는 파일을 include 시켜 명령문이 실행되게 함으로 불법적으로 데이터에 접근할 수 있다. 공통 SSI 구현은 외부의 파일을 Include 할 수 있는 명령어를 제공하며, 웹 서버의 CGI 환경 변수를 설정하고 출력할 수 있고, 외부의 C..