전체 글 (10) 썸네일형 리스트형 File Vulnerability Advanced for linux File Vulnerability Advanced for linuxDescription Exercise: File Vulnerability Advanced for Linux에서 실습하는 문제입니다. 문제 수정 내역 2023.07.28 Dockerfile 수정dreamhack.io 먼저, 페이지에 접속하면 다음과 같다. 소스코드 먼저, file()을 보면 GET 방식으로 요청을 받아오는데,'path' 파라미터를 이용해 저장되어 있는 데이터를 읽어올 수 있는 것으로 보인다. admin()의 경우에는 key_required가 선행되어야 하고,cmd 파라미터를 통해 subprocess 함수로 출력값을 받아와 화면에 출력 시켜주는 것으로 보인다. 이 코드는 API_KEY 파라미터에 apikey 값을 넣었을.. file-download-1 file-download-1File Download 취약점이 존재하는 웹 서비스입니다. flag.py를 다운로드 받으면 플래그를 획득할 수 있습니다. Reference Introduction of Webhackingdreamhack.io Filedownload 취약점이란?임의의 문자나 주요 파일의 입력으로 임의의 위치에 있는 파일을 열람하거나 다운 가능한 취약점이다.대표적인 예시로는 ../../../../etc/passwd가 있다. 대응방안은 다음과 같다.1. 파일 경로를 감추어 사용자에게 노출시키지 않는다.2. 경로 관련 필터링 로직을 구현한다.3. 다운로드 시 권한 검증 과정을 거친다. Fileupload 취약점이란?파일 업로드 기능이 존재하는 웹 상에서 업로드 파일에 대한 필터링 조치가 미흡하여 .. error based sql injection error based sql injectionDescription Simple Error Based SQL Injection ! 문제 수정 내역 2023.07.21 Dockerfile 제공dreamhack.io Error Based SQL Injection 취약점웹 애플리케이션이 문법적으로 오류가 있는 SQL 쿼리를 데이터베이스에 요청한다면 데이터베이스는 SQL 쿼리를 실행하지 못하고 SQL 쿼리가 왜 틀렸는지 알려주는 오류를 반환해준다.만일 개발자가 디버깅을 위해 이 오류를 HTTP 응답내에 출력하도록 작성해두고 이를 그대로 방치해두었다면 오류는 일반 사용자도 확인할 수 있게 됩니다.바로 이 오류 메시지가 필요 이상으로 자세해서 악의적인 사용자에게는 공격에 필요한 정보가 될 수 있다. 구문 사용.. command-injection-chatgpt command-injection-chatgpt 특정 Host에 ping 패킷을 보내는 서비스입니다. Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다. chatGPT와 함께 풀어보세요! Reference Webhacking Roadmap dreamhack.io 문제 메인 화면에서 Ping을 클릭하면 오른쪽 화면으로 넘어가고 입력한 Host에 Ping을 보낼 수 있다. 소스코드 POST로 받았을 때 호스트 Input 박스에 입력한 값을 ping -c 3에 붙여서 subprocess로 실행시켜준다. 리눅스(CLI)에서 명령어 두 개를 동시에 실행하는 방법은 다음과 같다. 1. ;(세미콜론) : 앞의 명령어 성공 여부에 관계없이 다음 명령어 실행 2. && : 앞의.. what-is-my-ip what-is-my-ip Description How are they aware of us even behind the wall? FYI Flag Location: /flag Flag Format: DH{...} dreamhack.io 문제 소스코드 request.access_route로 사용자의 ip를 받아오고 subprocess과 run으로 시스템 함수를 사용해 받아온 사용자 ip를 띄운다. exploit 1. access_route의 취약점 이용 access_route는 x-forwarded-for로 헤더에 ip주소를 명시해주면 해당 주소로 패킷을 보낼 수 있다. 2. command injection 시스템 함수를 이용해 /flag에 값을 가져온다. x-forwarded-for: 1로 화면에 1을 .. simple_sqli 문제 simple_sqli 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Server-side Basic dreamhack.io 문제의 로그인 창에 들어가면 userid와 password를 입력할 수 있고 Login 버튼이 있다. 다음으로 소스코드를 살펴보면 GET 요청의 경우에는 login.html을 리턴하지만 GET 요청이 아닐 경우에는 userid와 userpassword를 db에서 sql문으로 가져온다. query_db에 sql문을 f 스트링으로 userid, userpassword를 받아와 포맷팅하고 이를 res에 넣어주는데, query_db가 정상적으로 실행됐다면 res에 값이 있을 것이.. baby-union baby-union Description 로그인 시 계정의 정보가 출력되는 웹 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 문제에서 주어진 init.sql 파일의 테이블명과 컬럼명은 실제 이름과 다릅니다. 플래 dreamhack.io 선행학습 MySQL 서버 내에 존재하는 DB의 테이블, 컬럼 등 스키마 정보를 모아둔 DB를 information_schema라고 한다. table_name, column_name으로 테이블 이름과 컬럼 이름을, database()로 데이터 베이스 이름을 확인한다. DB > table > column 0. 문제 uid와 upw를 입력받고, submit으로 제출할 수 있다. 1. 코드 데이터 베이스를 초기화 할 때 사용한 init.sql 파일의 .. 2024 LINE CTF(jalyboy-baby) 0. 문제 LINECTF2024 | jalyboy-baby 34.84.28.50:10000 1. JWT 구조 Header.Payload.Signature Header: 사용된 보안 알고리즘에 대한 정보 Payload: 전달할 정보 Signature: Header의 알고리즘으로 암호화된 문자열 ex) eyJhbGciOiJFUzI1NiJ9.eyJzdWIiOiJndWVzdCJ9.XdxV7J2Q6mkgJTIWE6T-Mms_M858I36ZYaO1jtgsh-O6rK0r1IhET_xu2LJ2gKAW3iMbKBxBrKzT2wwS_MMWAQ Header: eyJhbGciOiJFUzI1NiJ9 Payload: eyJzdWIiOiJndWVzdCJ9 Signature: XdxV7J2Q6mkgJTIWE6T-Mms_M858I36.. 이전 1 2 다음