Pub/Sub 계층을 통한 프로그래밍

만약에 어떠한 사이트에 사용자가 가입하는 경우 사이트는 사용자에게 사용자의 정보를 받고 DB에 저장하고 e-mail을 보내고 Event Tracker를 통해 로그를 저장하는 등 다양한 procedure를 거칠 때가 많다. 이 때 코드를 한 번에 다 때려박곤 했었는데 이게 크게 잘못된 생각임을 알게 되었다. 다음과 같은 코드가 내가 평소에 쓰던 방식이다. import UserModel from '../models/user'; import CompanyModel from '../models/company'; import SalaryModel from '../models/salary'; export default class UserService() { async Signup(user) { const userR..

파이썬 가비지컬렉션

보통 C언어로 코딩할 때는 가비지컬렉션이 구현되어 있지 않아서 프로그래머가 직접 가비지컬렉션 기능을 사용하거나, 가비지컬렉션이 구현된 헤더파일을 include 하는 방식을 사용하는데 파이썬에서는 인터프리터단에서 자동으로 이 기능을 지원한다. 이 때 쓰이는 개념이 '레퍼런스 카운트'다. 레퍼런스 카운트란 말 그대로 '참조 수'인데, 다음과 같은 예시로 쉽게 이해할 수 있다. >>> var1 = [1,2,3] # Reference Count = 1 >>> var2 = var1 # Reference Count = 2 >>> var1 = 'python' # Reference Count = 1 >>> var2 = 1.0 # Reference Count = 0 주석으로 달아놓은 Reference Count는 [1,..

2019 Christmas CTF watermelon write-up

Aleph Infinite 팀에서 주최한 Christmas CTF에 낸 문제인 Watermelon 문제의 풀이를 작성해보려 한다. 문제 컨셉. 일단 어떤 문제를 만들까 계속 고민을 해왔었다. 1년간의 수험생활 동안 해킹 공부를 거의 포기하다시피 하기도 했고, 올해 CTF도 사이버작전경연대회 밖에 참가하지 않아서 최근 트렌드와 트릭, 유행인 취약점을 몰랐기 때문에 로직 버그? 와 비슷한 문제를 출제하기로 했다. 한 음악스트리밍 업체에서 터진 사재기 논란을 오마주?하기로 하였다. 자신이 업로드한 음악의 순위를 스크립트를 짜서 높이고 플래그를 획득하는 방식이다. 취약점. CTF를 할 때마다 웹해킹 문제를 풀려면 어쩔 수 없이 확인해야하는 것이 1. /robots.txt 2. /.git/ 3. /admin/ 등..

경희대학교 합격했습니다!

2020학년도 수시 모집에서 K-SW인재전형으로 합격해서 경희대학교 컴퓨터공학과 들어갑니다!

js, css 로드할 때 ?v={random_num} 붙이는 이유

css, js, 혹은 미디어 파일을 로드하는 경우 파라미터로 이상한 값을 넘기는 경우가 많은데 이 경우는 왜 그런건지 궁금했습니다. 이렇게 로드하지 않으면 css, js 혹은 미디어 파일이 캐시에 남아있게 되는데, 이 경우에 로드하는 파일의 내용이 변경되어도 캐시에 저장되어 있기 때문에 refresh가 되지 않는 현상이 발생할 수 있습니다. 따라서 ?v={버전} 혹은 ?v={랜덤넘버} 를 붙여 로드하는 방식을 사용하는 것입니다.

혹여나 도움이 될지 모르는 한 특성화고 학생의 생활기록부 (정보보안전문가)

안녕하세요. 경기도 소재 한 IT특성화고에 재학 중인 3학년 학생입니다. 이제는 졸업까지 한달도 채 남지 않았네요. 여러분 모두 남은 2019년 마무리 잘 하시길 바랍니다! ​ 수만휘 같은 수험생 커뮤니티를 돌아다니다 보면, 소프트웨어개발자를 꿈꾸며 생기부를 일궈내신 분들은 꽤 많이 보이지만 정보보안전문가를 희망하셨던 분들은 상대적으로 매우 적어서 어떻게 생활기록부를 쌓아가야 하는지 감이 잡히지 않는 후배님들이 많이 보입니다. 정보보안전문가가 되고 싶은 후배들을 위해서 저의 경우를 보여주고자 합니다. 꼭 작게나마 도움이 되어 원하시는 결과 얻으시면 좋겠습니다. ​ [생활기록부 요약] - 서울소재 정보보호 영재교육원 2년 수료 - 3년 연속 진로희망 정보보안 전문가 - 3년 연속 컴퓨터보안동아리 + SW코..

CTF 웹해킹 문제 풀 때 루틴

1. robots.txt, .git, .index.php.bak, ~index.php 등의 파일이 있는지 확인한다. 2. HTTP Header에 플래그가 있는지 확인한다. 3. MySQL 기반의 서비스라면 대소문자 구분이 명확하지 않음을 명심하고 다시 공격해본다.

2019 사이버작전경연대회 학생부 예선에서 2등한 썰

오늘(2019.08.17.), 오전 9시부터 6시까지 국방부 주최로 `사이버작전경연대회`가 개최되었다. 나는 학교 후배 정훈이랑, 민우, 효민이랑 참가했다. 일단 결론부터 말하자면 학생부에서 2위를 하게 되어 본선에 진출하게 되었다. 내가 거의 다 파놓은 웹 문제를 정훈이가 풀어서 인증했고 포렌식 문제도 정훈이가 막타를 쳐서 2위까지 올라왔다ㅋㅋ 웹 문제 `The Camp`는 좀 아쉬웠던 것이, 개연성이 결여된 문제가 출제되었다는 점이다. 솔직히 CSP를 우회해서 XSS 공격하고 관리자의 세션을 빼오는 것까지는 풀었을 때는 문제질이 우수하다고 생각했었다. 그런데 이 공격을 사용해서는 풀 수 없고 게싱적 요소를 더해서 플래그를 얻어야한다는 점에서 문제 출제 미스가 아니었나 싶다. 아무리 해킹대회라고 하더라..

나중에 bash trick 나오면 쓸만한 가젯

read로 환경변수에 입력받은 다음 그대로 실행하는 방식으로 쉘 획득