
Stored XSS를 이용한 CSRF 공격 실습
Stored XSS 취약점과 CSRF 취약점을 결합하여 관리자 계정의 비밀번호를 탈취하는 공격 시나리오를 실습해보았다. 실습 환경 취약한 기능 페이지 1. 회원 게시판 (member_form.php, member_insert.php) Stored XSS 취약: htmlspecialchars() 미적용 SQL Injection 방어 부...

Stored XSS 취약점과 CSRF 취약점을 결합하여 관리자 계정의 비밀번호를 탈취하는 공격 시나리오를 실습해보았다. 실습 환경 취약한 기능 페이지 1. 회원 게시판 (member_form.php, member_insert.php) Stored XSS 취약: htmlspecialchars() 미적용 SQL Injection 방어 부...
1. Executive Summary 본 보고서는 자체 개발한 PHP 기반 회원 게시판 시스템에 대한 취약점 진단 결과를 담고 있습니다. 진단 결과, 사용자 입력값에 대한 검증 및 필터링 부재로 인해 Stored XSS(저장형 크로스 사이트 스크립팅) 취약점이 발견되었습니다. 주요 발견사항 취약점 유형: Stored XSS (CWE-79) ...
1. Executive Summary 본 보고서는 PHP 기반 회원 시스템에서 발견된 2차 SQL Injection(Second-order SQLi) 취약점을 정리합니다. 회원가입 단계에서 악의적인 SQL 구문이 포함된 username이 저장되고, 이후 mypage.php와 mypage_update.php에서 해당 값이 Prepared Stateme...
들어가며 비전공자(IT와 무관한 직종에)로서 필기 2번, 실기 2번 만에 보안 기사에 합격했습니다. 동회차 합격 스토리가 아니라서… 더 도움될 팁을 드릴 수 있을 것 같습니다. 시험 결과 요약 필기 1차 (2024년 2회): 과락은 없었지만 59점, 1점 차이로 불합격 필기 2차 (2024년 4회): 60점대로 합격(정확한 점수는 기억 ...
접근 통제란? 접근 제어는 누가 / 무엇이 특정 동작을 수행하거나 자원에 접근할 수 있는지를 제한하는 기능이다. 웹 애플리케이션에서는 인증(authentication)과 세션 관리(session management)를 기반으로 동작하는데, 인증과 세션 관리, 접근 제어 용어를 구별하면 아래와 같다. 인증(Authentication...

입력값 받는 모든 곳에 선처리 질의문을 적용하기 전에, 2차 SQLi가 어떤 식으로 작용하는지 확인만 해보려고 함. SQLi에 취약한 페이지 1. 회원가입 기능 페이지 (register_process.php) 입력값 이스케이프만 하고 있음! <?php // error_reporting(E_ALL); // ini_set('display_...

SQLi 시큐어 코딩 아래는 예전에 만들었었던 로그인 페이지(APM환경) 코드이다. <?php // MySQL 연결 $dbhost = 'localhost'; $dbuser = 'test22'; $dbpass = 'pass22'; $dbname = 'logintest'; $conn = mysqli_connect($dbhost, $dbuser...
Blind SSRF(Sever Side Request Forgery)란? 블라인드 SSRF는 애플리케이션이 사용자가 제공한 URL로 백엔드 HTTP 요청을 보내도록 유도할 수는 있지만, 그 백엔드 요청의 응답 내용이 프론트엔드 응답에 포함되지 않는 유형의 취약점이다. 즉, 서버가 어딘가에 요청을 보내긴 보내는데, 그 결과를 화면에서 바로 확인할...
SSRF(Sever Side Request Forgery)란? 서버 측 공격 위조. 공격자가 원격 서버에 HTTP 요청을 위조하도록 하는 기법. 서버가 임의의 요청을 하게 하는 공격으로, 원리는 CSRF(클라이언트 측 공격 위조)와 같다. 서버가 외부 자원(리소스)를 이용하는 곳이나, 파라미터로 url을 받는 요청에서 일어날 수 있다. 보통 공...
실습 내용 아래는 apm 환경에서 파일 업로드 기능을 수행하는 코드이다. <?php session_start(); $username = $_SESSION["username"]; $title = $_POST["title"]; $content = $_POST["content"]; $title = htmlspecialchars($titl...