본문 바로가기

분류 전체보기

OHKK 준비중 OOO 더보기
OHK hkoh OMG 더보기
세션 , 프로세스 그룹, 프로세스 관계 * 세션 - 텔넷이나 SSH와 같은 접속 명령을 보면 New Session 이라고 적혀 있는 것을 볼 수 있는데.이처럼 사용자와 시스템이 통신할 수 있는 일련의 프로세스들이 활동하는 가상공간- getsid( pid_t pid) 로 세션아이디를 얻을 수 있다. - 세션 범위 안에, 프로세스 그룹이 있고, 이는 getpgid 함수로 얻을 수 있다. 더보기
Thread Safe 공유메모리,정적 객체를 사용하는 경우 쓰레드에 안전하지 않다.예) strtok.이럴 경우, 재진입성 ( reentrancy ) 을 보장하도록 형태를 취하여 쓰레드 안전을 취하는 경우 독립적인 처리가 가능하다. 쓰레드에 안전하지 않은 함수에, 뮤텍스를 통해 쓰레드 안전을 유지하려는 경우예를 들어 전역으로 선언된 큐에 여려 개의 쓰레드가 큐에 아이템을 넣거나 빼는 작업을 하는 경우가 있다는 가정일때큐에 접근하는 쓰레드들이 큐를 변경시키는 모든 행위는 배타적으로 진행되어야 함으로 뮤텍스로 보호되어야 한다.하지만 공유 자원을 보호하는 데 있어서 뮤텍스를 적용하는 것이 능사만은 아니다. 예를 들자면 TCP/Ip 네트워크 통신을 하는 코드에 멀티 쓰레드를 도입 하고 Send 함수에 뮤텍스로 보호했다고 가정 한다면S.. 더보기
epoll epoll 의 특징은 stateful 함수로서 호출할 때마다 커널 영역과 유저 영역 사이에 모든 파일 기술자 정보 리스트와 부가적인 정보를 복사하는 오버헤드가 없다. 파일 기술자를 등록, 해제, 변경 하는 함수와 이벤트를 감시하는 함수가 분리되었고 메모리 복사의 부담이 많이 줄어 들었다.그리고 엣지 트리거의 지원이 추가 되었다. 물론 기본값으로는 레벨 트리거를 지원하고 있다 ( 용어 해설 ) 레벨 트리거 : 일정한 전위 수준을 넘었는지 감지엣지 트리거 : 전위차가 발생하는 엣지 부분에서 상태 변화를 감지 epoll function int epoll_create(int size); - > 커널 객체 공간 확보 int epoll_ctl (int epfd, int op, int fd, struct epoll_.. 더보기
Socket Non-blocking 일반적으로 모든 파일과 소켓은 기본값으로 블럭킹 모드를 사용하게 된다.이는 1:1 통신이나 외부 개입이 없는 프로그램이라면 별로 문제가 없을 것이지만, 이러한 구조는 희박하다.따라서 여러개의 소켓을 가지고 통신을 한다면 처리할 데이터가 없는 경우에는 recv 에서 바로 빠져 나와 다른 소켓을 처리할 수 있는방식인 Non-Blocking 방식으로 변경 한다. 일반 파일일 경우만 처음부터 Non-Blocking 모드로 열 수 있으며, 소켓 같은 경우, fcntl () 함수를 이용해서 넌블록킹으로 전환해야 한다.fcntl()에 F_GETFL 인수를 사용하면 기존 플래그 값을 읽어올 수 있다. 여기에 O_NONBLOCK 옵션 플래그를 OR 연산으로 더해주고F_SETFL로 파일 기술자에 플래그를 적용하면 넌 블럭.. 더보기
Pipe 사용 예제 python 에서 ls 명령을 실행 시킨 후, 결과를 파싱 하는 예제 1. 모듈 임포트import subprocess 2. cmd = "ls -al"ps = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)ls_str = ps.communicate()[0].splitlines() ls_str 배열의 값들을 알맞게 파싱 더보기
SQL Injection 정리 SQL Injection 1. 취약점이 존재하는지 테스트 하는 문자열 - 오라클 : '||'FOO- MS-SQL : '+' FOO- MYSQL : ' 'FOO 2. get 방식일 경우 - Union 또는 Update 또는 select 시에- %20 Union %20 SELECT %20 NULL, %20 from %20 dual -- 이런식으로 %20 3. 검증 우회: 사용 이유 : 검증 루틴에 의해 블랙 리스트를 사용해서 파라미터를 검증할때 이를 우회하기 위해 사용한다1) 'or 1=1 -- 같은 경우 'or 'a'='a' 등으로 우회2) select 키워드가 막혀있는 경우 - > SeLeCt 등 대소문자 섞음 - 또는 아스키 코드로 변환함 - %53 %45 %4c %45 %53 %54 3) 스페이스 를.. 더보기
웹 취약점 점검 툴 몇가지 정리 1. nikto - nikto는, 시그니처에 따라 유동적인 분석이 가능하다.설치 후 해당 폴더에서, ./nikto.pl -h 192.168.100.1 -p 443 -output result.html -Format html -Cgidirs all 명령으로 실행한다.결과는 result.html 에 레포트 형식으로 추출된다. 2. Nessus - Nessus 는 웹 브라우저에서 분석할 취약점을 선택적으로 점검이 가능 하다. 3. Acunetix 는 웹 브라우저에서 취약점 점검을 하며 간편하다. 더보기
acunetix web scanner 웹 점검 예 acunetix web scanner ( 상용 툴 )해당 툴로 특정 웹 사이트의 취약점을 점검 하였다는 가정 하에, 대응 방법에 대해 서술한다. 1. SSL 2.0 deprecated protocol- 위 취약점은 취약한 SSL 프로토콜을 사용하고 있어 취약하다는 점검 내용- 점검 방법 : openssl을 이용하여 직접 ssl 2.0 protocol 이 통신 되는지 확인 후, 대응- openssl s_client -connect 10.10.10.10:443 -ssl2 명령으로 sslv2 connection test - 정상 통신이 된다면, 아파치 폴더의 conf 파일에 아래 내용 추가 한다.SSLProtocol -ALL +SSLv3 +TLSv1 2. 알려진 페이지 발견- 위 취약점은 웹 서버의 오류 메시.. 더보기