lighttpd와 php를 웹서버로 사용할 때 취약성 부분입니다. 웹사이트 주소를 아래와 같이 입력 했을때 phpinfo()의 내용이 출력되는데요. https://192.168.0.10/test.php/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 (test.php 는 php형태를 갖추는 파일만 존재하는 상태입니다. 내용물에는 실제 코드가 없습니다.) 해당 취약성은 php.ini의 수정을 통해 감출 수 있습니다. php.ini에 아래 내용을 추가하고 php를 재시작하도록 합니다. expose_php = off 그리고 웹서버에 접속해보면 내용이 더이상 출력 되지 않습니다. 이런 사소한 부분도 CC에서는 취약성에 걸린다고 하네요~ [ expose_php = off ] 외에도 ph..
아래와 같은 데이터가 있습니다. mysql> select sipv4,timestamp,bytes from oops; +-----------+-----------+---------+ | sipv4 | timestamp | bytes | +-----------+-----------+---------+ | 171115273 | 9 | 40 | | 169152406 | 10 | 2772021 | | 169152406 | 10 | 142312 | | 174325910 | 10 | 51029 | | 169152406 | 11 | 1254172 | | 171115273 | 15 | 3192 | | 169152406 | 14 | 132 | | 169152406 | 15 | 11516 | | 171115273 | 16 ..
http://www.slideshare.net/einsub/svn-git-17386752
AhnLab ISF2013에 왔습니다. 기회가 되면 매년 오려고 하는데 2년만이네요, 오랜만에 찾은것에 비하면 새제품이나 새로운 기술에 대한 이야기가 적어서 약간 아쉬웠는데요, 그래도 역시 규모면에서는 상당합니다. 코엑스에 각섹션을 설치해서 운영했는데요 APT는 언제 들어도 유익하고 디지털 포렌식에 대한 섹션이 꽤 인상적이었습니다 통역기를 받지 못해서 오프닝 섹션은 약간 힘들었습니다;; 내년에는 더 많고 유익한 내용을 기대해봅니다^^ (이건.. 인증용 명찰 ^^;;)
mysql 에서 결과 컬럼을 합쳐야 할 필요가 있을때가 종종 있습니다.예를들어 아래와 같은 테이블이 있습니다. mysql> select * from new_table; +------+------+-------+-------+-------+ | num | name | descr | sipv4 | dipv4 | +------+------+-------+-------+-------+ | 1 | oops | test | 111 | 222 | | 2 | oops | test | 111 | 333 | | 2 | oops | test | 123 | 122 | | 2 | oops | test | 148 | 843 | +------+------+-------+-------+-------+ 4 rows in set (0...
기본적으로 linux 터미널은 검은색 바탕에 흰색 글씨인데요, 아래와 같은 방법으로 콘솔에 출력되는 글씨의 색상을 지정할 수 있습니다. 우선 글씨 색상을 해제하는 방법부터 확인을 합니다. $ echo -e "\x1b[0m" 그리고 글씨 색상 지정을 알아봅시다.$ echo -e "\x1b[31mTEST (RED)" 빨강으로 표시된 곳이 글씨 색상을 좌우하는 필드입니다. 색상 종류는 아래와 같이 31~37까지 지원합니다. (해제하지 않으면 계속 설정한 색상으로 출력되기 때문에 꼭 해제하도록 합니다) 글씨색 뿐만아니라 배경 색도 아래처럼 지정할 수 있습니다. 이때는 41~47 까지 색상을 지원합니다. 작은 팁이기는 하지만, print 로 디버그 메시지를 출력할때 강조 할 수 있기 때문에 참 좋습니다 :)ex)..
Application 에서 call trace 를 출력하고, 해당 주소를 코드상에서 찾으려면 애플리케이션 compile시에 gcc 옵션으로 -g 를 사용해야 합니다. 그리고 코드상에 call trace를 출력할 수 있도록 __builtin_return_address() 를 사용합니다. openlog("oops", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); syslog(LOG_DEBUG,"oops : Signal happened (%d)\n", nSignal); syslog(LOG_DEBUG, "01 - 0x%08x \n", (int)__builtin_return_address(0)); syslog(LOG_DEBUG, "02 - 0x%08x \n", (int)__bu..
리눅스 프로그래밍중 특정 폴더를 감시해야 하는 경우가 있습니다. 해당 기능을 구현하기 위한 방안은 여러가지가 있는데요, 이를테면, 그 폴더의 SIGIO를 등록해서 폴더의 input/output을 감시할 수 있습니다. 하지만 이 경우에는 create / write / close / delete 등을 별도로 구분하지 못하는 부족함이 있습니다. 또한 signal의 경우 중복으로 요청이 들어올 경우 앞선 signal을 잃어버리는 경우도 발생하기 때문에 좋은 방안은 아닌듯 보이죠.. (fcntl 를 이용한 signal 처리에도 create/rename/close 등을 구분할 수는 있네요^^;) 이때 대안이 되는방법이 inotify_add_watch() 라는 함수를 사용하는 것 입니다. 일단 형태는 아래와 같습니다..
http://danguria.tistory.com/171
아래와 같이 파일을 통해 등록할 수도 있고, MySQL 프롬포트에서 등록할 수도 있습니다. $ cat hello.sql delimiter // // create procedure hello() begin select 'hello'; end // $ mysql -u oops -poops test call hello(); +-------+ | hello | +-------+ | hello | +-------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql> 이미 동일한 이름의 프로시져가 있는 경우를 대비해서 기존 프로시져 함수명을 삭제하고 등록하는..
MySQL을 사용하다보면 간혹 외부 SQL script file 을 읽어와서 실행하면 편한 경우가 있습니다.(새로운 Query 를 설계하고 즉시 테스트 할때 용이하지요, notepad Ctrl+c, Ctrl+v 신공보다는..^^;) 이럴때는 아래와 같은 명령어를 사용하도록 합니다. mysql> source /bin/test.sql # SQL query문이 있는 파일의 경로 입니다. MySQL 을 접속한 위치가 test.sql 의 위치와 같다면, 아래와 같이 절대경로를 입력하지 않아도 상관없습니다. mysql> source test.sql 혹은 source 대신 \. 를 사용하셔도 됩니다. mysql> \. /bin/test.sql 꼭 MySQL 에 접속해야만 Query 를 날릴수 있는것도 아닙니다.아래와..
python 관련된 프로그램(setuptools-0.6c11)을 인스톨 하는 과정에서 아래와 같은 에러를 만났습니다. z = zipfile.ZipFile(zip_filename, mode, compression=compression) File "/usr/local/lib/python2.7/zipfile.py", line 732, in __init__ RuntimeError: Compression requires the (missing) zlib module compression을 사용하기 위해서는 zlib이라는 module이 필요한데, 정상적으로 서버에 설치가 되어 있지 않아서 발생한 문제인데요, 거슬러 올라가 python을 설치할 당시 make의 마지막 부분에 보면 설치되지 않은 module에 대한 정..
필요할때 찾아보면 유용하겠습니다. http://ss64.com/ora/
target board가 mips 환경인 경우 python을 mips용 컴파일러로 컴파일을 해야하는데요,컴파일 도중 아래와 같은 에러가 발생 했습니다. Include/pyport.h:243:13: error: #error "This platform's pyconfig.h needs to define PY_FORMAT_LONG_LONG" 관련해서 google의 도움을 청해보니, 이미 등록 된 버그로 패치버전이 나왔네요,여기를 참조하도록 합니다. 제가 갖고 있는 버전의 경우 python2.7.3 이기 때문에 아래와 같이 패치버전을 받고,wget http://randomsplat.com/wp-content/uploads/2012/10/Python-2.7.3-xcompile.patch build 환경에서 아래와..
listiterator object에 대해서 살펴봅니다. 우선 아래와 같은 list가 있고 >>> aa = [1,2,3,4,5,6] >>> type (aa) aa라는 list를 iterator화 시켜서 bb라는 listiterator에 담는 과정은 아래와 같습니다. >>> bb = iter(aa) >>> >>> bb >>> >>> type(bb) iter함수를 직접 호출하는 경우도 아래와 같이 동일합니다. >>> cc = aa.__iter__() >>> >>> cc >>> >>> type(cc) >>> 자, 이제 bb나, cc라는 listiterator를 next()와 결합 시켜서 사용 가능합니다. >>> bb.next() 1 >>> next(bb) 2 >>> bb.next() 3 >>> next(bb)..
아래와 같이 iflist라는 이름의 list가 있습니다. >>> type(iflist) >>> iflist [1, 2, 3] list 내부의 요소는 모두 int형인데요, 이것을 한번에 형변환 시켜주는 명령어(함수)가 필요했습니다, 이때 사용되는 함수가 바로 map입니다,사용법과 결과부터 확인하면 아래와 같습니다. >>> test = map(lambda x: str(x), iflist) >>> test ['1', '2', '3'] >>> type(test) 여전히 type은 list고, 내부 요소는 str로 바뀐것을 확인 할 수 있는데요,map에 lambda라는 익명함수를 사용한 조작이었습니다. map(lambda x: str(x), iflist) A B C A는 C의 리스트 요소를 말합니다.B는 반환형을..
특정 디렉토리 내의 파일 카운트를 얻어와야 하는 경우 아래와 같은 코드를 이용합니다. >>> import os >>> print len(os.walk('디렉토리_절대경로').next()[2]) os.walk('절대경로').next() 는 배열로 아래와 같은 형식을 취합니다. os.walk('절대경로').next()[0] ==> 디렉토리 경로 os.walk('절대경로').next()[1] ==> 디렉토리 내의 디렉토리 개수 os.walk('절대경로').next()[2] ==> 디렉토리 내의 파일 개수 상황에 맞게 이용하도록 합니다 :-)
- Total
- Today
- Yesterday