본문 바로가기

분류 전체보기267

[bWAPP] SQL Injection - POST/search 1. 버프스위트를 이용해 사용자들의 id와 password를 획득하자. [난이도 low] Quest 1) 데이터베이스 정보를 알아내세요. 일단 POST에 대한 내용인 만큼 변수가 제대로 표시되지 않기 때문에 변수를 확인하기 위해 입력창에 아무거나 입력하고 Search를 눌러주었다. Burp Suite로 확인하니 입력창에 대한 변수는 title임을 확인할 수 있었다. Quest에서 말하는 데이터베이스 정보가 정확히 뭘 뜻하는 건지 모르겠어서 힌트를 참고했다. DB버전을 확인하기 위해 @@version, database()를 이용하기로 했다. 해당 내용을 입력해서 넘겨주었다. 원하는 내용을 출력할 수 있었다. 위의 화면을 바탕으로 DB의 버전은 5.0.96-0ubuntu3이고 DB의 이름은 bWAPP임을 확.. 2022. 2. 10.
[bWAPP] SQL Injection - GET/search 1. SQL 기본 지식 정리하기 (쿼리, 테이블 등 기본 용어 및 SELECT문 숙지) 1) SQL - 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 만들어진 프로그래밍 언어 2) 쿼리 (질의) - 데이터베이스에 정보를 요청하는 것 - DB에 대한 명령문 - 전달 과정 : 사용자 -> 쿼리(질의) -> DB 서버 -> 결과 -> 사용자 3) 데이터 정의어 (DDL, Data Definition Language) - 데이터베이스의 구조 정의 - 명령어 ① CREATE (테이블 생성) ② ALTER (테이블 수정) ③ DROP (테이블 삭제, 롤백 불가) ④ TRUNCATE (테이블의 모든 행 삭제, 테이블 구조는 그대로고 데이터만 삭제) 4) 데이터 조작어 (DML, Data Manipulati.. 2022. 2. 10.
[Lazenca] Protection Tech > PIE, RELRO [PIE] 1. PIE(Position Independent Executable) 1) PIE - 위치 독립 코드로 이루어진 실행 가능한 바이너리 2. 예시 #include char *gBuf = "Lazenca.0x0"; void lazenca() { printf("Lazenca.0x1\n"); } void main(){ printf("[.data] : %p\n",gBuf); printf("[Function] : %p\n",lazenca); } - build PIE file lazenca0x0@ubuntu:~/Documents/Definition/protection/PIE$ gcc -o NoPIE PIE.c lazenca0x0@ubuntu:~/Documents/Definition/protection/P.. 2022. 2. 10.
[Dreamhack System Hacking] STAGE 7 - hook 보호되어 있는 글 입니다. 2022. 2. 10.
[Dreamhack System Hacking] STAGE 7 - oneshot 보호되어 있는 글 입니다. 2022. 2. 10.
[Dreamhack System Hacking] STAGE 7 - 함께실습 [함께실습] Hook Overwrite - malloc과 free 함수를 후킹하여 각 함수가 호출될 때, 공격자가 작성한 악의적인 코드가 실행되게 하는 기법 1. 메모리 함수 훅 1) malloc, free, realloc hook - C언어에서 메모리의 동적 할당과 해제를 담당하는 대표적인 함수 : malloc, free, realloc - 각 함수는 libc.so에 구현되어 있음 - libc에는 이 함수들의 디버깅 편의를 위해 훅 변수가 정의되어 있음 ex. malloc 함수 : __malloc_hook 변수의 값이 NULL이 아닌지 검사하고, 아니라면 malloc을 수행하기 전에 __malloc_hook이 가리키는 함수를 먼저 실행함. (이때, malloc의 인자는 훅 함수에 전달됨) free 함수.. 2022. 2. 10.
[Dreamhack System Hacking] STAGE 7 [PIE] 1. PIC 1) PIC (Position-Independent Code) - 리눅스에서 ELF는 실행 파일(Executable)과 공유 오브젝트(Shared Object, SO) 두 가지가 존재합니다. - 실행 파일은 addr처럼 일반적인 실행 파일, 공유 오브젝트는 libc.so와 같은 라이브러리 파일 - 공유 오브젝트는 기본적으로 재배치(Relocation)가 가능 - 재배치가 가능하다는 것 = 메모리의 어느 주소에 적재되어도 코드의 의미가 훼손되지 않음 - 이런 성질을 만족하는 코드가 PIC - gcc는 PIC 컴파일 지원 - 예제 코드 // Name: pic.c // Compile: gcc -o pic pic.c // : gcc -o no_pic pic.c -fno-pic -no-pi.. 2022. 2. 10.
[BOJ] SISS 겨울방학 스터디 - 7주차 #10809 [문제] [코드 및 결과] #include int main() { int alpha[26]; char s[101]; scanf("%s", s); for (int i = 0; i < 26; i++) { alpha[i] = -1; } for (int i = 'a'; i num[i]) min = num[i]; } printf("%d %d\n", min, max); return 0; } [설명] 입력받을 정수의 개수 N과 입력받을 정수를 저장할 배열 num을 정수로 선언해주고 정수의 범위에 따라 max는 -1000000, min은 1000000으로 초기값을 잡아준다. scanf로 정수의 개수 N을 입력받고 N만큼 숫자를 입력받아 num 배열에 차근차근 저장해준다. 그리고 값을 배열에 저장하는 동시에.. 2022. 2. 10.
[bWAPP] HTML Injection - Stored(Blog) 1. HTML Injection Stored이 무엇인지 간단하게 정리하시오. 1) HTML Injection Stored (저장기법) - 공격자가 취약한 사이트에 악의적인 스크립트가 포함된 게시글 등을 올릴 경우 이 게시물을 열람하면 스크립트가 실행됨 - 공격 당한 사용자는 쿠키를 탈취당하거나 다른 사이트로 리다이렉션 되는 등의 피해를 입음 - 데이터베이스에 저장되고 해당 게시물을 열람한 사용자들이 공격의 대상이 되기 때문에 파급력이 큼 - 공격 방법 ⓐ 악성 행위를 하는 html 코드를 게시물에 심음 ⓑ 사용자가 게시물을 조회하면 악성 html 코드 실행 2. 문제 페이지에 코드를 삽입하여 아래와 같이 이전 QUEST인 html injection - reflected (POST)를 해결하세요. [난이도.. 2022. 2. 8.