본문 바로가기

random 보호되어 있는 글입니다. 더보기
passcode 보호되어 있는 글입니다. 더보기
flag 보호되어 있는 글입니다. 더보기
bof 보호되어 있는 글입니다. 더보기
collision 보호되어 있는 글입니다. 더보기
fd 보호되어 있는 글입니다. 더보기
javascript for pentester 정리 Javascript*Invented at Netscape*Provides interactivity with the user*Client side scripting language- runs within browser sandbox*Server side JS- Node.js Typical Implementation* Encapsulated within Important*JS is case sensitive*bowser exeutes JS sequentially as it encounters it Firebug -firefox Variables*Dynamically Typed Language- no need to declare data types*var a- var a = 10- var a = "Hello .. 더보기
exploiting simple buffer overflows on win32 보호되어 있는 글입니다. 더보기
AJAX Security - Dangerouse Use of Eval 보호되어 있는 글입니다. 더보기
AJAX Security - Insecure Client Storage 보호되어 있는 글입니다. 더보기
AJXA Security - JSON Injection 보호되어 있는 글입니다. 더보기
AJAX Security - XML Injection 보호되어 있는 글입니다. 더보기
AJAX Security - DOM Injection 보호되어 있는 글입니다. 더보기
AJAX Security - LAB: DOM-Based cross-site-scripting 보호되어 있는 글입니다. 더보기
AJAX Security - LAB: Client Side Filtering 보호되어 있는 글입니다. 더보기
Access Control Flaws - Stage4 : Add Data Layer Access Control 보호되어 있는 글입니다. 더보기
정리 보호되어 있는 글입니다. 더보기
Access Control Flaws - Stage3: Bypass Data Layer Access Control 보호되어 있는 글입니다. 더보기
Access Control Flaws - Stage2: Add Business Layer Access Control 보호되어 있는 글입니다. 더보기
Access Control Flaws - Stage1: Bypass Business Layer Access Control 보호되어 있는 글입니다. 더보기
Access Control Flaws - Bypass a Path Based Access Control Scheme 보호되어 있는 글입니다. 더보기
Access Control Flaws - Using an Access Control Matrix 보호되어 있는 글입니다. 더보기
API 모니터링 API 모니터링 프로그램이 어떤 API를 실행하게 될 때 그 부분을 찾아서 분석하는 것에 대해서 알아보도록 하겠습니다. 먼저 다음 소스코드를 작성합니다. 소스코드를 분석해보도록 하겠습니다. dbg.enumerate_processes()는 해당 컴퓨터의 실행 중인 프로세스와 PID 값을 가져 옵니다.이것을 for문을 이용해서 pid와 프로세스 이름을 가져오게 되는 것이죠. if 문으로 server-strcpy라는 프로세스 이름이 있다면 해당 pid에 붙게 됩니다. dbg.func_resolve('ws_32', 'send')는 winsock2 32bit를 사용하는 send 함수를 찾아내는 것입니다. bp_set은 send()가 존재하는 곳의 주소에 breakpoint를 걸어준다고 생각하면 됩니다. 이 값을 .. 더보기
PyDBG PyDBG PyDBG에 대해서 알아보도록 하겠습니다. 먼저 PaiMei-1.1.win32.exe를 설치 합니다. 설치 후 pydasm.pyd를 C:\python27\Lib\site=packages\pydbg\에 넣습니다.마찬가지로 첨부된 __init__.py를 C:\python27\Lib\ctypes\에 넣습니다. cmd 창에서 C:\python27\Lib\site-packages로 이동합니다. 그 후 python easy_install.py build -c mingw32 를 입력합니다.python을 실행하여 import pydbg를 했을 때 오류가 없으면 설치가 완료됩니다. 가상 XP에서 다음 소스코드를 작성합니다. echo-server-strcpy 프로그램을 실행 한 후 cmd에서 위 소스코드를 실행.. 더보기
Pydasm을 이용한 디스어셈블링 Pydasm을 이용한 디스어셈블링 Pydasm을 사용하려면 먼저 설치를 해야하는데, 아래 첨부된 파일을 다운받아주세요 ^^ 해당 파일을 압축해제 후 cmd 창을 이용하여 해당 폴더로 이동하고 setup.py install을 입력합니다. 그 후 python을 실행하고 import pydasm을 입력했을 때 오류가 나지 않으면 설치가 완료됩니다. 위 사진이 python IDLE 입니다. IDLE를 실행시킵니다. 위 소스코드를 보도록 하죠. import pydasm을 했을 때 오류가 발생하지 않으면 pydsam이 정상적으로 설치된 것입니다.2줄에서 MODE_32는 32비트에 맞춰 어셈코드를 출력하는 것입니다.또한 FORMAT_INTLE은 intel 형식, ATT는 AT&T 방식으로 나타내 줍니다. 더보기
PE 분석 PE 분석 python으로 PE 파일을 분석해보도록 하겠습니다. 먼저 기본적으로 설치된 python에는 pefile 모듈이 존재 하지 않습니다.ImmunityDBG의 모든 모듈은 C:\Program Files (x86)\Immunity Inc\Immunity Debugger\Libs 해당 경로에 저장되어있습니다. pefile 모듈을 사용하기 위해서 위 경로에서 pefile.py와 pelib.py를 C:\python27\Libs에 넣어두도록 합니다.우분투에서 사용할 때는 /usr/lib/python2.7에 추가하도록 합니다. 위 소스코드를 보도록 하죠. pefile은 PE 파일을 분석하기 위한 모듈이며 pprint는 pretty-print 모듈로 말 그대로 예쁘게, 보기좋게 출력을 해주는 모듈입니다.한번 .. 더보기
Pyhook Pyhook 이번에는 PyHook에 대해서 알아보도록 하겠습니다.먼저 후킹에 대해서 알아야 하는데, Hook은 갈고리를 뜻합니다. 갈고리의 역할은 무언가 낚아채는데 이용하죠. 컴퓨터 공학에서는 Hooking이라는 말을 사용하는데 컴퓨터가 어떤 일을 처리하는 과정 중에 낚아채는 것을 의미합니다.ImmunityDBG에서는 여러가지 Hook이 존재합니다. BPHook, LogHook, PreBpHook, LoadDLLHook 등등이 존재합니다. 위 소스코드를 보죠. 먼저 AllExceptHook은 프로그램이 예외가 발생하게 되면 잡아줍니다.regs는 CPU 레지스터 정보를 갖고 잇습니다. 10줄에 보면 log에 해당 레지스터를 남기고 있습니다. echo-server-strcpy를 ImmunityDBG로 실행합.. 더보기
Assemble, Disassemble, Search Assebmble, Disassemble, Search 어셈, 디스어셈, 서치에 대해서 알아보도록 하겠습니다.ImmunityDBG에서 어셈블리어를 Hex 값으로 Hex값을 어셈블리어로 변환하고, 해당 Hex 값이 어디에 위치해 있는지 찾아보도록 하죠. 간단히 리버스 엔지니어링을 하면 처음 접하는 abexcm1.exe를 ImmunityDBG로 실행 후 python shell을 실행 시킵니다. (python 인터프리터) 위 소스코드를 보죠.JMP ESP와 JMP ESP \n RET 어셈 코드를 Hex 값으로 나타내었더니 위와 같은 값이 출력됩니다. 위 소스코드를 보면 해당 주소의 어셈블리어를 출력해주는 것을 알 수 있습니다. 그렇다면 반대로 어떤 어셈블리어가 어느 주소에 있는지도 알 수 있지 않을까요? se.. 더보기
Immunity DBG 기초 Immunity DBG 기초 ImmunityDBG에 대해서 알아보도록 하죠. ImmunityDBG는 OllyDBG와 매우 흡사하게 만들어 졌습니다. 하지만 ImmunityDBG는 Python 스크립트가 작동합니다.!!!!OllyDBG 개발자가 ImmunityDBG를 만들었다고 하네요 ^^ python과 ImmunityDBG가 서로 작동이 되는지 확인해 보도록 하겠습니다. 먼저 C:\Program Files\Immunity Inc\Immunity Debugger\PyCommands로 이동합니다.해당 폴더에 demo.py를 만들고 아래 소스코드를 작성하도록 합니다. 위 소스코드를 보면, immlib를 추가했는데 이 부분은 ImmunityDBG에서 사용할 수 있도록 해준다고 생각하면 됩니다.그리고 main().. 더보기
Exploit 기초 Exploit 기초 이번에는 간단한 Exploit을 해보고, 어떻게 하는 것인지 알아보도록 하겠습니다. 먼저 익스플로잇을 하기 전에 환경을 구성해야 합니다. Virtual Machine을 이용해서 가상 OS를 설치해야하는데 Windows XP 32bit를 설치하시길 바랍니다. 그리고 해당 파일을 가상 XP에 받아두시길 바랍니다. Echo_Server_strcpy는 현재 프로그램 소스코드가 어떻게 짜여져 있는지 모르는 상태입니다. 임의의 값을 넣어서 확인 해보는 작업을 하도록 해보죠. Virtual Machine에 설치된 Ubuntu로 돌아가서 다음 소스코드를 작성합니다. 위 소스코드는 앞서 포스팅한 소켓 프로그램에서 사용했던 소스코드 입니다.buf에 A를 20자를 넣고 해당 값을 서버로 보내주는 프로그램.. 더보기