분류 전체보기
-
0. 연구 주제 정하기기타/1인 1프로젝트 2022-03-14
학교 수업 교육과정의 일환으로 1인 1프로젝트를 진행하게 되었다. 주제는 지식공유의 목적으로 어떤 분야에서든 자유 주제 선택. 자신이 평소 관심 있었던 분야, 도전해보고 싶었던 것들 중에서 선택하면 되고, 방향도 자율적으로 정해서 연구하면 된다고 한다. 나는 고민하다 평소 꼭 해보고 싶었던 웹 개발 쪽으로 연구를 진행해보기로 했다. 전부터 터미널 창에 투박하게 결과가 뜨는 것보다는 우리에게 친숙한 GUI 환경으로 화면 구현을 꼭 해보고 싶었는데 화면 구현을 하기 위해서 그나마 쉽게 다가갈 수 있는 부분이 웹이라고 생각했다. HTML, CSS, JS... 이런 것들에 대해 막연한 궁금증도 있었고 작년에 어설프게나마 티스토리 기본 제공 테마를 내 스타일대로 이곳저곳 삽질도 하며 변경해보면서 웹 개발에 대한 ..
-
[LOS] 2. cobolt _write up - los.rubiya.krWargame/LOS (Lord of SQL Injection) 2021-02-05
문제를 들어가면 쿼리문과 함께 해당 문제의 소스코드가 보인다. 먼저 코드를 보면 이전 문제인 gremlin과 상당히 비슷한 문제라는 것을 알 수 있다. 하지만 이번에는 pw가 md5로 암호화되어 전송되고, 중간의 if 조건문을 보면 id가 'admin'일 때 solve("cobolt") 함수가 실행되어 문제가 풀린다. 따라서 SQL 인젝션을 이용해 id의 값에 admin'# 이라는 값을 전달해주면 select id from prob_cobolt where id='admin'#' and pw=md5('') # id값은 admin으로, 뒤의 pw는 #을 이용해 주석처리 되었다. # 따라서 실제 쿼리에 인식되는 값은 id='admin'인 셈. 쿼리가 위와 같이 인식해 문제가 풀리게 된다. 혹은 주석처리 대신 ..
-
[LOS] 1. gremlin _write up - los.rubiya.krWargame/LOS (Lord of SQL Injection) 2021-02-05
문제를 들어가면 굵은 글씨로 써진 쿼리문과 함께 문제 코드가 보인다. 간단히 살펴보면 preg_match 함수로 id와 pw에 들어갈 특정 문자열들을 필터링해주고 있고, (데이터베이스 공격을 방지하기 위함인 것 같다.) id와 pw에 입력을 받아 쿼리문을 참으로 만들면 solve("gremlin") 함수가 실행되어 문제가 해결된다. 따라서 SQL 인젝션을 이용해 쿼리문이 항상 참이되도록 인자를 넣어주면 된다. $query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'"; -> select id from prob_gremlin where id='1' or '1'#' and pw='' id에 1' or '1' %23이라는..
-
001. 글기타/글쓰기 2021-02-01
나는 글이 참 좋다. 책 읽는 것도 좋아하고, 여가 시간에는 자주 인터넷 창을 켜서 여러 가지 글들을 끊임없이 읽는다. 어떨 땐 인생을 바꾸는 방법이라는 거창한 글이거나 요리 레시피, 사진 찍는 방법 같은 설명글. 혹은 최근 이슈 되는 사건에 대한 각자의 생각이라던지, 기행문, 시 등등. 읽고 또 읽는다. 또 공감하고, 이해한다. 어떤 글을 읽던지 하나씩 내 안에 쌓여간다는 그 느낌이 좋다. 그래서 나에게 있어서 글이란 그리 간단한 의미를 갖지 않는다. 글은 내게 단순한 정보의 나열이나 활자가 아니라 세상을 알아가는 방법이고 사람들과 소통하는 창이다. 나는 어렸을 때부터 책을 끼고 살았다. 원래부터 글이 좋았고 이야기를 사랑했다. 한글을 배우고 나서는 집에 있던 전래동화 전집을 수십 번 읽었고, 동화책을..
-
[C/C++] 숫자 한 번에 입력받아서 배열에 하나씩 할당하기Programming/C언어 2020-12-29
문자열처럼 한 번에 입력받은 숫자들을 각 자리별로 나눠 배열에 넣기 입력 123 코드 #include int main() { int buf[3] = {0, }; // 숫자 입력받을 배열 크기 : 3 for(int i = 0; i < 3; i++) { // %1d 를 사용해 하나씩 읽음 scanf("%1d", &buf[i]); } printf("num : %d, %d, %d", buf[0], buf[1], buf[2]); // num : 1, 2, 3 return 0; } 활용한 문제 백준 - 2588번 곱셈 #include int main() { int first; int second[3] = {0, }; scanf("%d", &first); for(int i = 0; i < 3; i++) { //여기서..