분류 전체보기
[python] List, Tuple, Dictionary, Set, Enumerate, sort 정렬
[python] List, Tuple, Dictionary, Set, Enumerate, sort 정렬
2017.02.23`` list()``함수를 이용해 다른 데이터 타입을 리스트로 변환할 수 있다.`` tuple()``함수를 이용해 다른 데이터 타입을 투플로 변환할 수 있다.`` dict()``함수를 이용해 두 값으로 이루어진 시퀀스를 딕셔너리로 변환할 수 있다. 항목 삭제```pythondel arr[offset]arr.pop(offset)arr.remove(value) # 값으로 삭제``` 값을 이용해 인덱스 알아내기```pythonarr.index(value)``` Array파이썬 기본 리스트 `` []``는 array 보다는 linked list에 가깝다.array를 사용하기 위해서는 array나 numpy를 사용해야 한다. numpy는 좋은 라이브러리이지만, 서드파티 라이브러리를 쓰기 애매한 경우 array도 ..
[Windows] 환경변수
[Windows] 환경변수
2017.02.15windows 환경변수 설정```set env_name="value"echo %env_name%```근데, Unix-based에서도 그렇 듯 해당 쉘에서만 임시로 추가된다.글로벌하게 사용하려면 .profile 등에 추가해줘야 하는 것 처럼 환경변수 탭에서 직접 설정해야 한다. windows 환경변수변수자료값 %ALLUSERSPROFILE%(윈도 XP) C:\Documents and Settings\All Users(윈도 비스타) C:\ProgramData %APPDATA%(윈도 XP) C:\Documents and Settings\{사용자 이름}\Application Data(윈도 비스타) C:\Users\{사용자 이름}\AppData\Roaming %COMPUTERNAME%{컴퓨터 이름} %COMSPE..
[python] 정수 실수 자료형
[python] 정수 실수 자료형
2017.02.15파이썬에서는 모든 것이(데이터 타입이나 함수, 프로그램까지) 객체로 구현되어 있다.함수가 일급 객체이기 때문에 JS같이 함수형으로 프로그래밍 할 수도 있다. 파이썬에서 변수를 값으로 초기화하면 자바의 wrapper class 비슷하게 동작한다.1) 값을 담은 객체로 생성된다. 2) 변수는 이 객체를 가리킨다.`` a = 3`` 하면 `` a``라는 변수에 `` 3``이 담기는게 아니라 `` 3``이라는 정수형 객체가 생성되고 `` a``가 객체 `` 3``을 가리키게 된다.자바의 wrapper class도 값을 담은 객체가 생성되고 이를 가리키게 된다. 그러나 값을 4로 변경하고 싶을 때, 자바의 경우 객체에 담긴 값을 변경하거나 새로운 4라는 객체를 생성하는 두가지 방법을 사용할 수 있지만 파이썬은 후..
[Java] lambda 기본 개념
[Java] lambda 기본 개념
2017.02.07Lambda ```java // 기본 형식. 2줄 이상일 때 ( parameters ) -> { expression body } // 별다른 내용 없이 바로 return할 수 있는 경우 ( parameters ) -> expression ``` Lambda를 활용한 Thread 보통 자바에서 Thread는 다음과 같이 Thread로 사용할 class에 Runnable interface를 implements하여 Thread객체에 파라미터로 전달하여 사용한다. ```java class TestThread implements Runnable { @Override public void run() { System.out.println("newTHread"); } } ``` ```java Thread t = new..
[Git] 자주쓰는 command
[Git] 자주쓰는 command
2017.02.06GitHub 단축키 리스트 보기는 `` ?`` 이미 만들어진 저장소를 remote와 연결 리모트 저장소 alias는 보통 origin으로 쓰지만 로컬에서만 사용하는거니까 아무거나 해도 상관없다. ```bash git init git remote add alias url git remote -v git pull alias branch OR git fetch alias ``` 커밋 관련 커밋 히스토리 조회 ```bash git diff git log git log -p [-숫자] ``` commit 합치기 - rebase commit할 때 뭔가 커밋 단위가 너무 작아서 여러개의 커밋을 묶고 싶을 때 사용한다. ``` git rebase -i feature1 ~ 4 # feature1 브랜치 최상위 커밋부터 ..
[python] 팁, 메모
[python] 팁, 메모
2017.02.06hidden-features-of-python 설정값 (config file. properties, json, yml) 관리하기 https://mingrammer.com/ways-to-manage-the-configuration-in-python/ editable로 설치 ```python pip install --editable . -e, --editable Install a project in editable mode (i.e. setuptools “develop mode”) from a local project path or a VCS url. ``` 패키지 수동 설치 패키지 압축을 해제하고 `` dist``(distribution) 폴더로 이동해서 다시 tar 압축 해제 반드시 해당 폴더에서 진행할..
VScode
VScode
2017.02.03VScode```C:\> code ``` extension그냥 검색하고 나서 정렬기준 설치 수로 놓고 조회해서 상위권 다운받으면 된다.Active File in statusbarPath Intellisensegit historyC/C++HTML SnippetsPartial Diffsftp 원격 코딩rmate는 파일단위고 원격에서 열 파일을 지정해서 명령어 쳐야해서 되게 불편하고.호스트가상머신 간 작업만 할거면 공유폴더로 처리해도 되기는 하는데, ftp를 사용하는 편이 좋은게 ftp를 쓰면 파일을 실수로 지워도 한 쪽에는 남아있기 때문. auto upload만 활성화 하면 공유 폴더 처럼 동기화 신경 안쓰고 쓸 수 있기도 해서. ftp를 쓰는게 제일 괜찮은 듯. compile`` Ctrl+Shift+B``..
FC3 gate - iron_golem - dark_eyes
FC3 gate - iron_golem - dark_eyes
2017.02.03FC3에 적용된 메모리 보호 기법Stack Dummy : ODown Privileage of bash : ORandom Stack : ORandom Library : XRandom Program Binary Mapped : XASCII Armored Address Space : O mapping address의 첫번째 1Byte가 0x00이라서 library address를 입력하고 나면 이후 parameter 삽입이 불가능하다. phrack의 어떤 문서에서 이렇게 소개되어 ASCII Armor라고 부르는 것 같지만, 요즘 ASCII Armor는 Radix 64를 의미하는 경우가 더 많은 듯.Non-Executable Stack : ONon-Executable Heap : OStack Smashing P..
IP parsing(+C), URL parsing 정규식 pattern
IP parsing(+C), URL parsing 정규식 pattern
2017.02.01직접 짜기 전에 org.springframework.web.util.UriComponentsBuilder 참조. IP, HOST, HTTP 등 패턴이 static 변수로 선언되어 있음. 또는 InetAddressValidator 같이 아예 유틸리티 클래스로 제공되고 있을 수 있다. 비슷한 계열이 몇 개씩 된다. ```java InetAddresses.isInetAddress() -- guava 530ms InetAddressUtils.isIPv4Address() -- httpclient 1146ms InetAddressValidator.getInstance().isValid() -- apache.commons 1573ms InetAddress.getByName() -- java.net 인데... ㄴ do..
LOB xavius → death_knight : remote BOF, rawbf
LOB xavius → death_knight : remote BOF, rawbf
2017.01.30xavius - throw me awayremote BOF다. 소켓프로그래밍은 오랜만인데, 그래도 코드가 복잡하지는 않다. 서버 프로그램은 서버에서 돌아가는 거니까, 호스트에서 환경변수 등을 사용할 수는 없지만, 256바이트나 사용할 수 있으니까 그냥 버퍼에 집어넣는게 좋겠다. parent는 while로 계속 돌아가고, child가 recv수행하고 나서 return하므로 child를 사용해 익스플로잇 하게 된다. 근데 recv 직후 close(client_fd) 해서 클라이언트와의 연결이 끊어진다. 따라서 client에 데이터를 전송할 수 없다. 리버스 쉘을 사용하거나, 출력 내용을 저장하도록 해야한다. 리버스 쉘 연결을 대기하도록 쉘코드를 짜기는 귀찮아서 그냥 후자로 진행했다. 주의 )쉘코드가 실행되면..
LOB succubus ~ nightmare → xavius : strcpy / stdin과 fgets
LOB succubus ~ nightmare → xavius : strcpy / stdin과 fgets
2017.01.28succubus - here to stay / strcpystrcpy의 PLT 주소로 리턴해야만 한다. ret이후 4byte를 제외한 공간을 사용할 수 있다.ret+4byte를 제외한 이유는 이전 문제처럼 풀지 않도록 하기 위해서 인 듯. strcpy의 PLT 주소는 0x08048410 PLT-GOT resolve 과정에 문제가 있는게 아니라, main에서 strcpy로 리턴하면서 src와 dest를 내 마음대로 정할 수 있다는게 문제.strcpy의 dest에 retAddr이 있는 곳을 넘겨 수정하면 내가 원하는 곳으로 리턴할 수 있다.(strcpy를 이용하면 FSB처럼 메모리의 어떤 공간에 접근해서 그 부분에 데이터를 쓸 수 있다.)strcpy를 call하고 난 직후 stack의 최상단에 dest, s..
서버 취약점 점검 체크리스트
서버 취약점 점검 체크리스트
2017.01.27이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.