ForusSec Lab — 내부 보안 교육 플랫폼

주요정보통신기반시설 기술적 취약점 분석·평가 방법 기준 실습 환경

현재 모드: WEB-BASIC

🌐 웹 취약점 진단 (WEB-01 ~ WEB-25)

📋 보고서 가이드
항목취약점명실습 페이지위험도OWASP
WEB-01SQL Injection (인증우회)login.phpA03
WEB-02SQL Injection (데이터추출)search.phpA03
WEB-03XSS — Reflected (반사형)search.phpA03
WEB-04XSS — Stored (저장형)board.phpA03
WEB-05보안 헤더 미설정security_misc.phpA05
WEB-06취약한 암호화 (MD5, 평문)security_misc.phpA02
WEB-07민감정보 노출 (phpinfo, 소스주석)phpinfo.phpA02
WEB-08취약한 인증 (브루트포스, 계정잠금 없음)login.phpA07
WEB-09취약한 세션 관리 (Session Fixation)login.phpA07
WEB-10쿠키 보안 속성 미설정 (HttpOnly 등)login.phpA07
WEB-11CSRF (크로스사이트 요청 위조)admin.phpA01
WEB-12오픈 리다이렉트security_misc.phpA01
WEB-13파일 업로드 취약점 (웹쉘)upload.phpA04
WEB-14IDOR (타인 주문 조회)web14_idor.phpA01
WEB-15SSRF (서버사이드 요청 위조)web15_ssrf.phpA01
WEB-16XXE (XML 외부 엔티티)web16_xxe.phpA05
WEB-17역직렬화 (쿠키 변조)web17_deserialize.phpA08
WEB-18API 키 하드코딩web18_secrets.phpA05
WEB-19JWT 취약점 (alg=none)web19_jwt.phpA07
WEB-20Rate Limiting 미비 (브루트포스)web20_ratelimit.phpA07
WEB-21CORS 취약 설정 (모든 Origin 허용)web21_cors.phpA01
WEB-22Command Injection (Ping 명령어 삽입)web22_cmd_inject.phpA03
WEB-23Path Traversal (디렉토리 이탈)web23_path_traversal.phpA01
WEB-24NoSQL Injection (JSON 연산자 삽입)web24_nosqli.phpA03
WEB-25SSTI (템플릿 인젝션)web25_ssti.phpA03
WEB-32LDAP Injection (인사정보 검색)web32_ldap.phpA03
WEB-34SSI Injection (Server-Side Includes)web34_ssi.phpA03
WEB-XPXPath Injection (XML 조회)web_xpath.phpA03
WEB-PW취약한 패스워드 복구web_password_reset.phpA07
WEB-SE세션 예측/고정/만료web_session_analysis.phpA07
🎯 총 26개 취약점 페이지 + 한국도로공사서비스 CSR-002 실무 진단

🌐 웹 취약점 심화 실습 (전용 페이지 13종)

파일취약점명난이도
web01_sqli_error.phpError-Based SQL Injection
web02_sqli_blind_time.phpBlind SQLi (Time-Based)
web03_sqli_second_order.phpSecond-Order SQL Injection
web04_nosqli_mongo_style.phpNoSQL Injection (MongoDB 스타일)
web05_sqli_xff_header.phpSQLi via HTTP Header (XFF)
web06_xss_dom_proto.phpDOM-based XSS + Prototype Pollution
web07_xss_stored_waf.phpStored XSS (WAF 우회)
web08_xss_reflected_polyglot.phpReflected XSS (Polyglot)
web09_csrf_custom_header.phpCSRF (Custom Header 우회)
web10_upload_symlink.php파일 업로드 (Zip/Symlink)
web11_otp_bruteforce.phpOTP 브루트포스
web12_idor_basic.phpIDOR (직접 객체 참조)
web13_race_condition.phpRace Condition (쿠폰 중복사용)

🌐 웹 취약점 고급 실습 (WEB-36~55, 20종)

ID취약점명파일
WEB-36GraphQL Introspection 정보노출web36
WEB-37GraphQL Batching Attackweb37
WEB-38GraphQL 필드 인가 누락web38
WEB-39WebSocket Origin CSRFweb39
WEB-40WebSocket 메시지 인젝션web40
WEB-41WebSocket Origin 스푸핑web41
WEB-42HTTP/2 Rapid Resetweb42
WEB-43HTTP Smuggling (CL.TE)web43
WEB-44HTTP Smuggling (TE.CL)web44
WEB-45캐시 포이즈닝web45
WEB-46웹 캐시 디셉션web46
WEB-47서브도메인 테이크오버web47
WEB-48JWT alg=none 우회web48
WEB-49JWT RS256→HS256 키 컨퓨전web49
WEB-50JWT kid 경로 조작web50
WEB-51JWT jku SSRFweb51
WEB-52JWT 만료 토큰 재사용web52
WEB-53OAuth Redirect URI 우회web53
WEB-54OAuth CSRF + Code 탈취web54
WEB-55Mass Assignmentweb55

🖥️ 인프라 진단 확장 (Windows·네트워크·클라우드·K8s, 40종)

분류항목
🪟 Windows Server불필요 서비스 점검
레지스트리 SAM 권한
비밀번호 정책 (인터랙티브)
관리자 계정/RID
RDP 접근 제한
불필요 포트(445/139)
감사 정책
UAC 우회
LSA 보호 우회
SMB Signing
🔌 네트워크 장비Default Credential (인터랙티브)
SNMP Community String (인터랙티브)
Telnet/SSH
불필요 포트(TFTP 등)
VLAN Hopping
STP Manipulation
ACL 점검
DHCP Snooping
ARP Spoofing
관리 인터페이스 노출
☁️ 클라우드 설정S3 Public 버킷
IAM 과도한 권한
보안그룹 오픈(0.0.0.0/0)
Logging 미활성
KMS Key 공유
Snapshot Public 공유
IMDS v1 SSRF
암호화 미적용
Root MFA 미설정
Cross-Account Trust
🐳 컨테이너/K8sPrivileged Container
Root 실행
Read-Only RootFS 미적용
Docker Socket 마운트
Host Network 공유
RBAC 과도 권한
Pod Security Policy 미적용
Secret 평문 노출
SA Token Auto-Mount
신뢰할 수 없는 이미지

🆕 신규 훈련 모듈 (실무 자료 기반)

🎣 피싱 모의훈련

실제 훈련 사례 기반 시뮬레이터
phishing_sim.php →

🚨 사이버위기 도상훈련

4단계 경보 · 12단계 프로세스
crisis_training.php →

📜 ISMS-P 인증 체크리스트

35개 GAP분석 항목
ismsp_checklist.php →

🔍 시큐어코딩 진단

행안부 보안약점 10종
securecoding.php →

🎯 전산망 침투 CTF

3단계 침투 체인 (SQLi→DB→Pivot)
pentest_chain.php →

🖥️ 인프라 취약점 진단 (Linux U-01~72)

📋 보고서 가이드

Linux 취약 서버

SSH: ssh -p 2222 root@[IP] (root:root)

HTTP: http://[IP]:8082

FTP: ftp [IP] (anonymous)

DBMS 취약 서버

MySQL: mysql -h [IP] -P 3307 -u root -proot

외부 접속 허용, 기본 계정, 권한 과다

항목취약점명위험도점검 방법
U-01root 계정 원격 접속 허용SSH root 로그인 시도
U-02패스워드 복잡도 미설정/etc/login.defs 확인
U-03계정 잠금 임계값 미설정/etc/pam.d/common-auth
U-04패스워드 파일 권한 관리ls -la /etc/passwd /etc/shadow
U-05root 이외 UID=0 계정 존재awk -F: '$3==0' /etc/passwd
U-06세션 타임아웃 미설정/etc/profile TMOUT 확인
U-07불필요 계정 존재cat /etc/passwd
U-08관리자 그룹 불필요 계정cat /etc/group
U-09계정 패스워드 최소 길이 미설정grep PASS_MIN /etc/login.defs
U-10/etc/passwd 파일 소유자/권한ls -la /etc/passwd
U-11/etc/shadow 파일 소유자/권한ls -la /etc/shadow
U-12/etc/hosts 파일 소유자/권한ls -la /etc/hosts
U-13SUID/SGID 설정 파일 점검find / -perm -4000 2>/dev/null
U-14사용자 홈디렉터리 권한ls -la /home
U-15.rhosts, hosts.equiv 파일find / -name .rhosts 2>/dev/null
U-16PATH 환경변수 설정echo $PATH (. 또는 :: 포함 여부)
U-17.bash_history 권한/민감정보cat ~/.bash_history
U-18world writable 파일 점검find / -perm -o+w -type f 2>/dev/null
U-19서비스 배너 정보 노출nc [IP] 22, nmap -sV
U-20Sendmail 버전 정보 노출telnet [IP] 25
U-21DNS 버전 정보 노출nmap -sU -p 53 --script dns-nsid
U-22NFS 접근 제한showmount -e [IP]
U-23불필요 서비스 (Telnet, FTP 등)nmap -p 21,23 [IP]
U-24Finger 서비스 비활성화nmap -p 79 [IP]
U-25Anonymous FTP 비활성화ftp [IP] (anonymous)
U-26r 계열 서비스 비활성화nmap -p 512,513,514
U-27cron 파일 소유자/권한ls -la /etc/cron*
U-28DoS 공격 취약 서비스 비활성화nmap -p 7,9,13,19
U-29NIS 서비스 비활성화ps -ef | grep ypserv
U-30tftp/bootp 비활성화nmap -sU -p 69
U-31Sendmail 비활성화 또는 최신화telnet [IP] 25 (버전 확인)
U-32스팸 메일 릴레이 제한sendmail 릴레이 테스트
U-33일반 사용자 Sendmail 실행 금지ls -la $(which sendmail)
U-34DNS 영역 전송 제한dig @[IP] axfr [도메인]
U-35Apache 디렉터리 인덱싱 금지HTTP 응답에 Directory Listing
U-36Apache 웹 서비스 계정 제한ps -ef | grep apache (실행 계정)
U-37Apache 불필요 모듈 비활성화apache2ctl -M
U-38Apache 상위 디렉터리 접근 금지http://[IP]/../../etc/passwd
U-39Apache 심볼릭 링크 허용 금지Apache FollowSymLinks 설정
U-40Apache 파일 업로드/다운로드 제한LimitRequestBody 설정 확인
U-41Apache 에러 페이지 정보 노출존재하지 않는 페이지 접속
U-42Apache 버전 정보 노출curl -I http://[IP] | grep Server
U-43최신 보안 패치 적용uname -r, apt list --upgradable
U-44로그온 배너 설정SSH 접속 시 배너 확인
U-45로그 설정 (/etc/rsyslog.conf)cat /etc/rsyslog.conf
U-46로그 정기 검토정책/절차 확인
U-47로그 보호 (무결성)ls -la /var/log/*
U-48로그 용량 설정logrotate 설정 확인
U-49 ~ U-72: 보고서 가이드에서 전체 확인

🗄️ DBMS 취약점 진단 (D-01~55)

📋 보고서 가이드
항목취약점명위험도점검 방법
D-01DBMS 계정 패스워드 미설정/추측가능root:root 접속 시도
D-02불필요 계정 존재SELECT user,host FROM mysql.user
D-03외부 접속 허용 계정SELECT user,host FROM mysql.user WHERE host='%'
D-04불필요 권한 부여SHOW GRANTS FOR 'user'@'%'
D-05추적 정보 로깅 미설정SHOW VARIABLES LIKE 'general_log'
D-06DBMS 버전 노출SELECT VERSION()
D-07패스워드 복잡도 정책 미설정SHOW VARIABLES LIKE 'validate_password%'
D-08DBA 권한 일반 계정 부여SELECT * FROM information_schema.USER_PRIVILEGES
D-09 ~ D-55: 보고서 가이드에서 전체 확인