• docs

    Jsonp Injection Attack

    CORS(Cross Origin Resource) HTTP 통신시에, 처음 전송되는 리소스와 다른 도메인으로부터 리소스가 요청될 경우 해당 요청을 Cross-origin HTTP Request 라고 부른다.보안 상의 이유로 대부분의 브라우저들은 이러한 통신을 제한하고 있는데자바스크립트의 XMLHttpRequest 객체로 통신할 때에 사이트 외의 도메인에 요청을 보낼 수 없는 것 또한 이런 이유에서다.CORS는 Jsonp, document.cookie 값 설정, 브라우저 특수 옵션(크롬의 –disable-web-security 옵션 등) 와 같은 방법으로일부 극복이 가능하지만 보안 취약점을…

  • docs

    JWT None Type Injection Attack

    JSON Web Token(RFC 7519)은 JSON 문서에 클레임을 인코딩한 후 서명하는 방법이다. JWT란 JWT 는 웹사이트 사용자 인증에서 종종 쓰이는데, 쿠키에 주로 포함되어 쓰인다.base64로 인코딩되어 온점 2개로 구분되는 header.payload.signature 의 구조를 띈다. https://jwt.io/ 에서 JWT를 간편하게 복호화해 볼 수 있다. Header는 Type와 Algorithm 두 요소를 가지며, alg는 JWT의 세번째 부분인 Signature의 해싱 알고리즘을 지정할 수 있다. Payload는 토큰의 실제 정보가 들어있다.인증에…

  • writeup

    angstromCTF – Madlibbin

    python format string injection 문제이다. 강조된 문장에서 볼 수 있듯 args 변수에 request.args 를 대입하여 format 메소드의 인자로 이용하는데 request.args 부분은 조작이 불가능하지만, 대상 문자열은 마음대로 사용자의 입력대로 들어가므로 이를 이용해서, os.environ 을 읽어내면 해결되는 문제이다! 다만 format 함수의 대상이 되는 문자열의 중괄호 안에서 메소드 호출은 불가능하므로 메소드를 사용하지 않고 문제를 해결할 수 있어야 한다. os 모듈의 environ 속성에 환경변수가…

  • writeup

    angstromCTF – DOM Validator

    XSS 필터링 문제인데, <head> 태그에서 자바스크립트로 문서 내용을 해싱하여 비교 검증하는 특이한 방식을 사용했다. 시도하다 보니 필터링 로직이 복잡하여 짜여 있다는 것을 알게 되었는데, 본래 복잡해질수록 허점도 생기는 법 아니겠는가.. 여러가지 페이로드를 확인해보니 결국 먹히는 것이 나왔다. (3시간 정도 걸렸다)

  • writeup

    angstromCTF – no sequel 2

    이전 문제와 동일하다. 하지만 인증 우회에 그쳤던 것과 다르게, 이젠 실제 비밀번호를 요구한다. 정규식 쿼리를 이용하면 간단한데 길이를 먼저 확인하고 브루트 포싱을 해보면 금방 답이 나온다.

  • writeup

    angstromCTF – no sequel 1

    Express 로 구성된 서버에 소스가 주어진다. 상단에 monk instance 라고 적혀있는데, mongodb 를 사용했다는 것을 말하고 싶었으리라. 흔한 mongodb 취약점인데 위처럼 배열을 삽입해주면 not equal 비교를 통해 인증이 우회된다. 시도해보니 배열은 입력으로 받지 않는 모양이었지만 Content-Type을 수정하여 데이터를 json형태로 전송함으로써 인젝션에 성공하였다.