목록분류 전체보기 (365)
gets에서 취약 함수 발생 이번에는 ASLR이 걸려있음 환경변수를 이용하도록 하겠음 코드가 짤려서 나오는데 저거 그냥 쉘 코드임 export [함수 이름]=[함수내용]으로 환경변수 설정이 가능함 환경변수 주소를 얻기 위해 간단한 c코드를 작성하고 주소를 얻음 268개 더미를 주고 ret값에 환경변수 주소를 주어서 공격에 성공함 password : have no clue
strcpy 함수는 메모리를 초과하여 복사하기에 취약 함수이다. BOF가 발생한다 그 아래에 printf함수에서 FSB도 발생이 가능하다. 파일을 찾아주자 찾은 후에 gdb를 돌려보았다. str변수의 위치는 [ebp-264]이다 ret주소는 268byte 뒤에 있다. payload = Nopsled(243) + 쉘 주소(25) + 인자 값 주소(4) 쉘코드는 25byte를 가져왔다. ret주소에 인자 값 주소를 준다 그러면 Nopsled를 타고 쉘이 실행될 것이다. 인자 값 주소는 FSB를 이용하여 쉽게 찾았다. password : it is like this
공유 메모리에 대한 개념이 필요하다. 원래 보통 프로세스에서 메모리는 해당 프로세스만 사용함 이게 무슨 말이냐면 메모리에 여러 변수들 사용할 수 있는 건 다른 프로세스가 아닌 자기 프로세스만 접근 할 수 있음 근데 아주 예외로 다른 프로세스가 접근할 수 있게 만드는 것이 공유 메모리라고 함 이게 IPC기법임 hint에서 key_t값을 주었는데 저게 공유 메모리를 할당할 수 있는 고유 key값임 일단 IPC코드를 짜려면 함수에 대해서 알아야 함 IPC사용하려면 #include #include 그리고 연결하기 위한 최소한의 두 개 함수를 알아야 함 int shmget(key_t key, size_t size, int shmflg); 1) shmget : 인자로 전달된 key의 값으로 공유 메모리를 얻고 공유..
드디어 BOF 문제가 나옴 fgets에서 40byte를 읽어 취약점이 발생함 먼저 level10권한 파일 찾음 bof파일 실행시키고 go단어로 다 때려박았더니 됐음 이대로 끝내긴 아쉬우니 디버깅 돌려보겠음 gdb 켜서 intel버전으로 문법 바꿔버렸음 buf가 [ebp-40] buf2가 [ebp-24] 40 - 24 = 16 16 dummy 주고 go 문자열 주면 됨 password : interesting to hack!
찾아보도록 하자 용량 기준으로 파일 검색이 가능하다 -size 인자 주고 크기를 같이 주면 된다. c는 byte를 의미한다. found.txt를 찾았다. 읽기만 가능하다. 계정 정보가 보인다. 암호도 보여주고 있다 암호를 복호화하기로 한다. 복호화 프로그램은 john the ripper 를 사용했다. window에서 진행했다 apple이라는 단어가 보인다. password : apple
/bin/level7 을 실행해 본다. password 치라고 한다. password가 될만한 단서를 찾도록 한다. 이게 개인 ftz서버에서는 안 뜬다고 하니 주의하도록 하자 나도 인터넷에서 가져온 거다. 그냥 올라간 게 1 내려간 것을 0으로 생각하면 109 . 97 . 116 . 101 이다 ascii코드를 text로 바꿔준다 mate라는 단어가 나온다. password : break the world
들어가자마자 hint가 뜬다. 무언가 입력하면 텔넷 접속 서비스 뜬다 무언가 입력할 수 있다는 점을 보고 그냥 hint가 떴을 때 강제 종료 Ctrl+c 를 살포시 눌러 주었더니 프로그램이 종료된다. 그 후 flag를 확인 했다. password : come together