전체 글

저의 IT 성장을 담은 블로그 입니다!
해킹/웹해킹

[LOS] 2번 cobolt write up

https://los.rubiya.kr/gate.php

해킹/웹해킹

정규표현식 / 주로 사용하는 정규표현식

정규표현식이란 정규표현식이란? 정규표현식이란 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어 입니다. 주로 Prog ramming Language나 Text Edittor등 에서 문자열의 검색과 치환을 위한 용도로 사용되고 있습니다. 이 정규표현식은 코드가 간단한 만큼 가독성이 매우 떨어 외우거나 보고 하지 않으면 이해하기 힘들다는 문제점이 있습니다. 정규 표현식의 용어들 정퓨 표현식에서 사용되는 기호들을 Meta문자라고 표현합니다. 표현식 의미 ^x 문자열의 시작을 표현하며 x 문자로 시작됨을 의미합니다. x$ 문자열의 종료를 표현하며 x 문자로 종료됨을 의미합니다. .x 임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미합니다. x+ 반복을 표현..

해킹/웹해킹

[LOS] 1번 gremlin write up

https://los.rubiya.kr/gate.php

알고리즘/C, C++

포인터

c, c++ 포인터 포인터란? 특정 메모리의 위치를 가리키도록 하는 변수를 포인터(pointer)라고 합니다. 즉 주소를 알아야 사용할 수 있습니다. 우리는 지금까지 변수를 선언하면 그 변수가 메모리에 기록된다고 생각하지 않고, 그 선언한 이름과 값만 생각을 하고 사용을 했습니다. 하지만 실제로 int a; 이라고 선언할 때 '메모리 x132453647(임의)에 int형, 변수 이름 a, 초기화되지 않은 상태로 사용한다'라고 하는 것과 같습니다. 이때 a = 10; 이라고 입력하면 '메모리 x132453647에 있는 값을 10으로 바꿔주는 것'과 같습니다. 그래서 우리가 포인터를 사용한다는 것은 '이름이 a'인 변수를 찾는 것이 아닌, '메모리 x132453647(임의)'를 찾으라는 것입니다. 주소도 알..

해킹/웹해킹

SQL Injection

SQL Injection 설명 SQL Injection 이란? SQL Injection이란 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입해 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위입니다. 공격 종류 및 방법 SQL Injection 논리적 에러를 이용한 SQL Injection 위 사진에서 보이는 쿼리문은 일반적으로 로그인 시 많이 사용되는 SQL 구문입니다. 해당 구문에서 입력값에 대한 검증이 없을 때 악의적인 의도로 임의의 SQL 구문을 주입하였습니다. ' or 1=1--로 WHERE 절에 있는 싱글 쿼터를 닫기 위한 싱글 쿼터와 or 1=1라는 구문을 이용하여 WHERE 절을 모두 참으로 만들고, -- 를 넣어줘 뒤의 구문을 주석 처리해주고 있습니..

알고리즘/자료구조

백준 1158번 요세푸스

백준 1158번 문제 : https://www.acmicpc.net/problem/1158 [알고리즘] - 큐(queue) 에서 배운 큐를 활용하여 문제를 해결할 것입니다! 문제 해결 전산학이나 수학에서 요세푸스 문제(Josephus problem) 혹은 요세푸스 순열(Josephus permutation)은 다음과 같이 정의한다. n과 k가 자연수이고, k

알고리즘/자료구조

큐(queue)

백준 10845번 큐 : https://www.acmicpc.net/problem/10845 큐(queue)란? 큐(queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 말한다. 나중에 집어 넣은 데이터가 먼저 나오는 스택과 정반대의 개념이다. 큐의 기능 여러 가지가 있지만 많이 사용되는 것들이다. empty() : 큐가 비어있는지 확인합니다. front() : 제일 최상위 데이터를 반환합니다. pop() : 큐의 front 데이터를 삭제합니다. push(item) : item을 큐에 추가합니다. size() : 현재 큐의 사이즈를 반환합니다. swap(q1, q2) : 두 큐의 내용을 바꿉니다. b..

알고리즘/자료구조

백준 9012번 괄호

백준 9012번 문제 : https://www.acmicpc.net/problem/9012 [알고리즘] - 스택(Stack)에서 배운 스택을 활용하여 문제를 해결할 것입니다! 문제 해결 문제를 읽어 보았을 때 괄호 문자열(Perenthesis String, PS)은 '(', ')'만으로 구성되어 있는 문자열을 말한다고 합니다. 그중 괄호의 모양이 올바른 구성으로 문자열이 입력되어 있는 것은 Valid PS, VPS라고 부른다고 하네요. 예를 들면 "()" 이런 식으로 입력되면 VPS이고, "(()())" 이런 식으로 입력되면 VPS이고, "(()" 이런 식으로 입력되면 VPS 가 아닌 거이다. 입력된 괄호 문자열이 올바른 괄호 문자열(VPS)이면 "YES"를 아니면 "NO"를 한 줄에 하나씩 출력하면 됩..

알고리즘/자료구조

스택(Stack)

백준 10828번 스택 문제 : https://www.acmicpc.net/problem/10828 스택이란? 스택(Stack)은 제한적으로 접근할 수 있는 나열 구조이다. 한쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 자료 구조이다. 스택의 기능 여러 가지가 있지만 가장 많이 사용하는 것들이다. pop(): 스택에서 가장 위에 있는 항목을 제거한다. push(input): input이란 변수를 스택의 가장 윗부분에 추가한다. size(): 스택에 들어가 있는 크기를 알려준다. top(): 스택의 가장 윗 부분를 반환해준다.(삭제하지 않는다) empty(): 스택이 비어 있을때에 true를 반환해준다. 왜 스택을 사용할까? 문제의 종류에 따라 배열보다 스택에 데..

해킹/웹해킹

xss-game level3 write up

xss-game Level3 write up xss이라는 웹해킹 기술을 연습할 수 있는 사이트이다. frame#1 level3에 들어가면 이런 화면이다. 일단 엄청 눌러보고 싶은 Image 1, 2, 3를 눌러보자! frame#2 frame#3 위와 같이 image 버튼을 누르면 그 숫자에 따라 frame# 뒤에 숫자가 생기는 것을 알수 있다! 그러면 여기에는 존재하지 않는 4를 입력해 보자. frame#4 입력해 보니 이미지가 깨져서 보인다. 저런식으로 이미지가 깨져서 보이는건 html에서 img태그를 사용할때 src에 저장되어 있는 파일경로에 그 해당 이미지가 존재하지 않을때 나타난다. 여기서 우리는 이미지가 깨져서 나올때 즉 에러가 떳을때 실행시키는 onerror 라는것을 사용할 수 있다. 예를 들..

나봄하랑
나의 IT 성장일지