전체 글 219

[ctf-d] Find Key(Image)

head.png를 확인해보자. 규칙적인 사진의 배경이 눈에 띈다. HxD로 확인해보자. 파일 시그니처와 구조 모두 문제가 없다. 한 가지 발견한 건, www.inkscape.org 라는 무료 벡터 그래픽 소프트웨어를 사용한 것으로 보인다. 다시 사진의 배경을 집중해서 보면, 표시한 특정 패턴이 반복되고 있음을 알 수 있다. 각 행마다 흰색을 0, 검은색을 1로 표현하면 01010011 00110100 01001110 01000011 01001000 00110000 이 이진코드를 텍스트로 변환해보자. int() 함수에 진수의 base 값을 추가 인자로 넘겨주면 다시 숫자로 변환할 수 있다. 이때, int() 함수의 2번째 인자는 디폴트가 10이기 때문에 생략했을 경우 10진수의 문자열이 숫자로 변환되는 것..

[ctf-d] 오른쪽 위의 표지판을 읽을 수...

HxD로 열어보자 !! png의 헤더 시그니처와 푸터 시그니처는 맞다. 전에 png 파일 구조와 관련된 문제를 푼 적이 있어서(Magic PNG), png 파일 구조를 살펴보았지만, 파일 시그니처와 IHDR, IDAT, IEND 청크들 모두 문제가 없었다. 사진을 선명하게 해준다는 사이트도 찾아봤는데, 실행이 되지 않았다. 결국 write up을 찾아보니, SmartDeblur라는 툴을 사용해야 한다고 한다. http://smartdeblur.net/index.html SmartDeblur - Fix Blurry, Defocused or Shake Cam Photos 60% Discount! buy now --> Fix Blurry and Defocused photos with SmartDeblur No..

[Dreamhack] csrf-1

목표 : CSRF를 통해 관리자 계정으로 특정 기능을 실행시키기 /vuln - 이용자가 입력한 param 파라미터 값을 출력함 - 이 때, 이용자의 파라미터에 frame, script, on 세 가지의 악성 키워드가 포함되어 있으면 *로 치환함 -> XSS가 발생할 수 있는 키워드를 필터링함 -> 취약점) 하지만, 필터링 키워드 이외의 꺽쇠 를 포함한 다른 키워드와 태그는 사용 가능하므로 CSRF 공격 가능 /memo - 이용자가 메모를 남길 수 있으며, 작성한 메모를 출력함 - 이용자가 전달한 memo 파라미터 값을 기록하고, render_template 함수를 통해 출력함 /admin/notice_flag - 메모에 FLAG를 작성하는 기능. - 이 기능은 로컬호스트(127.0.0.1)에서 접속해야 ..

Web 2022.02.13

[ctf-d] 이 그림에는 뭔가 좀 수상한...

PurpleThing.png를 클릭하면 이런 사진을 볼 수 있다. 우선 HxD로 확인해보자. 헤더 시그니처는 맞는데, 알고 있던 푸터 시그니처와 조금 다른 것 같다. 바이트를 추가해봤지만, 다른 점은 보이지 않았다. 전에 PNG 파일 내에 JPG 파일을 숨기는 경우를 본 적이 있는데, 혹시나 해서 JPG의 푸터 시그니처인 FF D9를 검색해보니, 찾을 수 있었다. JPG의 헤더 시그니처인 FF D8 FF E0도 찾을 수 있었다. FF D9가 여러 개 검색되었는데, 헤더 시그니처 이후로 검색되는 건 한 개뿐이었다. 블록을 더블 클릭하자. 블록 선택 창이 뜨게 되는데, 시작과 종료 오프셋을 각각 작성해주면, JPG 파일의 데이터 값만 드래그 된다. 값을 복사해서 새로운 JPG 파일을 만들었다. 해결!

[Dreamhack] Web Hacking STAGE 5 (CSRF)

ClientSide : CSRF 서명을 신중하게 관리 = 중요한 웹 서비스의 쿠키를 잘 보관 Cross Site Request Forgery (사이트 간 요청 위조, CSRF) - 이용자의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 만드는 공격 - 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점 ex) 웹 페이지를 만들어 이용자의 입력을 유도한 후, 이용자가 값을 입력하면 이를 중요 사이트 등으로 전송하여 마치 이용자가 동의한 것 같은 요청을 발생시킴 ↑ CSRF 취약점이 존재하는 예제 코드 ↑ - 송금 과정에서 계좌 비밀번호, OTP 등을 사용하지 않았음. CSRF 공격 성공 조건 공격자가 작성한 악성 스크립트를 이용자가 실행해야 한다. -> 메일이나, ..

Web 2022.02.07

[Dreamhack] xss-2

xss-1 문제와 유사해보이지만, vuln(xss) page를 확인해보면, xss-1과 달리 파라미터에 전달된 script가 실행되지 않는다. xss-1과 비교해보면, xss-2에서는 render_template을 사용하고 있어 XSS가 발생하지 않는다는 것을 알 수 있다. memo 페이지는 xss-1과 다른 점이 없어 보인다. flag 페이지도 xss-1과 다른 점이 없어 보인다. 따라서, XSS를 우회할 수 있는 방법을 찾아야 한다. 와 같은 방법이 있는데, 우선 vuln(xss) page를 우회해보자. 태그가 아닌 를 사용한 결과, 우회할 수 있었다. 를 사용하여 아래와 같은 익스플로잇 코드를 입력한 결과, 플래그를 얻을 수 있었다. 참고 https://lrtk.tistory.com/63?categ..

Web 2022.02.06

[Dreamhack] Web Hacking STAGE 4 (XSS)

STAGE 4. Cross-Site-Scripting (XSS) Cross Site Scripting (XSS) - 클라이언트 사이드 취약점 중 하나 - 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있음 - 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있음 - 쿠키 탈취에 많이 사용됨 XSS 발생 예시 - 이용자가 삽입한 내용을 출력하는 기능에서 발생 XSS 발생 종류 1) Stored XSS : 악성 스크립트가 서버 내에 존재, 이용자가 저장된 악성 스크립트를 조회할 때 발생 ex) 게시물과 댓글에 악성 스크립트를 포함해 업로드하여 이용자가 읽도록 유도 2) Reflected XSS : 악성 스크립트가 이용자 요청 내에 존..

Web 2022.01.30