본문 바로가기

분류 전체보기

(133)
[Webhacking.kr] old-50 https://webhacking.kr/challenge/web-25/ Challenge 50 webhacking.kr 소스 코드 50번 문제는 mb_convert_encoding() 함수의 취약점을 활용하여 문제를 해결할 수 있다. mb_convert_encoding() 함수는 멀티바이트를 사용하는 언어셋 환경에서 \ (백슬래시) 앞에 %a1~%fe 값이 들어오면 인코딩이 깨지며 \ (백슬래시)를 덮어버리게 되는 문제가 발생한다. select lv from chall50 where id='{$_GET['id']}' and pw=md5('{$_GET['pw']}') 위 쿼리를 우회하기 위해 스페이스바를 /**/로 대체하였고 mb_convert_encoding() 함수의 취약점을 활용하여 ' (single..
[Webhacking.kr] old-24 소스 코드 위 소스 코드에서 핵심은 extract() 함수입니다. extract() 함수는 배열 속 키 값을 변수화 시켜주는 역할을 합니다. 예를 들어, $arr[x]=5; $arr[y]=10; extract(arr); 를 하게 되면 $x 값은 5가 되고, $y 값은 10이 되게 됩니다. 그러므로, extract($_SERVER); extract($_COOKIE); 를 사용하여 $REMOTE_ADDR 변수에 문자열을 넣어줄 수 있게 됩니다. F12 키 > Application > 좌측 Cookies 에 가서 REMOTE_ADDR 라는 이름의 쿠키를 생성해줍니다. 그 결과, 아래와 같이 IP 주소가 바뀌게 되어 포인트를 획득할 수 있게 됩니다.
[DreamHack] Return Address Overwrite https://dreamhack.io/wargame/challenges/351/ Return Address Overwrite Description Exploit Tech: Return Address Overwrite에서 실습하는 문제입니다. dreamhack.io 난이도: Level 1 이 문제를 풀기 위해서는 스택 프레임 (Stack Frame)에 대한 이해가 필요합니다. 스택 프레임 보러 가기 rao.c // Name: rao.c // Compile: gcc -o rao rao.c -fno-stack-protector -no-pie #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } void get_s..
[DreamHack] XSS - 1 https://dreamhack.io/wargame/challenges/28/ xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 문제 수정 내역 dreamhack.io 난이도: Level 1 def check_xss(param, cookie={"name": "name", "value": "value"}): url = f"http://127.0.0.1:8000/vuln?param={urllib.parse.quote(param)}" return read_url(url, cookie) @app.route("/flag", methods=["GET", ..
[AWS] EC2 인스턴스 생성 1. Amazon Machine Image 선택 AMI에는 주로 Ubuntu 또는 Amazon Linux 2 AMI 를 사용합니다. Ubuntu의 경우에는 설치 시 sudo apt-get install 명령을 사용하고, Amazon Linux 2의 경우에는 설치 시 sudo yum install 명령을 사용합니다. 이 글에서는 Ubuntu를 선택해보도록 하겠습니다. 2. 인스턴스 유형 선택 프리티어 사용자의 경우에는 Default로 설정되어 있는 것을 사용하시면 되므로, 바로 검토 및 시작을 눌러줍시다. 3. 보안 그룹 편집 아래 과정에서 보안 그룹 편집을 눌러줍니다. 사용할 보안 그룹 이름을 지정해준 후, 아래와 같이 HTTP, HTTPS를 추가해줍니다. 만일, RDS를 따로 사용하지 않고, EC2 인..
[AWS] Amazon WordPress 설치 EC2 인스턴스를 생성하지 않았을 경우 -> EC2 인스턴스 생성 RDS를 생성하지 않았을 경우 -> RDS 생성 1. EC2 인스턴스 접속 AWS EC2 인스턴스를 만든 후, 아래 명령을 통해 서버에 접속해줍니다. chmod 400 rsa_key_path ssh ubuntu@IP -i rsa_key_path 이후, MySQL 설치를 진행합니다. sudo apt-get install -y mysql EC2 인스턴스에서 Amazon RDS에 접속하기 위해 ~/.bashrc 파일 안에 환경변수를 지정해줍니다. vim ~/.bashrc # .bashrc 파일 안에 추가 export MYSQL_HOST= # 수정된 내용 적용 source ~/.bashrc RDS 생성 과정에서 지정한 마스터 유저 이름을 아래 명..
[AWS RDS] 데이터베이스 생성 1. 데이터베이스 생성 오른쪽에 주황색 데이터베이스 생성 버튼을 눌러줍니다. 2. 엔진 옵션 자신이 사용하고자 하는 데이터베이스를 골라줍니다. 3. 버전 및 템플릿 원하는 버전을 선택한 후, 템플릿에서 프리 티어를 사용하실 분들은 프리 티어를 선택해줍니다. 4. 설정 DB 인스턴스 식별자, 마스터 사용자 이름은 자신이 사용하고자 하는 이름으로 구성하면 되며, 마스터 암호는 최대한 복잡하게 하시고 저장해두고 사용하시길 권장드립니다. 5. DB 인스턴스 클래스 이 실습에서는 기본 설정으로 충분합니다. 테스트 또는 소규모 애플리케이션에 적절한 스몰 인스턴스 클래스를 사용하며, 이는 AWS 프리 티어를 벗어나지 않습니다. AWS 프리 티어를 사용하고 싶지 않다면 더 큰 인스턴스 클래스를 설정하거나 스토리지 구성..
[C언어] 특정 메모리 주소에 직접 값 쓰기 예를 들어, 0x2000100 번지에 0x12345678 이라는 값을 넣으려고 해봅시다. 1. 컴파일 에러 예시 *(0x2000100) = 0x12345678; 2.주소임을 알려주기 위해 (*)를 추가해줍니다. *((*)0x2000100) = 0x12345678; 3. 0x20인 4 byte 만 저장할 것이기 타입을 정해줍니다. *((unsigned long*) 0x20000100) = 0x12345678; 4. Avoid compiler optimization volatile은 컴파일러에게 당신의 변수가 접근하고 있는 코드가 아닌 다른 방법으로 변경될 수 있다고 알려주는 역할을 합니다. *((volatile unsigned char *) 0x20000100) = 0x12345678; 조금 더 편하게 지..