드림핵 (9) 썸네일형 리스트형 XSS Filtering Bypass https://dreamhack.io/wargame/challenges/433 XSS Filtering Bypass Description Exercise: XSS Filtering Bypass에서 실습하는 문제입니다. 문제 수정 내역 2023.08.04 Dockerfile 제공 dreamhack.io I. 문제 개요 필터링을 우회하여, 쿠키에 저장된 flag를 읽는 것이 목적이다. II. 취약점 분석 1. 필터링 우회 "javascript", "script", "on" 3개의 단어를 필터링 하여, 해당되는 단어를 빈 문자열 ""로 치환한다. 그러면 "script" 안에 "script"를 한번 더 넣은 "scriscriptpt"를 처리하는 경우를 생각해보자. "scriscriptpt" 안의 "script".. ssp_001 https://dreamhack.io/wargame/challenges/33 ssp_001 Description 이 문제는 작동하고 있는 서비스(ssp_001)의 바이너리와 소스코드가 주어집니다. 프로그램의 취약점을 찾고 SSP 방어 기법을 우회하여 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세 dreamhack.io I. 개요 II. 취약점 분석 1. 보호기법 파악 쉘코드는 NX가 활성화되있으므로, 메모리에 넣어도 실행할 수 없다. 스택 카나리가 존재하므로, payload에 카나리의 값을 넣어줘야 공격을 할 수 있다. 2. 스택 카나리 pwndbg에서 "canary" 명령을 사용하면, 스택 카나리의 값과 주소를 알 수 있다. ebp 근처의 메모리를 살펴보면, 카나리는 ebp로부터 4바이트 떨.. basic_exploitation_001 https://dreamhack.io/wargame/challenges/3 basic_exploitation_001 Description 이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_001)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 "flag" 파일을 읽으세요. "flag" 파일의 내용 dreamhack.io I. 개요 버퍼 오버플로우 취약점을 이용하여, 우리가 원하는 함수를 실행하도록 프로세스의 흐름을 조작하는 것이 목표이다. basic_exploitation_000과 다른 점은, 쉘코드를 사용해야 할 필요가 없다는 점이다. basic_exploitation_000은 바이너리 안에 우리가 원하는 쉘을 실행할 수 있는 함수가 없기에, 주어지.. Return Address Overwrite https://dreamhack.io/wargame/challenges/351 Return Address Overwrite Description Exploit Tech: Return Address Overwrite에서 실습하는 문제입니다. dreamhack.io I. 문제 개요 문자열을 입력하는 부분에서 오버플로우를 일으켜, main 함수의 반환주소를 덮어써야 하는 문제이다. II. 취약점 분석 알파벳 A를 여러번 입력하면 에러가 발생한다. 그 이유는 오버플로우가 발생하여, 메모리 영역을 무단으로 침범했기 때문이다. 이를 통해 버퍼 오버플로우 취약점이 있다는 사실을 파악할 수 있다. 자세히 알아보기 위해, 주소 "0x0000000000400719"에 breakpoint를 걸고 주어진 바이너리를 실행해보자.. XSS-1 https://dreamhack.io/wargame/challenges/28 xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 문제 수정 내역 dreamhack.io 문제 개요 웹사이트에서 임의의 자바스크립트 코드를 실행할 수 있는 XSS 취약점을 활용하여, 플래그를 얻는 것이 목표인 문제이다. Flag 위치 "/flag" 엔드포인트는 GET request가 오면 "flag.html"을 렌더링 한다. 하지만 POST request가 오면 "check_xss" 함수를 실행하고, 그 결과 별로 다른 자바스크립트 코드를 실행한다. "check_xss.. Switching Command https://dreamhack.io/wargame/challenges/1081 Switching Command Description Not Friendly service... Can you switching the command? dreamhack.io 개요 이 문제의 골자는 PHP의 switch-case 문에서 사용하는 loose-comparison을 악용하여, 로그인하려는 사용자가 admin인 것처럼 속이는 것이다. 취약점 분석 맨 처음에는 "index.php" 에서 JSON 데이터를 파싱한 다음, username이 "admin"이라면 문자열 "no hack"을 화면에 표시하고 작업을 진행하지 않는다. 따라서 "그림 1"의 "Username"에 "admin"을 입력하더라도, shell을 얻는 등의 .. simple_sqli_chatgpt https://dreamhack.io/wargame/challenges/769 simple_sqli_chatgpt 어딘가 이상한 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. chatGPT와 함께 풀어보세요! Reference Server-side Basic dreamhack.io 이 문제는 SQL 인젝션 문제이다. 서버의 소스코드를 살펴보면서 그 이유를 살펴보도록 하자. 웹페이지는 물론, 서버에서도 사용자가 입력하는 값(userlevel)을 필터링을 안하고 있다. userlevel에 SQL 구문을 넣어서 userlevel을 0으로 만들면, admin으로 로그인 할 수 있을 것 같다. 예상과 달리, admin대신 g.. PHPreg https://dreamhack.io/wargame/challenges/873 phpreg Description php로 작성된 페이지입니다. 알맞은 Nickname과 Password를 입력하면 Step 2로 넘어갈 수 있습니다. Step 2에서 system() 함수를 이용하여 플래그를 획득하세요. 플래그는 ../dream/flag.txt에 위치합니 dreamhack.io 결론 먼저 얘기하자면, 정규표현식 문제이다. step1의 이름(input_name)에서는 정규표현식을 우회해야 하고, 비밀번호(input_pw)에서는 정규식에 부합하는 문자열을 써넣어야 한다. step2에서는 " flag"문자열을 탐지하는 정규 표현식을 우회해야 한다. 우선 step1 부터 살펴보자. 1) "//pw filtering".. 이전 1 2 다음 목록 더보기