p1n9
'CTF' 카테고리의 글 목록

CTF

CTF/Web

[GON CTF] ColorfulMemo

보호되어 있는 글입니다.

CTF/Web

[LINE CTF] double check

보호되어 있는 글입니다.

CTF/Web

[Dreamhack CTF] blind-command

blind-command HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 #!/usr/bin/env python3 from flask import Flask, request import os app = Flask(__name__) @app.route('/' , methods=['GET']) def index(): cmd = request.args.get('cmd', '') if not cmd: return "?cmd=[cmd]" if request.method == 'GET': '' else: os.system(cmd) return cmd app.run(host='0.0.0.0', port=8000) 문제의 소스코드는 간단하다. cmd파라미터를 받아..

CTF/Web

[Wargame.kr] strcmp

strcmp HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 문제의 소스코드에서 strcmp를 이용하여 password를 비교하는 것을 알 수 있다. 비교 연산도 느슨한 비교 연산자를 사용하고 있어서 해당 부분이 취약한 부분이 될 것이다. else if(isset($_POST['password'])){ sleep(1); // do not brute force! if (strcmp($_POST['password'], $password) == 0) { echo "Congratulations! Flag is " . $FLAG .""; exit(); } else { echo "Wrong password.."; } 0을 비교하므로 아마 NULL값이랑 비교되어..

CTF/Web

[Wargame.kr] jff3_magic

jff3_magic HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 해당 문제를 보면 alert창이 하나 뜨는데 hint가 swp라고 한다. swp는 vi의 오류로 인해 파일을 일시적으로 백업을 하게 되는데 파일의 확장자가 swp가 된다. swp파일은 숨겨진 파일로 생성되어 .[파일명].swp의 형태로 저장된다. swp파일을 다운로드할 수 있는지를 확인해보면 .index.php.swp로 다운로드할 수 있다. vi로 swp파일을 열어야 swp파일을 볼 수 있는데 파일명을 .index.php.swp로 변경한 후 -r 옵션을 이용하여 파일을 열 수 있다. $ vi -r .index.php.swp 코드를 보면 문제 해결을 위한 소스코드는 아래와 같다. ma..

CTF/Web

[Wargame.kr] md5 password

md5 password 원래는 계속 존댓말로 썼는데 그냥 반말로 쓸게 반말로 쓰는 게 익숙해져서 안 되겠다. HTML 삽입 미리보기할 수 없는 소스 Vulnerability md5의 인코딩 방식을 사용하였을 때 SQLI가 일어날 수 있는 취약점이 있다. 바로 아래의 함수 때문에 가능해진다. 이게 php도 가능하고 python에서의 md5().digest()함수를 사용하여도 동일한 값이 나다. md5( string $str [, bool $raw_output = FALSE ] ) 위의 함수에서 문제 되는 부분은 $raw_output 때문이다. False일 경우에는 16진수 형태인 문자로 나와서 취약하지 않지만 True일 때가 문제가 된다. php의 경우에 True일 경우 digest로 출력이 되는데 hex..

CTF/Web

[Dreamhack CTF] command-injection-1

command-injection-1 HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 해당 문제는 아래의 코드에서 취약점이 발생한다. cmd변수에 사용자 입력값이 들어오는 필터링 없이 그대로 사용하여 Injection이 발생된다. output = subprocess.check_output(['/bin/sh', '-c', cmd], timeout=5) Exploit HTML 삽입 미리보기할 수 없는 소스 위의 취약점을 토대로 바로 Injection을 시도하게 되면 형식에 맞춰서 입력하라고 나온다. 이는 client단에서 Input태그의 속성 값에 의해 필터링되는 것인데 이는 개발자 도구를 이용하여 해당 속성만 없애주면 입력할 수 있다. pattern="..

CTF/Web

[Dreamhack CTF] Mango

Mango HTML 삽입 미리보기할 수 없는 소스 Vulnerability HTML 삽입 미리보기할 수 없는 소스 웹 사이트로 들어가보면 해당 문구가 보인다. 그대로 URL에 넣어보면 "guest"가 출력이 됩니다. 해당되는 값을 찾는다면 그uid를 보여주는데 소스코드를 보시면 const BAN = ['admin', 'dh', 'admi'];로 필터링을 하고 있습니다. /?login?uid[$ne]=guest&upw[$regex]="^alpha+num" 위와 같은 방식으로 Injection을 수행해도 동작하지만 문제는 uid가 "guest" "admin" 뿐만 아니라 "testuser" "dreamhack" 도 있다는 것 입니다. "$ne" 말고도 uid에 $regex를 사용해 uid[$regex]=ad..