본문 바로가기

분류 전체보기

(6)
pwnable.kr(Toddler's Bottle_lotto)_by $0u1Tr33 로또 프로그램을 만들었다고 한다. lotto@prowl:~$ ls -l total 24 -r--r----- 1 lotto_pwn root 55 Feb 18 2015 flag -r-sr-x--- 1 lotto_pwn lotto 13081 Feb 18 2015 lotto -r--r--r-- 1 root root 1713 Feb 18 2015 lotto.c c파일을 보자. lotto@prowl:~$ cat lotto.c #include #include #include #include unsigned char submit[6]; void play(){ int i; printf("Submit your 6 lotto bytes : "); fflush(stdout); int r; r = read(0, submit, ..
리버싱_햇갈렸던 명령어 정리_by $0u1Tr33 자주 까먹거나 햇갈리는 명령어들을 정리했다. JNZ => zero flag가 0일 때 점프한다. JZ => 반대로 zero flag가 0이 아닐 때 점프한다. ADD a,b => a와 b를 더해서 a에 넣는다. SUB a,b => a와 b를 빼서 a에 넣는다. INC a => a를 1 증가시킨다. DEC a => a를 1 감소시킨다. (DEC의 대상이 0이 되면 Zero flag를 1로 설정한다.) SAR a,1 => a를 2번쨰 인자만큼(1만큼) 오른쪽으로 이동시킨다. a가 만약에 16진수로 6c라면, 2진수로는 01101100 이고 1들을 다 오른쪽으로 1칸씩 밀면 00110110이 된다. 이것은 16진수로 39가 되고 10진수로는 54가 된다. 어셈블리어에는 곱셈이 2가지가 있는데 하나는 부호가 없..
리버싱_간단한 기초지식_by $0u1Tr33 메모리에는 코드,데이터,힙,스택 이렇게 4가지의 영역으로 나뉜다. 특히 스택은 거꾸로 데이터가 쌓인다. 스택이 커지는 그 반대방향에는 커널 이라는 중요한 곳이 있어서 침범을 하면 안되도록 설계해놓았다. EP(엔트리 포인트) : 운영체제가 사용자 프로그램(ollydbg)으로 최초로 제어를 넘기는 지점. ollydbg로 어떠한 바이너리를 열면 멈추는 지점이 바로 엔트리 포인트이다. Flag 중 중요한 것이 Zero flag인데 두 값을 비교해서 같으면 ZF가 1이 되고, 같지 않으면 0이 된다. https://www.aldeid.com/wiki/X86-assembly/Instructions/jnz?fbclid=IwAR0f8Hyd8OS4oN-SM2h9lx-fZ_CteKH5qQ1SWirM2NX-IOieHjG4I..
SQL Query (1) _ by WolLu SQL 쿼리문에는 무엇이 있을까? - SELECT문 SELECT문은 데이터베이스에서 데이터를 가져오는 데 사용된다. SELECT 필드1, 필드2 FROM 테이블; - 위의 구문에서는 필드1과 필드 2의 모든 데이터를 테이블에서 가지고 온다. SELECT * FROM 테이블; - 위의 구문은 필드의 명이 들어갈 자리에 *를 넣음으로써 테이블의 모든 필드의 데이터를 가지고 온다. 고객정보 고객번호 이름 나이 거주지 전화번호 1 홍길동 24 포항 010-4884-**** 2 박민수 20 경주 010-8748-**** 3 이준서 34 부산 010-4888-**** - DB에 저장되어있는 모든고객의 이름과 나이가 필요하다고 가정하자 그럼 아래와 같은 구문을 사용하면 된다. SELECT 이름, 나이 FROM 고객정..
DATABASE _ by WolLu DB (데이터베이스)란 무엇인가? - 데이터베이스는 여러 응용시스템들의 정보를 통합하여 저장하는 것이다. - 데이터베이스의 구조는 아래와 같다. 고객정보 고객번호 이름 나이 거주지 전화번호 1 홍길동 24 포항 010-4884-**** 2 박민수 20 경주 010-8748-**** 3 이준서 34 부산 010-4888-**** 데이터 베이스의 "고객정보"는 테이블(table)이라 칭한다. 데이터 베이스의 각행을 로우(raw) or 레코드(record)라 칭한다. 데이터 베이스의 각열을 컬럼(columm) or 필드(field)라 칭한다. - 데이터베이스를 조작하기 위해 SQL이라는 언어가 있다. ( 다음 포스트에서 자세히 알아보겠다 ) - 데이터베이스를 관리하기 위해 DBMS를 사용한다. - DBMS를 ..
Pwnable.kr(Toddler's Bottle_shellshock)_by $0ulTr33 2019.10.7(일) 1점 짜리라서 골랐다. ssh shellshock@pwnable.kr -p2222 비번 : guest 들어와서 보니 4개의 파일이 있다. shellshock@prowl:~$ ls -l total 960 -r-xr-xr-x 1 root shellshock 959120 Oct 12 2014 bash -r--r----- 1 root shellshock_pwn 47 Oct 12 2014 flag -r-xr-sr-x 1 root shellshock_pwn 8547 Oct 12 2014 shellshock -r--r--r-- 1 root root 188 Oct 12 2014 shellshock.c 주의할 점은 shellshock 바이너리 파일에 setgid가 걸려있다. (※setgid란, 실..