일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Los
- smb
- CTF
- 모의해킹
- 해킹툴
- 메타스플로잇
- 스캐닝
- 해킹도구
- 시스템 해킹
- 권한상승
- 암호해독
- web hacking
- 내부침투
- Kioptrix
- 취약점 스캔
- Hacking
- Metasploit
- 취약점
- 칼리리눅스
- load of sqlinjection
- Samba
- SQLINJECTION
- 스캔
- root권한
- 해킹
- 취약점분석
- SQL Injection
- 포트스캔
- sql
- 침투테스트
- Today
- Total
목록전체 글 (119)
감자 텃밭
이번에 풀어볼 문제는 yes or no라는 문제이다 가장 오래 걸렸으며 이게 왜 150점짜리인지 도통 모르겠다.. 해당 프로그램을 우선 실행시켜 보았다. show me your number~! 이라는 문자열이 출력되며 특정 값을 입력받도록 되어있다. 그 후 또 다른 문자열들이 출력되었다. 메모리 보호기법은 NX가 걸려있으며 ALSR 또한 걸려있었다. 해당 프로그램을 IDA를 통해 상세히 분석해보았다. 아래쪽 IF조건문을 통과하면 That's cool follw me문자열을 출력하며 gets로 입력을 받도록 되어있다 해당 부분에서 bof가 일어날 것으로 예상된다. 해당 조건문에 해당하는 값을 gdb로 확인하였다. 헤다 237번째 줄을 보면 cmp를 통해 rbp-0x8과 eax의 값을 비교한다 해당 부분에 ..
이번에 풀어볼 문제는 hackctf의 rop문제이다 제목에서부터 유추할 수 있는 rop에 관한 문제이며 rop기초에 관한 문제인 거 같다. 해당 문제를 실행 및 적용된 메모리 보호 기법을 확인하였다. 문자열을 입력받고 입력 후 특정 문자열이 출력된다. 메모리는 역시 nx가 걸려있다. 해당 문제를 IDA를 통해 상세히 분석하였다. main함수에서는 vulnerable_function함수를 호출하고 write함수를 통해 특정 문자열을 출력한다. vulnerable_function함수에서는 136만큼의 buf변수를 선언하고 read함수를 통해 0x100(256)만큼 입력을 받는다 이 부분에서 bof가 일어날 거 같다. 정말 기본 rop사용 문제인 듯하다. 익스 코드는 read를 통해 bss영역에 /bin/sh..
이번에 풀어볼 문제는 hackctf의 gift문제이다 해당 프로그램을 실행 후 적용된 메모리 보호 기법을 확인하였다. 특정 문자열과 주소값 2개를 출력 후 문자열을 입력할 수 있었고 입력하면 같은 문자열을 출력 후 한번 더 입력을 받고 끝났다. 해당 메모리보호기법은 nx만 걸려있었다. IDA를 통해 좀 더 상세한 분석을 해보았다. main 함수에서 binbs의 주소와 system함수의 주소를 출력해주고 fgets함수를 통해 입력값 검증과 함께 입력받을 수 있으며 입력값 그대로 출력되고 gets로 한번 더 입력받을 수 있다 이 부분에서 bof를 일으키고 printf에서도 포맷 스트링 버그가 일어나지만 해당 문제는 rtl을 통해 풀어볼 것이다. binsh를 확인해보면 해당 주소에는 아무것도 들어있지 않았다...
이번에 풀어볼 문제는 hackctf의 lookatme라는 문제이다 일단 제목으로는 추측이 안된다!! 해당 프로그램을 실행시켜 보았다. 해당 프로그램을 실행시키면 hellooooooooooo라는 문자열과 특정 값을 입력받을 수 있도록 되어있다. 흠 일단 적용되어있는 메모리보호기법을 확인해보았다. nx가 걸려있는것으로 보아 쉘 코드는 실행이 되지 않을 것 같다. 해당 프로그램을 IDA를통해 좀 더 상세히 분석해보았다. main함수에서는 해당 문제의 이름과같은 look_at_me 함수를 호출하고 해당 함수로 들어가 보면 puts로 문자열을 출력하고 gets로 문자열을 입력받는다 이 부분에서 bof가 일어난다 여기서 이상한 점을 발견했다 해당 프로그램에 함수가 굉장히 많이 있었다 여기서 이상한점을 느끼고 해당 ..
이번에는 protostar에 heap2 문제이다. 해당 문제는 uaf기초에 관한 문제인 거 같았다, 일단 해당 프로그램을 실행시켜보았다. 해당 프로그램을 실행시켰을 때 auth와 service에 각각 값을 입력할 수 있고 입력했다면 해당 변수가 저장되어있는 주소를 알려주는 거 같다. 해당 프로그램의 c코드가 주어져 확인해보았다. 해당 코드를 봤을때는 fgets를 통해 입력값 검증을 통해 입력을 받기에 bof는 일어나지 않는다 또한 auth에도 입력값 검증을 통해 입력을 받고 auth에 malloc를 통해 메모리를 할당받는다. 그 후 입력값을 auth->name변수에 복사한다 그 후 다음 if문을 보면 free를 통해 해당 malloc를 통해 할당받은 메모리를 reset를 입력하면 free로 정리하는 모습..
이번에 풀어 볼 문제는 hackctf의 beginner_heap문제이다 제목에서부터 유추 가능하듯 heap관련 문제인 거 같다 일단 해당 프로그램을 실행시켜보았다. 문자열을 두 번 입력받을 수 있도록 되어있고 따로 출력되는 문자열은 없다. 이번엔 적용된 메모리 보호 기법을 확인해보았다. 음 NX만 걸려있는걸로보아 쉘코드는 실행이 안될것이고 이상하게도 어떠한 오류인지 해당 프로그램을 gdb로 까봤을때 main함수부분이 나오지않아 IDA로 모두 해결했다 우선 해당 프로그램의 코드는 아래와 같다. V3변수에0X10 즉 16크기만큼의 메모리를 할당하고 V3에 1을 넣고 그 후 V3+1에 8크기만큼의 메모리할당 V4와 V4+1 에도 똑같이 메모리를 할당한다 총 4개의 동적메모리를 할당한다. 그 후 fgets를 통..
이번에는 프로토스타의 heap1번 문제이다 이번 문제는 heap0번 문제보다 수준이 높아 보였다. malloc와 포인터에 대해 좀 더 상세히 살펴봐야했다. 일단 해당 문제의 소스코드는 아래와 같다. internet라는 구조체를 만들며 int형 priority와 char형 포인터 변수 name을 선언했다 또한 winner함수가 존재하며 main함수에는 구조체 포인터 i1, i2, i3를 선언하고 i1, i2에 각각 internet의 크기만큼 메모리를 할당해주고 있다 또한 priority에 1을 할당하고 name에는 또 8만큼의 메모리를 할당해주고 있다. 그 후 strcpy를 통해 i1포인터 구조체의 name변수에 argv [1]을 할당하고 그다음 strcpy함수에 의해 i2포인터 구조체의 name변수에 a..
이번에는 프로토스타에 heap0문제를 풀어보았다 힙에 대한 기본적인 지식을 요구하기에 heap에 대해 잘 몰랐지만 생각보다 재밌었던 문제이다. 기본적인 heap overflow문제인것 같았다. 일단 해당 프로그램의 소스코드를 보면 data와 fp 구조체를 선언하고 d와 p에 각각 data와 fp의 포인터를 선언한다 그 후 malloc를 통해 동적으로 메모리를 할당시킨다. 그 외에 winner와 nowinner라는 문자열을 출력해주는 함수가 있고 f->fp를 통해 nowinner함수를 fp구조체에 할당해주는 거 같다. 그 후 strcpy함수를 통해 d->name 즉 구조체 포인터 d에 argcv [1]의 값을 복사한다. 이 부분에서 bof 가 일어나는 듯하다. 그 후 fp구조체의 fp함수 포인터의 함수를 ..