본문 바로가기

전체 글

(71)
hackerschool FTZ : level2 풀이 문제 : 텍스트 파일 편집 중 쉘 명령 실행 find / -user level3 2>/dev/null사용자가 level3인 파일을 / 디렉토리부터 검색 /usr/bin/editor 실행 -> vim :! my-passvi 편집 중 쉘에서 my-pass 실행 참고 1. find [검색시작위치] [옵션] [수행작업] find / -user level3 2>/dev/null = 사용자가 level3인 파일을 / 디렉토리부터 검색 2. :! vi 편집 중 쉘 명령 실행하는 기능
hackerschool FTZ : level1 풀이 ls -l 디렉토리 목록 출력 find / -user level2 2>/dev/null사용자가 level2인 파일 검색 /bin/Execute 실행 bash 실행 후 password 확인 참고 1. ls : 디렉토리 목록 출력 자주 사용하는 옵션 -a : 숨겨진 파일, 디렉토리 출력 -l : 자세한 내용 출력 (권한, 소유자, 그룹 등) 2. find [검색시작위치] [옵션] [수행작업] find / -user level2 2>/dev/null = 사용자가 level2인 파일을 / 디렉토리부터 검색 3. /bin/Execute : 절대경로로 파일 실행 pwd: 파일의 절대경로 출력 4. bash : bash 쉘 실행
웹 메일 및 채팅 앱 구현 웹 메일과 채팅 앱을 구현했다. 개발 계획: DB: DB_final.docxUI 설계: 기능: 웹 메일 시연 영상: 채팅 앱 시연 영상: 웹 메일 GitHub 주소 : https://github.com/pu1et/test_project채팅 앱 GitHub 주소: https://github.com/pu1et/android-chat-final
Wannacry 1차 정리본 좀 더 자세히 정리한 후 2차 업뎃 예정
pwntools 간단 정리 쓸 건 많지만 차차 정리하고 일단 생각나는 것부터 적어본다:) 1. 접속 nc p=remote(IP,PORT)p=remote(str,int) = ('localhost',1234) local p=process('PATH')p=process(str) = ('./test') ssh p=ssh(username, IP, PORT, password)p=ssh(str,str,str,str) =('사용자이름', 'IP', port=포트번호, password='비밀번호') =('user', 'localhost', port=1234, password='pw')p2 = p.run('/bin/sh') 2. 패킹 p32(패킹할 것) : 32bit little-endian으로 패킹해주는 함수big-endian 옵션 : p32(0..
echo back point 1. FSB(Format String Bug) 2. GOT overwrite * FSB 자세한 정리 : https://pu1et-panggg.tistory.com/22 어디부터 쓸 수 있는지 확인 총 크게 두 가지 방법이 있다. 1. got주소 알아내서 FSP로 got overwrite printf@got
rop chain 호출 순서 main -> vuln -> win_function1 -> win_function2(0xBAAAAAAD) -> flag(0xDEADBAAD) gets(buf) 후 스택 상태 gets에 넣을 코드 dummy('a'*28) + win_function1 주소 + win_function2 주소 + flag 주소 + win_function2 인자(0xBAAAAAAD) + flag 인자(0xDEADBAAD)
buffer overflow 3 이 문제는 brute-force로 canary 값을 알아낸 후 리턴주소를 win으로 exploit하면 된다. 코드를 보면첫번째 read할 때 exploit코드의 길이만큼 입력하고두번째 read할 때 exploit을 하는 것 여기서 첫번째 포인트는 canary위치가 어디인가또 canary를 어떻게 때려맞출 것인가 canary위치는 vuln함수의 memcpy를 보면 ebp-0x10에 있는 걸 알 수 있다. 그럼 buf의 위치만 알면 코드에서 때려맞출 canary의 위치를 알 수 있다.buf는 read(0,buf,count)를 보면 ebp-0x30에 있는 걸 알 수 있다. 0x20 즉, 32byte 만큼 떨어져 있다. 두번째로 brute-force로 때려맞춰야 하는데 어떻게? 여기서 놓쳤던 부분은canary는..