본문 바로가기

전체 글22

2025 5급 공채 전산직 공무원 [정보보호] 1, 2차 시험 후기 (작년 7월, 타 블로그에 올렸던 글을 옮겨왔습니다) 1차 시험 후기​일단 1차는 문 닫고 들어왔다...ㅎ 시험 준비는 총 두달정도 했다.한림법학원 모의고사 반으로 등록해서 피셋을 처음 접했는데,자료해석 모의고사는 정말 너무 어려웠던지라 많이 당황했고, 지금 생각해도 잘못 끼워진 첫 단추라 생각한다.. 상판이나 언어는 모고로 시작해도 괜찮았다! 2차 시험 후기 2차 공부는 학교 다니면서 공부해서.. 많이 못했다.. (핑계일지도. ㅜㅜ) 마지막 6월에 조금 .. 아주 조금... 불태웠다... 기말고사 기간도 겹치고 해서 좀 정신없이 사느라.. ㅎㅎ 일단 한양대는 오르막이... 엄청나다. 첫 날 뚜벅뚜벅 올라가는데 비까지 왔다... 심지어 정보보호 직렬은 5층이라서 첫날에는 엘리베이터가 없는 줄 알고 .. 2026. 3. 3.
[bWAPP] Cross-site Request Forgery (CSRF) 공격 실습 크로스 사이트 요청 변조(CSRF): 공격자에 의해 사용자가 의도하지 않은 악의적인 행위를 서버에 요청하는 공격. 공격자가 입력한 악의적인 스크립트 코드에 접근하면 사용자의 웹 브라우저는 스크립트 코드에서 의도한 내용을 웹 서버에 요청한다. 웹 서버는 변조된 요청을 사용자의 정상적인 요청으로 판단하고 응답한다. XSS와 CSRF의 차이점: CSRF는 웹 브라우저(클라이언트)를 신뢰해서 발생하는 취약점이고, 웹 사이트는 사용자가 보낸 정상적인 요청과 변조된 요청을 구별하지 못한다. XSS는 공격 대상자가 사용자이고, CSRF는 사용자가 공격의 매개물로 공격자를 대신하여 악의적인 요청을 웹 사이트에 요청한다. 1. XML 외부 엔티티를 활용한 DoS 공격 (XDoS)XML 외부 엔티티 공격에는 SYSTEM .. 2025. 9. 4.
[bWAPP] Server Side Request Forgery (SSRF) 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) 서버 측 요청 변조(SSRF): 공격자가 요청을 변조하여 취약한 서버가 내부 망에 악의적인 요청을 보내게 하는 공격. 비박스 서버의 SSRF 공격 유형:1. RFI를 이용한 내부 네트워크 호스트의 포트 스캔2. XXE(XML External Entity)를 사용한 내부 네트워크 자원 접근3. XXE를 통한 스마트 TV 해킹(실습X) 1. RFI를 이용한 내부 네트워크 호스트의 포트 스캔 a) 'rlfi.php' 페이지에 접속한다. b) RFI에 사용할 php 코드는 /var/www/evil 디렉터리에 있다.'ssrf-1.txt'는 포트 스캐닝 후 그 결과를 출력하는 PHP 코드이다.echo 명령으로 .. 2025. 9. 4.
[bWAPP] 디렉터리 리스팅 취약점 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) 경로 탐색 취약점(Directory Traversal): 공격자가 상대경로나 기본으로 설정된 파일명, 디렉터리명을 통하여 관리자가 접근을 허용하지 않은 디렉터리나 파일에서 시스템과 데이터베이스의 정보를 수집하는 공격.≒ 파일 다운로드 취약점 1. Directory Traversal - Directories 취약점 공격'directory_traversal_2.php' 페이지에서는 경로 탐색 취약점으로 documents 디렉터리 내용을 확인할 수 있다. URL의 directory 변수에 documents 대신 passwords 디렉터리를 입력해본다. 또한 절대/상대경로를 사용하여 서버에 있는 디렉터리 정보.. 2025. 9. 3.
[bWAPP] robots.txt 파일 이해 및 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) robots.txt 파일: 페이지에 대한 접근 권한을 설정하는 파일. 웹 크롤러의 접근 범위를 설정하여 구글 검색에서 제외할 수 있다. 구글 해킹으로 검색되어 시스템 및 개인정보가 노출되는 것을 방지하려면 robots 파일을 홈 디렉터리에 생성하고 디렉터리 검색을 제한해야 한다. 하지만 만약 중요 디렉터리가 외부에 노출된다면 페이지에 대한 접근 권한 자체가 노출되어 역으로 공격받을 수 있다. 'sm_robots.php' 페이지에는 robots 파일이 노출되어 있다./admin/, /passwords/ 와 같은 중요 디렉터리가 노출되어 있다. passwords 디렉터리에 접근해보면 디렉터리 권한 설정 미.. 2025. 9. 3.
[bWAPP] Cross-Site Scripting(XSS) - Reflected 공격 실습 이전 XSS 글과 이어진다. (https://rimystory.tistory.com/20)실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) Reflected XSS: 웹 페이지 URL에 존재하는 파라미터에 악의적인 스크립트 코드를 입력하여 사용자가 URL을 클릭하면 실행되게 하는 공격. 스크립트 코드가 포함된 URL을 메일로 전송하거나 게시물로 등록하여 사용자가 클릭하도록 유도한다. Stored XSS 보다는 비교적 사용자가 알아채기 쉬운 편이다. 1. XSS - Reflected (GET)'xss_get.php' 페이지에 들어가서 입력창에 스크립트를 실행해보면 된다. 2. XSS - Reflected (POST)'xss_post.php' 페이지에 들.. 2025. 9. 3.
[bWAPP] Cross-Site Scripting(XSS) - Stored 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) XSS(크로스 사이트 스크립팅): 웹 사이트에서 입력 데이터가 적절한 값인지 검사하지 않고 웹 브라우저를 실행할 때 발생한다.공격자는 입력 데이터에 스크립트 코드를 입력하여 세션 정보를 탈취하는 것부터 사용자를 악의적인 사이트로 이동하게 하거나 악성 프로그램을 강제로 다운로드하게 한다. XSS 종류: 스크립트 코드 입력에 따라 분류된다.- 저장된 XSS(Stored XSS)- 반사된 XSS(Reflected XSS)- DOM-Based XSS XSS 특징: 서버에 전달되는 모든 변수 값에서 발생할 수 있으며, 공격자가 세션을 탈취하여 다른 사용자의 권한을 취득하거나 악성코드를 배포하기 위한 목적, 피싱.. 2025. 9. 3.
[bWAPP] Broken Auth. 비밀번호 무차별/사전 대입 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) - 비밀번호 무차별 대입 공격: 사용자에 대한 계정 정보를 획득하기 위하여 비밀번호로 입력 가능한 모든 문자 조합을 입력하여 사용자의 계정과 비밀번호가 일치할 때까지 대입하는 공격.- 비밀번호 사전 대입 공격: 사용자들이 가장 즐겨 쓰는 비밀번호를 사전처럼 기록한 파일에 있는 문자열을 하나씩 대입하는 공격. 무차별 대입 공격보다 공격 속도는 빠르나 사전 파일에 비밀번호 정보가 없다면 공격은 실패한다. 1. 비밀번호 무차별 대입 공격자동화 도구를 사용하기 위해 웹 사이트의 비밀번호 정책을 파악한 다음, 조합할 문자의 구성과 최소 문자열 길이를 정해야 한다.문자와 숫자가 조금만 복잡해도 가능한 조합의 가지.. 2025. 9. 3.
[bWAPP] 실습 환경 구축 가이드 (버추얼박스, 비박스, 칼리 리눅스 설치) 컴퓨터를 바꿔서 다시 설치하는 김에 처음부터 정리해보려고 한다.. 너무 어렵다. 1. VirtualBox 설치 (https://www.virtualbox.org/wiki/Downloads).exe 파일이라서 바로 설치하고 실행하면 된다. 처음에 라이센스 동의하고 그냥 계속 다음 누르면 됨. 2. bWAPP 환경 설치 (https://sourceforge.net/projects/bwapp/files/bee-box/) 위 압축파일을 다운받고 압축을 푼다. (반디집 추천! 7z 파일이라 안 열릴 수도 있다..) 버추얼박스에 들어가서 새로 만들기를 클릭한다. 중요한건 OS 설정 부분이다. Linux - Ubuntu (32bit)로 설정한다. 아래 하드디스크 부분을 클릭하고 기존 가상 하드 디스크 파일 사용을 누.. 2025. 9. 2.
[bWAPP] XML/Xpath Injection 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) XML은 데이터를 트리 구조의 노드(/)로 표현하며 사용자 정의로 편의에 맞게 데이터를 분류한다.Xpath는 일종의 쿼리로, XML 데이터베이스 내용을 선택하고 조작하기 위하여 사용한다. (Xpath 명령어 파악 필요)XML은 Xpath로 데이터를 호출한다. XML/Xpath 인젝션은 XML 구조에 악의적인 행위를 일으키는 내용을 삽입하거나 Xpath를 조작하여 XML의 내용을 노출하는 취약점이다. 1. Login Formxmli_1.php 페이지는 superhero 그룹의 사용자로 로그인하는 기능을 제공한다.superhero 그룹의 사용자 계정 정보는 XML 데이터베이스에 저장된다. 우선 인젝션 취약.. 2025. 9. 2.
[bWAPP] Blind SQL Injection 공격 실습 (Web Services/SOAP) - SQLMap 활용 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) 이번 실습은 모든 공격을 칼리 리눅스 내에서 진행한다.칼리 리눅스 터미널에서 burpsuite 명령어를 입력하면 칼리에서 버프스위트를 실행할 수 있다.버프스위트 실행 후 Open browser - ip주소를 입력하고 bWAPP에 접속하여 공격 진행. (용어 정리)SOAP(Simple Object Access Protocol)는 애플리케이션 계층의 프로토콜을 전송 계층의 프로토콜로 사용할 수 있게 하는 프로토콜이다.즉, HTTP, HTTPS, SMTP 등을 통하여 XML 기반의 메시지가 네트워크에서 교환된다.웹 서비스는 네트워크에 있는 정보를 모아 서비스로 제공하므로 SOAP 덕분에 물리적으로 인접하지 .. 2025. 8. 26.
[bWAPP] Blind SQL Injection 공격 실습 (Boolean Based) 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) Blind SQL Injection: 쿼리의 결과를 참과 거짓으로만 출력하는 페이지에서 사용하는 공격. (DB 내용을 추측하여 쿼리를 조작한다)1. Boolean Based Injectionsqli_4.php 페이지는 사용자가 입력한 검색어와 일치하는 영화가 데이터베이스에 있는지를 출력한다. 1) 검색란에 작은따옴표를 입력하여 SQL 인젝션이 가능한지 알아본다. 취약점이 있을 경우 SQL 오류 메시지를 출력한다. 2) 참인 쿼리와 거짓인 쿼리의 결과를 확인한다. 3) length 함수와 substring 함수 등을 사용하여 Blind SQL Injection 공격을 수행한다(데이터베이스명을 추측한다).. 2025. 8. 26.
[bWAPP] SQL Injection(POST/Select) 공격 실습 - SQLMap 활용 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) POST/Select 페이지도 이전글인 GET/Select와 마찬가지로 드롭다운 메뉴로 영화 정보를 하나씩 보여준다.하지만 POST 방식의 특성상 URL에서 변수명이 나타나지 않아 버프스위트 도구를 사용한다. 1. 난이도: low버프스위트 - 프록시 - Open browser - beebox - POST/Select 페이지 접속 후 버프스위트로 돌아와서 intercept on을 킨다.이전 글(GET/Select)에서 실행했던 공격 구문을 movie 변수에 동일하게 넣고 Forward를 누른다.0 union select null,table_schema,table_name,column_name,null,n.. 2025. 8. 25.
[bWAPP] SQL Injection(GET/Select) 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) GET/Select (sqli_2.php) 페이지는 드롭다운 메뉴를 사용하여 영화를 선택한다. 1. 난이도: low Get 메소드를 사용하여 요청하기 때문에 URL 상에 변수가 보인다.Go를 눌러보면 변수명은 movie, 숫자형을 입력 값으로 받는 것을 볼 수 있다. 기존 GET/Search의 공격 쿼리와 동일하게 SQL 인젝션을 시도한다./bWAPP/sqli_2.php?movie=0 union select null,database(),@@version,@@datadir,null,null,null&action=go 숫자형만 입력받는 변수에 SQL 인젝션을 시도할 때는 작은 따옴표와 주석 문자를 사용하지.. 2025. 8. 25.
[bWAPP] SQL Injection(POST/Search) 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) POST 방식은 버프스위트 도구를 활용하여 인젝션 공격을 실행한다. 칼리 리눅스에서 별다른 설치 없이 burpsuite 명령어로 실행할 수 있다. 이번엔 따로 프록시를 키지 않고 버프스위트 내에서 Open browser를 눌러 실습을 진행해 볼 것이다. Open browser를 누르면 파란색 크롬 창이 새로 뜬다. 웹 브라우저에서 bWAPP에 접속하는 것과 마찬가지로 ip 주소를 입력하고 비박스에 접속한다. 다시 버프스위트로 돌아와 intercept on을 누르고 브라우저에서 Search 버튼을 누른다. 아래와 같이 데이터를 가로채어 title 변수에 SQL 취약점이 있는지 확인하기 위하여 작은따옴표(.. 2025. 8. 25.
[bWAPP] SQL Injection(GET/Search) 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) SQL Injection: 사용자가 입력한 값을 서버에서 검증하지 않고 데이터베이스 쿼리 일부분으로 인식하여 데이터베이스의 정보가 노출되거나 인증이 우회되는 취약점. 1. 난이도: low 먼저 웹 서버에 SQL 인젝션 취약점이 존재하는지 알아본다. 1. 작은따옴표(')를 입력하여 쿼리에 문법 오류가 발생하는지 확인한다. 오류가 있으면 취약점이 존재한다.SQL syntax에 오류가 발생했음을 확인할 수 있다. (SQL 취약점이 존재한다) 2. 어떤 주석 문자를 사용하는지 확인한다. (#) 혹은 (--) 결과를 보면 이 데이터베이스는 #을 입력했을 때 주석처리 함을 알 수 있다. UNION Based S.. 2025. 8. 25.
[bWAPP] PHP Code Injection 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) PHP Code Injection: PHP에서 exec() 함수나 eval() 함수를 사용한 경우 세미 콜론(;)을 사용하여 다른 함수를 실행할 수 있는 취약점을 활용한 공격. 1. 난이도: lowphpi.php 페이지는 message 글씨를 클릭하면 test라는 문자열을 출력하는 페이지이다.이 때 URL을 보면 GET 메소드로 요청하는 것을 알 수 있다. 따라서 test 대신 다른 문자를 입력하면 그대로 출력된다. [결과화면] 공격 방법: php 코드 인젝션 취약점이 있는지 파악하기 위하여 세미 콜론과 system 함수를 사용해본다.system 함수는 문자열 형태의 명령어를 인자 값으로 받아서 해당.. 2025. 8. 21.
[bWAPP] OS Command Injection 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) OS Command Injection 공격 설명: 취약한 변수로 시스템 명령어를 주입하여 서버 운영체제에 접근하고 서버 정보를 알아내는 공격. 1. 난이도: low commandi.php 페이지는 입력한 주소의 DNS 주소를 출력하는 기능을 가지고 있다.이 때 서버는 이 기능을 제공하기 위해 시스템 명령어인 nslookup을 사용하여 결과를 출력한다. 만약 아래와 같이 입력하게 되면 서버 내부에서는 nslookup | ls ../../../ 가 실행되어 그 결과를 출력하는 것이다. [결과화면]결과를 보면 root 디렉터리 정보를 출력하는 것을 알 수 있다. 만약 넷켓(Netcat) 명령어를 입력하면 .. 2025. 8. 21.
[bWAPP] iFrame Injection 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) iFrame Injection 공격 설명: HTML 문서 안에서 또 다른 HTML 문서를 출력하는 태그. 주로 악성 URL을 삽입한 후 사이즈를 0으로 설정하여 숨기고 리다이렉트 시키거나 경고창을 띄울 수 있다.1. 난이도: lowiframei.php 페이지는 GET 방식으로 데이터를 전송받으므로 아래 사진과 같이 URL에 변수를 노출한다.또한 개발자도구(F12)로 코드를 확인하면 iframe 태그를 사용하여 robots.txt 파일의 내용을 출력한다는 것을 확인할 수 있다. 따라서 iframe 인젝션 공격을 위해 악의적인 html 페이지를 생성한다.간단하게 vi로 /var/www/bWAPP/bad... 2025. 8. 21.
[bWAPP] HTML Injection - Stored (Blog) 공격 실습 실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18) HTML Injection - Stored (Blog) 공격 설명: HTML 태그를 블로그 형식의 페이지에 저장하여 관리자가 의도하지 않은 내용을 출력 혹은 권한 없이 우회하여 다른 페이지로 이동하는 공격. 1. 난이도: lowhtmli_post.php 페이지의 형식을 사용하기 위해서 Reflected(POST) 페이지로 이동하여 개발자 도구(F12)를 키고 HTML 소스 코드를 복사한다. [실행 화면] 복사한 코드: First name: Last name: Go 다시 Stored(Blog) 페이지로 접속하여 textarea에 위 내용을 붙여넣고 Submit 버튼을 누르면 입력한 코드가 실행.. 2025. 8. 21.