본문 바로가기

분류 전체보기

(53)
dreamhack : web-misconf-1 writeup 문제 Ctrl+F 눌러서 organization 검색 결과 중 플래그인 것처럼 위장한 게 보임. 따라서 서버 열어서 기본설정 파일에 나와 있는 admin계정 id와 비번 확인하고 그것으로 로그인 후 찾아보았다. Server admin settings에 플래그가 있는것을 확인!
임베디드란? 사전적 의미 : Embedded = 내장된, 내재된 임베디드 ⊃ 펌웨어 Def. 펌웨어(Firmware) - EPROM, Erasable Programmable Read-Only Memory에 담긴 데이터를 칭하는 단어 - 비휘발성 메모리 - 중앙에 있는 칩에 자외선을 사용하여 데이터를 작성하면 프로세서는 EPROM을 읽어 데이터에 있는 명령어를 실행 => 최근에는 비휘발성 메모리로 EPROM이 아닌 Flash memory 사용 💡Flash memory는 전기적으로 읽고 쓰기가 가능한 메모리로 USB나 SSD나 Flash memory를 사용하고 있음 - 요즘은 임베디드 기기의 비휘발성 메모리에 담긴 데이터로 부르게 됨 예제 firmware 는 API 서버를 작동시켜 1413포트와 8899포트를 여는 동작..
KalmarCTF Cracking The Casino Write-up 코드 분석 믿을 수 있는 주사위와 카드: 블랙잭과 크랩스를 믿을 수 있는 방식으로 구현하기 위해서는 검증 가능한 주사위와 카드가 필요합니다. 정보 이론적인 커밋먼트를 사용하여 플레이어가 부정을 저지르지 못하도록 함: 플레이어가 부정을 저지르는 것을 방지하기 위해 정보 이론적인 커밋먼트를 사용했습니다. 1. 주사위 게임 1~6사이 무작위 정수 생성 roll -> 주사위를 굴린 결과 #주사위결과 검증 pk -> 커밋에 사용된 키 comm -> 커밋된 값 guess -> 추측한 값 r -> 커밋에 사용된 임의의 값 2. 카드 게임 #카드 뽑기(draw_card) suits -> 카드 무늬 C (클로버), S(스페이드), D (다이아몬드), H(하트) value = 카드값 (2,3,4,5,~,Ace) card ..
GET 방식과 POST 방식 데이터 요청 1. GET 방식으로 데이터 보내기(데이터가 쿼리스트링 형태로 포함됨) 클라이언트의 데이터를 URL 뒤에 붙여서 보냄 쿼리 스트링 => URL?데이터이름=값& 데이터이름=값&.... => '&' 구분자 사용 활용 : 데이터 조회 -> 검색, 페이지 이동, 쿠키와 같은 작은 데이터 전송 https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=hello 2. POST방식으로 데이터 보내기(URL에 데이터가 포함되어있지 않음) GET과 달리 데이터는 HTTP 요청의 body에 포함되어 전송됨 POST로 데이터를 전송할때에는 Body영역 데이터 타입을 Header Content-Type에 명시를 해줘야 함. 이때, 데..
XSS Filtering Bypass write up 1) 코드 분석 (출처:챗쥐피티) 엔드포인트1 : /vuln @app.route("/vuln") # Flask 애플리케이션에서 /vuln 엔드포인트에 대한 라우팅을 정의 # 사용자의 입력을 ㅂ다는 목적으로 보임 def vuln():#핸들러 함수인 vuln을 정의 param = request.args.get("param", "") # Flask에서 제공하는 request 객체를 사용하여 쿼리 매개변수 중 "param"값을 가져오고 있음 # param 이라는 매개변수가 없으면 빈 문자열을 기본값으로 사용 param = xss_filter(param) #가져온 "param"값을 'xss_filter' 함수에 전달하여 XSS(Cross Site Scripting) 공격을 방지하기 위한 필터링 수행 return ..
XSS Filtering Bypass - 2 정리 1) 불충분한 XSS 필터링 1-1) Unicode escape sequence를 통한 우회 -> 자바스크립트 Unicode escape sequence 지원 참고 : https://dencode.com/string/unicode-escape Unicode Escape (\u %u \x &#x U+ 0x \N) Encoder / Decoder Online - DenCode Unicode Escape encoder / decoder. (e.g. "Hello, world!" "\u0048\u0065\u006c\u006c\u006f\u002c\u0020\u0077\u006f\u0072\u006c\u0064\u0021") dencode.com var foo = "\u0063ookie"; // cookie var..
XSS Filtering Bypass - 1 정리 XSS 방어 필터링 우회 기법을 공부해보자 다음 언급된 필터링은 잘못된 방식으로 XSS 취약점을 근본적으로 제거하기 위해서는 태그 삽입이 되지 않도록 처음부터 원인을 제거하는 것이 중요 ‼️ 1) 불충분한 XSS 필터링 1-1) 이벤트 핸들러 속성 -> on으로 시작하는 속성 잠.깐.만🖐️ ! 이벤트 핸들러가 뭘까? 특정 요소에서 발생하는 이벤트를 처리하기 위해 존재하는 콜백 형태의 핸들러 함수 이벤트 핸들러 내에 XSS 공격 코드를 삽입해두면 해당 이벤트가 발생했을 때 XSS 공격 코드가 실행됨 태그의 속성 값으로 들어가는 이벤트 핸드러의 종류는 굉장히 다양하며 각 이벤트가 발생하는 원리가 다양함 참고 : https://developer.mozilla.org/en-US/docs/Web/Events Ev..
XSS(Cross-Site-Scripting) 정리 클라이언트 사이드 취약점 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행가능 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능 수행 요즘 SOP 보안 정책 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 힘들어짐 => 우회 기법 존재 💡웹 리소스 (출처 : ChatGPT) 웹 리소스(Web Resource)는 웹에서 사용되는 모든 종류의 자원이나 자료를 말합니다. 이는 텍스트, 그림, 동영상, 스타일 시트, 스크립트 파일, 데이터 파일 등과 같은 다양한 형태의 정보를 포함할 수 있습니다. 웹 리소스는 웹 페이지의 내용과 디자인을 형성하며, 웹 개발에서는 이러한 리소스들을 효과적으로 관리하여 웹 페이지의 성능을 향상시키는 것이 ..