1번 문제를 들어가면 위와 같은 문구가 보인다view-source를 클릭하면 아래와 같은 소스코드를 확인할 수 있다.소스코드를 보면 user_lv이란 쿠키 값이 4보다 크면 1로 설정되고, 3보다 크면 문제를 풀 수 있다.따라서 user_lv을 3보다 크고 4보다 작은
NTFS(New Technology File System)는 Windows NT가 개발되면서 FAT의 구조상의 한계점을 개선하기 위해 개발되었다.NTFS는 처음 개발된 이후로 많은 기능들이 추가되었다. NTFS의 많은 기능들 중에 대표적인 기능만 살펴보자.USN 저널은
FAT(File Allocation Table)이라는 용어는 이름 그대로 파일의 할당 정보를 표현한 테이블이다. FAT는 구조가 간단하다는 장점 때문에 일반 시스템 외에도 메모리 카드, 디지털 카메라, 플래시 메모리 등에 널리 사용되고 있다.FAT 파일 시스템은 크게
MBR은 저장매체의 첫 번째 섹터(LBA 0)에 위치하는 512 bytes 크기의 영역이다. 처음 446 bytes는 부트 코드(Boot Code) 영역, 64 bytes는 파티션 테이블(Partition Table), 마지막 2 bytes는 시그니처를 나타낸다.운영체
일반적으로 사람들은 컴퓨터를 구입 후 하드디스크 용량을 최소한 두 개의 파티션으로 분할 후 사용할 것이다. 그렇다면 왜 파티션을 분할해서 사용하는 것일까? 다양한 이유가 있겠지만 몇 가지 이유만 살펴보자.분할된 파티션을 중요 데이터 저장용도나 백업 용도로 사용할 수 있
슬랙 공간은 저장매체의 물리적인 구조와 논리적인 구조의 차이로 발생하는 낭비 공간이다.슬랙 공간은 의미가 조금씩 틀리게 해석되는 경우도 있지만, 일반적으로는 램슬랙, 드라이브 슬랙, 파일시스템 슬랙, 볼륨 슬랙으로 나눌 수 있다. 파일 슬랙이라는 용어가 램 슬랙과 드라
저장매체의 물리적인 최소 단위는 1섹터이다. 따라서 실제 하드디스크 컨트롤러에 의해 동작하는 단위도 섹터단위로 읽고 쓰여진다. 하지만 현대의 파일시스템은 섹터 단위가 아닌 여러 섹터를 묶은 클러스터라는 개념으로 데이터를 관리한다. 이는 평균적인 파일 크기가 커진 상황에
저장매체는 섹터라는 최소한의 데이터 저장단위를 사용한다. 섹터는 일반적으로 512byte이다. 이러한 섹터들은 하드디스크 물리적인 구조내에 존재하는데 특정 파일을 읽고자 한다면 해당 섹터를 읽어야 한다. 섹터는 각각 주소값을 가지고 있기 때문에 해당 주소로 접근하여 각
파일 시스템은 데이터를 효과적으로 관리하기 위해 사전에 정의한 기록 방식이다. 효과적인 관리를 위해 최근에는 압축, 암호화, 저널, 동적 할당, 다국어 지원 등 다양한 기능을 보유하고 있다.파일시스템은 운영체제나 운영체제나 저장매체 혹은 사용환경에 따라 고유한 파일시스
모든 보호기법이 적용되어 있다. 특히 Full RELRO가 적용된 것을 볼 수 있다.stack에 값을 입력받는다.원하는 주소에 원하는 값을 입력할 수 있다.원하는 주소를 free할 수 있다.Full RELRO 때문에 GOT를 덮어 쓸 수 없다.하지만 free함수가 실행
문제 페이지에 접속해보면 파일을 업로드 할 수 있는 페이지가 있다.제공된 소스코드를 보면 php, php3, php4 등의 확장자를 필터링 하고 있다.php 이외의 파일은 필터링이 없으므로 .htaccess파일을 업로드 한 뒤 다른 확장자로 웹 쉘을 실행시킬 수 있다.
주어진 문제 소스코드이다.코드를 보면 sql injection 필터링이 전혀 없는 것을 알 수 있다.값을 아무거나 넣어보면 query문은 실행되지만 결과값은 보이지 않는다.하지만 싱글쿼터를 넣어보면 에러 메시지를 볼 수 있다.따라서 error based blind sq
싱글쿼터, substr, ascii, = 를 피러링 하고 있다darknight의 pw를 찾으면 문제를 풀 수 있다.싱글쿼터이 필터링 되기 때문에 admin을 입력하는데 제한이 된다.또한 기존에 사용하던 함수 substr 등을 사용할 수 없다.각 필터링은 다음과 같이 우
or, and, substr(, =를 필터링 하고 있다.pw를 찾으면 문제를 풀 수 있다.각 필터링은 다음과 같이 우회할 수 있다.or -> ||and -> &&= -> like
sql query 문을 보면 마지막에 무조건 거짓이 되는 구문이 존재한다.id가 admin이면 문제를 풀 수 있다.특별한 필터링은 없다.주석을 사용해서 and 1=0 부분을 없애주면 쉽게 해결할 수 있다.
싱글 쿼터를 필터링 하고 있다.strtolower 함수로 입력값을 소문자로 치환한다.문자열 admin을 공백으로 치환한다.str_replace함수에서 admin을 공백으로 치환하는 필터링이 존재하는데 admin 사이에 admin이라는 문자열을 넣어주면 필터링을 통해 결
문자열 admin을 필터링 하고 있다.id가 admin이면 문제를 풀 수 있다.preg_match("/admin/", $\_GET(\[id])) 부분에서 i가 빠져있다.따라서 대소문자를 구분하기 때문에 admin을 대문자로 입력하면 우회할 수 있다.
문자열 or 와 and를 필터링 하고 있다.정확한 pw를 찾으면 문제를 해결할 수 있다.or 하고 and는 특수문자 ||와 &&로 우회할 수 있다.여기서 주의할 점은 특수문자 &은 url인코딩해서 %26으로 적어야한다.length가 8일 때 Hello admin이 출력
문자열 "or" 하고 "and"를 필터링 하고 있다.id가 admin이면 문제릂 풀 수 있다.or 하고 and는 특수문자 || 하고 &&으로 각각 우회할 수 있다.업로드중..
공백을 필터링 하고 있다.id가 admin이면 문제를 해결할 수 있다.공백은 다음과 같이 우호할 수 있다.Tab : %09Line Feed(\\n) : %0aCarrage Return(\\r) : %0d주석 : /\*\*/괄호 : ()더하기 : +