일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kioptrix
- SQL Injection
- 암호해독
- 스캔
- smb
- 내부침투
- root권한
- 해킹
- SQLINJECTION
- sql
- load of sqlinjection
- 해킹툴
- CTF
- 시스템 해킹
- Metasploit
- 메타스플로잇
- 침투테스트
- 칼리리눅스
- 스캐닝
- 포트스캔
- 모의해킹
- 해킹도구
- 취약점분석
- 취약점 스캔
- Los
- web hacking
- 취약점
- Samba
- 권한상승
- Hacking
- Today
- Total
목록my_study (42)
감자 텃밭

이번에 풀어볼 문제는 basic_fsb라는 문제이다 제목에서부터 유추 가능하듯 FSB(포맷 스트링 버그)를 이용한 문제이다. 해당 문제를 실행시켜보자 특정 문자를 입력받고 그대로 출력해준다 해당 문제에 적용되어있는 메모리 보호기법을 확인해보자 아무것도 적용되어있지 않다 일단 해당문제를 분석하기 위해 GDB를 통해 유추해보자 main함수에서는 특별한게 없어 보인다 call부분에서 호출되는 vuln함수를 살펴보면 fgets로 입력을받고 snprintf함수와 printf를 사용한다 해당 프로그램을 명확히 분석하기 위해 IDA를 사용 vuln함수를 살펴보면 fgtes함수를 통해 s변수에 1024바이트만큼 이력받고 snprintf함수를 통해 400u(1024바이트)만큼 입력받기 때문에 bof는 통하지 않는다 또한..

rtl_core 이번에 풀어본 문제는 hackCTF의 rtl_core다 이번 문제도 제목에서 유추 가능한 rtl을 이용한 문제이다 해당 프로그램을 일단 실행시켜보자 passcode라는것을 입력받게 되어 있다. 음.. 해당 문제는 아마 ASLR과 NX가 기본적으로 적용되어있을 거 같은데 일단 확인해보았다. 역시나 그렇듯 NX가 설정되어있다 ASLR도 설저되어 있을 것이다. 일단 해당 문제를 명확히 분석하기 위해 IDA를 통해 확인해보았다. 메인 함수를 살펴보면 check_passcode함수의 인자로 s를 전달하고 반환되는 값이 hashcode값과 같으면 특정 문자열을 출력하고 core함수를 실행시켜주고 그렇지 않을 경우 또 다른 문자열을 출력해준다 (확인해보니 성공과 실패 같은 문자열) 우선 hashcod..

HcakCTF rtl_world문제 이번 문제도 IDA를 안 쓰고 풀고 싶었지만 이번 문제는 IDA를 써서 풀게 됐다. 일단 해당 프로그램에 메모리 보호 기법이 어떻게 적용되어있는지 확인했다. NX가 걸려있는 걸 확인했다. 그렇다는 건 쉘 코드를 삽입해서 풀 수 없을 거 같다 그럼 시스템 함수를 실행시켜야 한다. 제목에 나와있듯이 RTL이라는 기법을 사용하여야 한다. 일단 프로그램이 어떻게 동작하는지 확인해보자. 해당 프로그램을 보면 2번을 통해 돈을 벌고 3,4번에서 시스템 함수와 빈 쉘의 문자열을 찾을 수 있고 5번을 통해 우리가 원하는 입력값을 받을 수 있다. 2번에서 4번은 히든 번호?로 수많은 돈을 획득할 수 있다 이것은 IDA를 통해 찾았다. 또한 프로그램에서 2,3번에 해당하는 시스템 함수의..

HackCTF Offset 이번에 풀어볼 문제는 offset문제이다. 해당문제는 대부분 IDA라는 프로그램으로 쉽게 풀 수 있지만 한번 안쓰고 풀어보기로 하였다. 일단 해당 프로그램이 어떤 메모리보호기법이 적용되어있는지부터 확인하였다. 음.. 일단 NX가 활성화 되어있다 NX는 스택또는 힙등에서 쉘코드를 사용할 수 없도록 하는 보호 기법이다. 그렇다면 쉘코드를 직접적으로 삽입할 수 없는 거 같다. 일단 프로그램을 동작시켜보자 프로그램을 동작시킬 함수를 물어보고? 입력을받도록 되어있다. 일단 gdb로 까보자.. 음... select_func함수가 있고 32의 공간을 확보하고 함수 인자값으로 하나를 입력받는 거 같다. 해당 select_func를 확인해보자. strncpy함수를 이용해서 31바이트 만큼 eb..

해당문제의 프로그램을 실행시켜보자 데이터를 입력받고 입력받은 데이터와 해당 데이터가 들어가있는 buf의 주소를 출력 해주며, 다시 입력할것인지 묻고 다시 입력을 받을 수 있다. 하지만 프로그램을 다시 시작하면 주소가 바뀌는걸로 봐서 이번문제도 ASLR기법이 적용되어 있는 거 같다. 다른것들도 적용되어있는지 확인해보자. 이번 문제도 ASLR을 제외한 메모리 보호기법은 적용되어있지 않는 거 같다. 이번 문제도 이전 문제와 비슷한 방식으로 풀면 될 거 같다. 일단 버퍼의 주소는 나와있으니 크기를 구해보자. 61번줄에서 data :를 입력받고 ebp-0x88위치의 주소를 eax에 넣고 인자값으로받아서 입력하는 거 같다 그렇다면 크기는 0x88(136)이 된다. 그렇다면 payload를 한번 작성해 보자. 해당 ..

HackCTF의 Simple_szie_bof문제 우선 해당 프로그램을 실행시켜보았다. 시빅 - 자살방지 문제입니다.라는 문구가 출력되고 buf의 주소가 출력되는 듯하다 하지만 프로그램을 실행시킬 때마다. 버퍼의 주소가 계속 바뀌는 걸 볼 수 있다. ASLR기법이 적용되어있는 거 같다. 확인해보자! 음.. 일단 ASLR을 제외한 다른 보호 기법들은 적용되어 있지 않는 거 같다..! 예상했듯 문자열 출력 후 buf의 주소를 출력해주는 함수이다. 91번 줄을 보면 gets함수가 있다 그렇다면 gets를 이용하여 버퍼오버플로우를 일으켜 해결할 수 있을 거 같다. 일단 버퍼오버플로우를 일으키기 위해 필요한 버퍼의 크기는 0x6d30으로 27952 크기이다 그럼 여기에 sfp(8)를 더해 dummy값과 쉘 코드를 ..

HackeCTF 64bof_basic 문제 해당 프로그램을 실행시켰을때는 특정값을 입력받고 입력을 받으면 Hello [입력받은 값]이 출력 된다. 메모리 보호기법이 어떤것들이 작동하고있는지 먼저 확인해보았다 RELRO와 NX가 걸려있다 RELRO는 자세히모르고.. NX가 걸려있는걸로 봐서는 쉘코드를 실행시킬 수 없는 거 같다. 해당문제를 gdb로 확인해보았다. 흠.. 특별한거는 딱히 없는 거 같다 스택의공간을 0x120(288)만큼 확보 후 입력을 받고 출력을하는?거 같다 그리하여 숨겨진 함수가 있는지 확인해보았다. callMeMaybe라는 수상한 함수를 찾았다. 해당 함수를 확인해보았을떄 /bin/bash를 인자값으로 받아오는 걸 보니 대충 쉘을 실행시켜주는 프로그램인 거 같다 그렇다면 돌아가서 메인함..

해당 계정 또한 ls -l로 파일 및 디렉터리를 확인 후. c파일을 열어 소스코드를 확인함. 해당 소스코드를 보면 나머지는 이전과 전부 동일하지만 인자 값이 하나만 입력받도록 되어있다. 또한 argv [0] 값도 버퍼가 초기화되듯 초기화된다. 흠... 그럼 여기서 쓸 수 있는 방법은 argv [0]을 사용하는 것이다. 이번 문제도 ln -s 심볼릭 링크를 사용하면 풀 수 있을 거 같다. 이번에도 rename은 권한 문제로 되지 않는다. 이번엔 argv [0]의 주소를 알아내야 한다. 작업을 위해 tmp 디렉터리 생성 후 tmp디렉터리에서 작업을 해보자 이번에도 마찬가지로 core dump를 사용할 것이다. 앗 여기서 실수를 했다.. 여기서 argv [1]의 값이 사라지므로 argc [0] 즉 파일 이름을..