분류 전체보기 (550) 썸네일형 리스트형 [2021.09.25] 해커스쿨 F.T.Z Level11~15 풀이 Level11 $프로그램이름 인자값 명령을 주면 실행 동안 잠깐 uid가 3092로 바뀌고 인자값을 str 배열에 복사해 그 문자열을 출력해 준다. 이때 strcpy 함수가 복사하는 값의 길이를 검증하지 않음을 이용해 버퍼 오버플로우 공격을 일으킬 수 있다. 이를 위해 우리가 알아야 할 것은, str 버퍼와 ret 시작 주소값의 거리차 ret 시작 주소에 넣어줄 쉘코드 1. $cp attackme ./tmp 명령으로 파일을 다른 디렉토리로 복사해주고 gdb로 attackme 파일을 열어 main을 덤프하면 아래와 같다. 눈여겨 봐야 할 곳은 strcpy 함수를 호출하기 전, str 버퍼를 할당시키는 부분이다. 소스코드에서 설정한 str의 버퍼는 256byte인데 ebp-264의 주소부터 입력받는다는 것을.. [2021.09.25] 실전 버그 바운티 - 7장, 8장 보호되어 있는 글입니다. [2021.09.25] CodeEngn Basic RCE L05, L06 풀이 코드엔진 5번 문제 이 프로그램의 등록키는 무엇인가 한줄씩 실행해보기 한줄씩 실행시켜보면 004412BC 주소에서 메시지 박스가 호출되는 것을 알 수 있다. 위에 칸에 123을 입력하고 아래 칸에 456을 입력해보았더니 잘못되었다는 메시지가 출력되었다. 그 다음줄 실행 다음줄을 실행하였더니 서브루틴함수로 들어가졌다. 코드가 끝인 것 같다. 그래서 오른쪽 마우스 클릭 -> Search for -> All referenced text strings 를 통해 이동해보겠다. All referenced text strings 실행시킨 상태 All referenced text strings 중에서 아까 오류메시지가 뜬 부분을 찾아 이동할 것이다. 더블클릭하면 그 부분 위치를 볼 수 있다. wrong Serial, .. [2021.09.25] 악성코드 분석 및 악성코드 활용 보호되어 있는 글입니다. [2021.09.25]로컬 암호화 이슈 보호되어 있는 글입니다. [2021.09.18] 실전 버그 바운티 - 4장, 5장, 6장 보호되어 있는 글입니다. [2021.09.18] OS Command Injection과 XXE Injection 보호되어 있는 글입니다. [2021.09.18] 해커스쿨 F.T.Z Level9, 10 풀이 및 Level11 풀이 방향 Level9 level9로 로그인 후 cat hint를 입력해 힌트 파일을 확인한다. bof 파일의 코드에 대해 분석해 보면 다음과 같다. 크기가 10인 char형 배열 buf2와 buf를 정의한다. fgets 함수를 통해 크기 40만큼의 값을 입력받고, buf에 삽입한다. 이때, buf2의 앞 두 자리가 go라면 level10의 권한(uid: 3010)으로 bash를 실행한다. buf2에 값을 직접 입력할 수 없는 점, buf2의 값에 따라 level10 권한으로 bash를 실행할 수 있는 점(, 그리고 파일 이름이 bof인 점) 등으로 미루어 보았을 때, 이 문제는 버퍼 오버플로우를 이용해야 한다는 것을 알 수 있다. *버퍼 오버플로우란? : 버퍼 오버플로(영어: buffer overflow) 또는 .. 이전 1 ··· 43 44 45 46 47 48 49 ··· 69 다음