목록전체 글 (91)
Study
문자를 다루는 함수는 헤더 파일에 존재함 toupper(), isalpha(), isdigit() + isalpha() 내용 추가 알파벳 대문자 "A-Z"는 1을 반환 알파벳 소문자 'a-z"는 2를 반환 알파벳이 아닌것은 0을 반환 isalpha(), isdigit()사용 예) string a = "hello"; for(int i=0; i

template struct pair; 데이터의 쌍을 표현할 때 사용 사용법) pair p; p.first //p의 첫 번째 인자 반환 p.second //p의 두 번째 인자 반환 make_pair(변수 1, 변수 2) //변수 1과 변수 2가 들어간 pair를 만들어 준다 실행 결과) - pair www.cplusplus.com/reference/utility/pair/ blockdmask.tistory.com/64 securityholic.tistory.com/195
string : c++표준 라이브러리에서 제공하는 클래스로서, 문자열을 객체로 다룬다. string 클래스 사용시 다음 코드 필요 #include using namespace std; · 공백을 포함하는 문자열 입력받기 헤더 파일에 선언된 getline() 전역함수 이용 예) string name; getline(cin, name, '\n'); //'\n'을 만날 때까지 키보드(cin)으로 부터 문자열을 읽어 name에 저장 첫 번째 인자 : cin 두 번째 인자 : string 객체 세 번째 인자 : 문자열의 마지막을 표시하는 구분 문자 pos : 문자열 내의 문자 위치, 0부터 시작 멤버 함수 설명 string& append(string& str) 문자열 뒤에 str 추가 예) string str; ..
알고리즘: 컨테이너 원소에 대한 복사, 검색, 삭제, 정렬 등의 기능을 구현한 템플릿 함수 sort(a,b); a에는 시작 주소 , b에는 마지막 주소+1 넣어준다. sort함수는 기본적으로 오름차순 정렬 예) vector v; sort(v.begin()+2, v.begin()+5) //벡터의 3번째 원소에서 5번째 원소까지 정렬 sort(v.begin(), v.end()); //벡터 전체 정렬 ·내림차순 정렬 1. 헤더 파일 추가해주기 : #include //greater 사용 위해 필요 2. sort() 함수의 세번째 인자에 greater()넣어주기 예) sort(v.begin(), v.end(), greater()); - 명품 c++ programming (책) - sort() m.blog.nave..
Container : 데이터를 저장하고 검색하기 위해 담아두는 자료 구조를 구현한 클래스 예) list, queue, stack, map, set, vector 컨테이너 클래스 설명 헤더파일 vector 가변 크기의 배열을 일반화한 클래스 1. STL(Standard Template Library)은 namespace에 작성되었기 때문에 STL을 사용하려면 using namespace std; 코드 필요 2. 헤더파일 include -> #include 3. vector 컨테이너 활용 : vector는 내부에 배열을 가지고 원소를 저장, 삭제, 검색하는 멤버들을 제공함 스스로 내부 크기를 조절하므로 개발자가 vector크기에 대해 고민할 필요 없음 벡터 원소에 대한 인덱스는 0부터 시작 · vector ..

1. 개요 CVE 코드 CVE-2020-25762 분류 Unauthenticated SQL Injection 대상 어플리케이션 Seat Reservation System 1.0 취약 코드 /seat_reservation/admin/admin_class.php 실행 환경 Apache 2.4.46 / PHP Version 7.4.9 / Windows 7 x64 1.1 대상 어플리케이션 설명 : Seat Reservation System 1.0의 admin 페이지 로그인 화면이다. username과 password로 들어오는 입력값에 대한 검증이 전혀 이루어지지 않기 때문에 sql인젝션 취약점이 발생한다. 1.2 공격 시나리오 - id에 임의의 값, password에 ' or 1=1 -- 을 넣어 로그인을 시..

1. 개요 CVE 코드 EDB-ID-48822 분류 Union SQL Injection 대상 어플리케이션 Seat Reservation System 1.0 취약 코드 /seat_reservation/reserve.php 실행 환경 Apache 2.4.46 / PHP Version 7.4.9 / Windows 7 x64 1.1 대상 어플리케이션 설명 : 영화 좌석 예매 서비스를 제공하는 웹페이지다. 영화 포스터에 마우스를 올리면 나타나는 Reserve Seat버튼을 클릭하면 해당하는 영화를 예매할 수 있는 /seat_reservation/reserve.php 페이지로 이동한다. 위 URL에서 id값을 검증하지 않아서 취약점이 발생한다. 1.2 공격 시나리오 -Union연산자를 이용한 Sql Injectio..

low level에서와 같이 공격을 시도해보았다. 1. 실행결과 실패했다. 2. 마찬가지로 실행결과 실패했다. commandi.php 소스코드를 확인해보았다. medium level의 경우 case 1에 해당하므로 commandi_check_1()를 살펴보았다. 특수문자 &와 ;를 필터링해주기 때문에 입력된 명령어가 실행되지 않은 것이다. | 는 따로 필터링 해주지 않기 때문에 아래와 같이 입력하면 결과가 잘 수행된다. 비교를 위해 low level의 케이스를 확인하면 low level은 no_check()에 의해 처리되는데 이 함수의 경우 아무런 확인 없이 입력값을 반환해주기 때문에 명령어가 정상적으로 수행된 것이다. 마지막으로 high level의 경우 어떻게 처리해주는지 살펴보면 commandi_c..