분류 전체보기

    WACON 2023 Quals WEB Writeup

    mosaic [WEB] It looks weird... 처음 문제 사이트에 접속시 다음과 같은 페이지가 나타납니다. 여기서 회원가입 -> 로그인 순으로 계정에 로그인을 진행합니다. 로그인을 진행하게 되면 "upload", "mosaic" 이라는 엔드포인트가 활성화됩니다. 각 엔트포인트별 코드를 확인해보겠습니다, "upload"는 아래의 로직으로 처리됩니다. @app.route('/upload', methods=['GET', 'POST']) def upload(): if not session.get('logged_in'): return redirect(url_for('login')) if request.method == 'POST': if 'file' not in request.files: return '..

    제 27회 하계 해킹캠프 참가 후기 및 Writeup

    27회 하계 해킹 캠프 요약 (후기) 이번에도 기회가 되어 27회 하계 해킹캠프에 참가하였습니다, 24, 25, 26, 27회까지 해킹캠프를 참가한지 이제 2년차가 되는 것 같아요 :) 24회 해킹캠프에 참가했을때는 해킹에 대해서는 아무것도 모르고 아는 사람들도 한명도 없어서, 발표를 잘 이해하지도 못하고 CTF 문제도 한문제도 못풀었던 기억이 나는데, 해킹캠프를 참가할때마다 계속해서 실력이 올라가는 것을 느끼는 것 같습니다. 해킹을 아무것도 몰랐던 때가 엇그제 같은데, 벌써 공부한지 2년이란 시간이 되는것 같아서 되게 신기하고 계속 성장하는 것 같습니다. 비록 이번에는 CTF에서 1등을 하지는 못했지만, 기회가 된다면 다음 해킹캠프도 참가해서 꼭 1등을 노려볼 수 있도록 도전해보고 싶습니다. (다음 회..

    [WebHacking Study] ORM 데이터베이스 모듈에서 발생하는 ORM Injection 원리 분석 (Feat. Django)

    공부를 진행하게 된 이유 최근 ORM 기반 데이터베이스 모듈을 사용하면서 프로젝트를 개발할 일이 잦아지다 보니, ORM 모듈 (Sequelize, Django 등) 에서는 SQL Injection 취약점이 정말 없을까?에 대한 의문점에서부터 공부를 시작하게 되었습니다. 저번 26회 동계 해킹캠프때, Django에서 SQL Injection이 발생하는 1-day가 존재한다고 들었던거 같은데, 기억이 잘 나지 않아 다시 블로그와 관련 글을 찾아보면서 공부를 진행하였습니다. 해당 스터디에서 이번에 발견한 Django ORM Injection의 발생 백터와 직접 익스플로잇을 진행해보면서 정리해보려고 합니다. ORM 소개 ORM이란 Object Relational Mapping(객체 관계 매핑)의 약자로 프로그래..

    2023 CCE 청소년부 예선문제 Writeup

    CCE 2023 이번 2023 CCE 예선전에서 청소년부 [시계 받으러 왔습니다.] 팀으로 3등으로 본선진출을 하게 되었습니다. 이번대회에서는 저는 총 WEB 부분 3문제를 솔브하였습니다. (KMAIL, Babyweb (2), Automatic dispenser) 작년 CCE 예선전에는 1인분도 못했던거 같은데, 이번에는 1인분은 한거 같아서 실력이 작년에 비해서 좀 늘은것 같다는 생각이 들었고, 작년 CCE문제보다 올해 CCE 문제의 난이도 상대적으로 더 올라간거 같은 느낌도 받을 수 있었습니다. 이번에는 해당 CCE 예선전에서 솔브한 문제에 대해 자세하게 접근방식 등을 포함한 Writeup을 작성하면서 전체적으로 복기를 진행해보려 합니다. [청소년부 WEB] - KMAIL 해당 문제는 golang 언..

    2022 CCE 예선문제 웹 전체 Writeups

    2022 CCE Quals 이번 2023 CCE 대회를 참가하기 위하여, 2022년도에 출제되었던 웹 전체 에선문제 Writeup을 작성해보려 합니다. Review가 아닌 Writeup인 만큼 길게 설명하지 않고 짧고 빠르게 정리하려고 합니다, (2023 CCE Quals는 Review 형식으로 작성할 예정입니다.) 작년도 CCE Quals는 청소년 + 일반 + 공공 부분 다 합쳐서 총 5문제의 웹 문제가 출제되었습니다. [청소년부] Login me == Description == Easy SQL injection! 웹 사이트에 처음 접속해보면 아래와 같이 문제 소스코드는 주어지지 않고 로그인 화면만 존재합니다. Description에서 언급한 바와 같이 Sql injection을 수행하여 admin 권..

    [JS Deep하게 공부하기] - 식과 문

    식과 문이란? 자바스크립트에서는 "식"과 "문"이라는 개념이 존재합니다. 해당 개념이 왜 중요한지 모르는 경우가 대부분입니다, 하지만 식과 문은 자바스크립트를 이해하는데 아주 중요한 요소 중 하나입니다. 자바스크립트 엔진은 코드를 실행할때 식과 문을 구별해서 연산을 처리합니다. 즉, 식과 문만 정확하게 이해한다면 자바스크립트 엔진이 식과 문을 어떻게 구별하는지, 어떻게 처리하는지 대략적으로라도 이해할 수 있습니다. 값 값이란 표현식이 평가되어 생성된 결과를 말합니다, 평가란 쉽게 말해서 식을 해석해서 값을 참조 또는 생성하는 것을 말합니다. 10 + 20 // 30 위의 코드에서는 10 + 20 이라는 식을 평가해서 30이라는 "값"을 생성합니다. 아래의 코드를 확인해보겠습니다. var result = ..

    [JS Deep 하게 공부하기] - 변수란?

    변수의 의미와 변수 선언 자바스크립트 내의 변수란, 값을 저장해놓은 메모리를 접근할 수 있는 식별자라고 할 수 있습니다. 즉, 값을 저장해놓은 메모리를 접근할 수 있게 해주는 별명같은 것이라고 이해하면 쉽게 이해할 수 있습니다. 변수는 모든 프로그래밍 언어에서 빠져서는 안되는 중요한 역할을 합니다, 변수가 없으면 값을 기억할 수도 없고 값을 직접적으로 사용할 수 도 없어집니다. 변수는 JavaScript 내에서 아래와 같이 사용할 수 있습니다. var 변수 이름 = 값; 변수 이름을 지정하고 지정한 메모리 안에 값을 할당하는 것입니다, 위의 변수는 선언과 정의를 동시에 수행한 것입니다. 위에서는 저렇게 사용해서 변수의 선언과 정의를 동시에 수행할 수 있지만 자바스크립트 엔진 내에서는 아래와 같이 선언과 ..

    제 26회 동계 해킹캠프 참가 후기 + CTF WriteUp

    26회 동계 해킹 캠프 + 인상깊은 강연 저번에 하계 해킹캠프 참가에 이어서 올해 26회 동계 해킹캠프를 진행한다는 소식에 바로 참가신청을 하여 참가하였습니다. 25회, 24회에 진행했었던 해킹캠프에 참가하여 발표를 들었을때는 해킹공부를 갓 시작한 뉴비였었기 때문에 발표 내용에 거의 절반 이상이 이해가 가지않았는데 이번에 해킹캠프를 참가하여 발표를 들었을때는 대부분의 발표내용이 이해가 가서 정말 이정도로 공부했구나 라는 느낌도 들고 발표내용도 정말 재밌고 유익했습니다 :) 또한 많은 분들이 저를 알아봐주시고 먼저 인사해주셔서 많이 놀랍기도 했고 보안계 쪽에서 유명하신 분들과 이번에는 조금이라도 말을 틀수 있어서 많은 경험과 지식들을 얻어갈 수 있었던 것 같습니다. (종합적인 느낀점은 아래에 정리하였습니다..