SlowTurtle_

천천히 그러나 끝까지 완주

728x90

전체 글 65

[Dreamhack] File Vulnerability Advanced for linux

[Dreamhack] File Vulnerability Advanced for linux 필요한 코드만 가져와 봤다. @app.route('/file', methods=['GET']) def file(): path = request.args.get('path', None) if path: data = open('./files/' + path).read() return data return 'Error !' /file을 보자. path파라미터를 통해서 ./files/경로로 파일을 읽어온다. 그러나 path파라미터에서 아무런 필터링이 없기 때문에 Path Traversal 취약점이 발생한다. @app.route('/admin', methods=['GET']) @key_required def admin(): ..

[K-Shield.Jr] 케이쉴드주니어 9기 후기

[K-Shield.Jr] 케이쉴드주니어 9기 우선 지원한 분야는 클라우드 보안 운영트랙이었다. 금융권에 관심있었기에 클라우드에 대해서 공부하고싶었고 보안을 어떻게 입히는지 실무기준으로 배우고 싶었기에 지원했다. 케이쉴드주니어 9기에 최종 합격했으나 클라우드 보안 운영트랙의 인원 부족으로 침해사고대응트랙으로 변경하여 참여했다. 온라인 2주 공통과정을 진행하면서 보안의 기초부터 시작했다. 평일 8시간씩 집중하기 너무 힘들었으나, 어떻게 버티며 해냈던 것 같다. 오프라인.. 주 2회 서울 양재로 가서 수업을 들었는데 진짜 죽을 것 같았다. 그나마 한 번에 가는 광역버스가 있어서 다행이었지만 아침엔 6시에 버스를 타러갔고 수업을 마친 후는 퇴근시간과 겹쳐서 교통마비나 지옥철을 경험했다. 지옥철에서는 신발이 검정..

[Dreamhack] Command Injection Advanced

[Dreamhack] Command Injection Advanced 필요한 코드만 가져와서 봤다. url파라미터를 통해서 입력값을 받고 http문자열로 시작하는지 검사한다. http로 시작한다면 shell_exec함수를 통해서 curl명령어를 실행하고 그렇지 않다면 http only를 출력한다. 입력받은 주소를 md5해싱한 후 그 결과를 파일 이름으로 저장하고 curl명령어의 결과를 파일내용에 cache 디렉토리에 저장한다. 1~3주차 때 만들어서 호스팅한 서버를 입력해봤다. cache 디렉터리 하위에 저장된 것을 볼 수 있다. 링크를 누르니 단순 html만 띄워지는 것을 알 수 있다. 음 실험은 여기까지하고 위 코드를 보면 escapeshellcmd함수로 shell 메타 문자를 사용할 수 없게 했다...

[Dreamhack] csrf-2

[Dreamhack] csrf-2 이번 문제는 로그인이 추가 되었다. 코드 중 /change_password를 보아하니 /flag에서 img태그로 change_password에 들어가고 admin계정의 비밀번호를 공격자 마음대로 변경하여 계정을 탈취하여 로그인하는 방식으로 진행하면 될 것 같다. #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./..

728x90