• writeup

    Seccon 2019 – SPA

    Vue로 구성된 XSS 문제입니다.소스는 긴 편이지만, 취약한 부분이 보이지 않았기에문제에서 사용하는 jQuery 함수에 대해 검색해 보았고, 정답을 찾을 수 있었습니다. jQuery의 getJSON 함수는 인자로 전달되는 url에서 callback 파라미터가 ? 으로 지정되어 있을 때, ?을 jQuery34107409498085120296_1571575807022 와 같은 랜덤 문자열으로 치환하여 전송합니다.이는 jsonp 에 대응하기 위해서 존재하는 부분인데, 이러한 상황에서 jQuery 는 가져온 문자열을 스크립트로 해석하여 실행합니다.hash 를 통해, 서버에 전달되는…

  • writeup

    Seccon 2019 – fileserver

    플래그를 랜덤 이름의 디렉토리에 보관하고 있습니다.본 문제를 해결하기 위해서는, 먼저 %00을 이용하여 /tmp/flags/ 디렉토리를 리스팅해 폴더명을 확인하고, 정규식을 사용해 파일을 읽으면 됩니다. Index /tmp/flags Ruby의 Dir.glob 함수에서는, 인자로 전달된 문자열에 널 바이트가 포함되어 있으면, 널바이트를 포함하여 이전 문자를 모두 무시합니다.따라서 위와 같은 url을 호출하면 앞의 . 이 무시되므로, /tmp/flags 폴더를 리스팅 할 수 있게 됩니다. Read Flag Ruby의 Dir.glob 함수에서…

  • writeup

    Hitcon 2019 – bounty-pl33z

    hitcon 2019 에서 출제된 xss 문제로 알려진 풀이는 두가지입니다. Intended Solution 오렌지가 공개한 의도된 풀이로 --> 문자를 사용해 해결하는 방법입니다.다만 --> 를 문자열 직후에 넣는다면, -- 가 postfix 연산자로 해석되어 Invalid left-hand side expression in postfix operation 오류를 발생시키므로 crlf 등을 통해 개행 처리를 해 주어야 합니다.일반적인 화이트 스페이스는 필터링 되어 있지만, \u2028, \u2029 등을 통해 대체할 수 있습니다. 이외에…

  • docs

    Redis SSRF

    redis는 인메모리 캐시 서버로 데이터를 메모리에 보관하기에 상당한 성능을 보입니다. 기본 설정에서 6379번 포트를 사용하고, 수신된 명령어를 라인 단위로 수행합니다. redis는 http 프로토콜을 지원하고 있지 않으므로 gopher 등을 이용하여 ssrf를 유발해야 합니다. 예외적으로 request method 를 자유롭게 수정 가능하거나 첫 라인에 CRLF Injection이 가능한 경우 http 요청을 통해서도 발생할 수도 있습니다. redis 버전에 따라 http request 의 첫 라인과 같이…

  • writeup

    PwnThyBytes CTF – Baby sql is not baby anymore

    PHP의 session.upload_progress 에 관한 문제입니다.기본 상태에서 활성화 되어있는 session.upload_progress 옵션은, session_start 함수의 실행 없이 $_SESSION 변수가 설정될 수 있도록 합니다. 문제의 index.php 에서는 내부 변수들에 대해 필터링 과정을 거친 후, templates 폴더 내부의 스크립트를 참조하는 방식으로 구성됩니다. /templates/login.php 페이지 등은 최상단에서 isset($_SESSION) 구문으로 하여금, 페이지의 직접 참조를 방지하고 있습니다.index.php 페이지를 통해 참조될 때에는 session_start 로 인해 $_SESSION 가 설정된다는 점을…

  • writeup

    BSides Delhi CTF – Eval Me

    LD_PRELOAD + Imagick ffmpeg 을 통한 disable_functions bypass 문제입니다.자유롭게 PHP 코드 실행이 가능한 상태입니다. 대부분 필수 함수들이 필터링 되어 있지만putenv 사용이 가능하므로 LD_PRELOAD 에 모듈 탑재가 가능하고copy 함수를 사용해 컴파일된 모듈 파일을 복사할 수 있습니다. 위 코드를 통해 서버로 모듈을 업로드 하고 명령을 실행할 수 있습니다. file 함수를 사용해 결과를 확인할 수 있었습니다. 익스플로잇에 사용한 모듈의 소스코드는 다음과 같습니다.

  • docs

    XSS CheatSheet

    본 문서는 지속적으로 업데이트됩니다. Basic Advanced Uncommon Tags Sandbox XSS Delimiters Obfuscation Operator Unicode / UTF-8 No Quote No Parentheses No Quote and Parentheses Bypass Uppercase / Lowercase Bypass Replace Bypass Chrome Auditor Script in XML Whitelist Iframe Make Redirection Cookie Hijacking Data Wrapper Variable Make DOM XSS DOM Object Finding Set-Cookie Obfuscate IP Address Escalate XSS Bypass History A…

  • docs

    Quine SQL Injection

    Quine SQL 이란 Quine 은 소스코드를 그대로 출력으로 반환하는 프로그램을 의미하는데위의 파이썬 소스코드를 참고하면 어떤 의미인지 쉽게 이해할 수 있을 것이다.이는 대부분의 언어로 작성되어 위키백과에 등재되어 있다. Quine SQL Query 마찬가지로 SQL 언어를 사용해 작성한 Quine 쿼리도 존재하는데, 위가 그 예이다. 여기서 필요없는 부분을 잘라내면 위와 같다. 이런 특성을 이용하여 SQL 인젝션에 응용할 수 있는데사용자 입력과 쿼리 결과값이 같은지 확인하는…