webgoat7 [SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Bee box, BeEF, XSS, CSRF 1. BeEF를 이용한 XSS 공격 1) 설치 및 실행 (1) 설치 sudo apt install beef-xss 입력으로 설치 (2) 실행 sudo beef-xss 입력 실행 처음 실행하면 기본 비밀번호 재 설정을 해야 한다. 각자의 비밀번호를 입력하고 넘어가면 127.0.0.1:3000 주소로 BeEF 페이지가 열린다. ID에는 beef를 입력하고 각자가 설정한 비밀번호를 입력하고 로그인한다. 2) XSS 공격 (1) XSS - Stored(Blog) 이전 포스팅에서 스크립트로 공격했던 페이지에서 BeEF로 공격 실습한다. (2) hook.js Kali 가상머신에서 XSS 취약점을 가지고 있는 게시판에 hook.js 파일을 실행하는 글을 등록한다. (3) BeEF 확인 BeEF 콘솔에서 스크립트 코드.. 2024. 3. 31. [SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Bee box, XSS 1, 크로스 사이트 스크립트(XSS : Cross-Site Scripting) 공격자가 전달한 스크립트 코드가 사용자 브라우저를 통해 실행 1) 공격자가 전달한 스크립트 코드 사용자에게 가짜 페이지를 제공하고 입력을 유도해서 사용자 정보를 탈취 사용자 브라우저 또는 PC에 저장된 정보를 탈취 브라우저에 설치되어 있는 각종 플러그인의 취약점 활용 사용자 PC의 제어권을 탈취해서 원격지에서 해당 PC를 제어 BeEF 2) 유형 (1) Stored XSS(저장 크로스 사이트 스크립트) 공격자가 입력한 스크립트 코드가 취약한 서버에 저장되고, 사용자가 조회 시 저장된 스크립트 코드가 그대로 사용자 브라우저로 전달되어 실행 공격자가 게시판이 글을 쓸 때 를 입력하면 저장 페이지로 전달되어 그대로 DB에 저장된다... 2024. 3. 30. [SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Bee box, Command Injection 1. Command Injection 애플리케이션에 운영체제 명령어(= 쉘 명령어)를 실행하는 기능이 존재하는 경우, 외부 입력값을 검증, 제한하지 않고 운영체제 명령어 또는 운영체제 명령어의 일부로 사용되는 경우 발생한다. 시스템의 제어권을 탈취해 해당 시스템을 원격에서 공격자가 마음대로 제어할 수 있게 된다. 1) 운영 체제 명령어를 실행하는 기능 (1) Java Runtime.getRuntime().exec("쉘 명령어") 쉘 명령어를 해당 시스템에서 실행하고 결과를 반환 (2) PHP exec("쉘 명령어") exec 설명 (3) Python subprocess.run([쉘 명령어]) os.system("쉘 명령어") 명령어 설명 2) 외부 입력값 검증, 제한 (1) 검증 추가 명령어를 실행하는 .. 2024. 3. 29. [SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Bee box, SQL Injection 1. String SQL Injetcion Injection Flaws > LAB: SQL Injection > Stage 1 : String SQL Injection 목표는 Neville 사용자로 로그인하는 것 1) 로그인 버튼을 클릭했을 때 서버로 전달되는 내용 분석(GET 방식) attack?Screen=18&menu=1100&employee_id=112&password=입력한패스워드&action=Login Larry Stooge (employee) Moe Stooge (manager) Curly Stooge (employee) Eric Walker (employee) Tom Cat (employee) Jerry Mouse (hr) David Giambi (manager) Bruce McGuirre.. 2024. 3. 27. [SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, SQL Injection 1. 입력데이터 검증 및 표현 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식 지정, 일관되지 않은 언어셋 사용 등으로 인해 발생하는 보안 약점으로 SQL 삽입, 크로스사이트 스크립트(XSS) 등의 공격을 유발할 수 있다. 1) 입력값 검증이 필요한 이유 프로그램은 입력, 처리, 출력이 순서로 반복되는 것이다. 프로그램을 안전하게 만들기 위해서는 처리 단계에서 안전한 처리가 이루어져야 한다. 안전한 처리란 개발자가 의도한 대로 동작해야 안전한 처리가 이루어진다. 처리만 개발자의 의도대로 동작한다고 안전해지는 것은 아니다. 입력 또한 신뢰할 수 있는 입력을 받아야 한다. 믿을 수 있는 시스템 내부의 값 같은 안전한 곳으로부터 전달된 입력은 신뢰할 수 있는 입력이지만, 믿을 수 .. 2024. 3. 25. [SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Burp Suite 1. WebGoat 실행 C:\FullstackLAB\run.bat 실행 작업 관리자에 MySQL 서비스가 실행되고 있으면 실행할 때 오류가 발생할 수 있다. 작업 관리자를 실행해 MySQL을 종료하고 실행해야 한다. 1) Tomcat 서버 실행 이클립스에서 서버를 실행 JavaEE 퍼스펙티브로 전환(옵션) 퍼스펙티브를 초기화 (옵션) Server 탭을 클릭, 등록된 서버 확인 Tomcat을 선택, 실행할 서버를 선택 디버거 모드 또는 실행 모드로 서버 실행 실행 시 화면 비율이 사진과 같지 않다면 1번부터 진행하고, 사진과 같은 비율이라면 3번부터 하면 된다. 2) 서버 실행 확인 3) index.html 추가 index.html이 없으면 로그인 후 404 오류 발생 이클립스 WebGoat\src\ma.. 2024. 3. 24. [SK shieldus Rookies 19기][애플리케이션 보안 ] - 실습 환경 구성 1. 실습 프로그램 다운로드 VMware workstation WebGoat bWAPP Kali Linux 다운로드 후 설치와 압축 해제한다. 단, WebGoat 파일인 FullstackLAB_20240312은 C:\ 경로에 압축 해제해야 한다. 2. VMware workstation 위 링크는 VMware workstation Pro의 링크다. workstation Pro는 무료 30일 라이선스만 지원하고 시리얼 키를 구매해야 정상적인 사용이 가능하다. 무료 30일 라이선스가 만료되어도 가상머신의 전원만 못 켤 뿐 생성 및 기타 작업이 가능하다. (구글, Github 등 인터넷에 시리얼 키가 돌아다닌다고는 하는데.... ) 추천하진 않는다. 각자의 판단하에 선택하기를 바란다. Pro의 가장 유용한 기능.. 2024. 3. 24. 이전 1 다음