일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- root권한
- 시스템 해킹
- 해킹툴
- sql
- 메타스플로잇
- 해킹
- 침투테스트
- 취약점
- Hacking
- Metasploit
- 포트스캔
- web hacking
- 스캔
- SQL Injection
- 내부침투
- 취약점 스캔
- load of sqlinjection
- SQLINJECTION
- 칼리리눅스
- smb
- 스캐닝
- 권한상승
- CTF
- 해킹도구
- Los
- 모의해킹
- 취약점분석
- 암호해독
- Kioptrix
- Samba
- Today
- Total
목록my_study/HackCTF (22)
감자 텃밭
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/p7SIO/btrbCup05di/oV6wspDzauGFDkbBcGSgj1/img.png)
이번에 풀어볼 문제는 Hackctf의 1996 문제이다 이번 문제는 생각보다? 단순했다 일단 해당 프로그램을 실행시켜 보았다. 특정 문자열이 출력되고 입력을 받을 수 있도록 되어있다.. 흠 일단 어떠한 메모리 보호 기법이 적용되어있는지도 확인해 보았다. 이번 프로그램에도 NX가 걸려있었다 그럼 쉘코드는 실행이 되지 않는 것이다. IDA를 통해 좀 더 상세히 분석을 해보았다. 이번 프로그램도 C++로 작성되어있었다 C++에 무지한 나에게는 정말 당황스러운 코드였다 하지만 침착히 살펴보았다 name변수에 1040만큼의 공간이 할당되었고 name에 특정 값을 입력하는 거 같았다 (추측) 그럼 일단 bof가 일어난다는 것이고 쉘 코드는 실행이 되지 않는다면 해당 프로그램에 힌트가 될만한 함수가 있는지 확인해보았..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/BfZrH/btrbABXaA6Z/LDOs9mTaQ7IJBfKJE1axW1/img.png)
이번에 풀어볼 문제는 Hackctf에 Poet 문제 일단 해당 문제를 실행시켜 보았다. 해당 프로그램을 실행시키니 시인과 저자를 찾는? 프로그램인 거 같다 계속해서 입력을 받도록 되어 있는 거 같다. 해당 프로그램에 적용되어 있는 메모리 보호기법을 확인해보았다. NX가 걸려있어 쉘코드는 실행이 되지 않을 것이다. 일단 IDA를 통해 상세한 분석을 해보았다. IDA를 통해 확인하였을 때는 while문을 통해 계속 돌다 dword_6024E0의 값이 1000000과 동일하면 break를 통해 반복문이 종료되며 reward함수를 호출한다. dword_6024E0은 bss영역에 존재하고 있다 reward함수를 확인해보면 flag를 던져주는 거 같다. 또한 이 외에 3개의 함수가 더 존재하는데 하나하나 확인해보았..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bY9GTO/btrac8bCmLY/qHQBsq7k3EguD0AuIKkdR0/img.png)
이번에 풀 문제는 g++ pwn이라는 문제로 c++로 작성되어있는 프로그램이다 일단 먼저 해당 프로그램을 실행시켜 보았다. 특정 문자열을 입력받을 수 있고 입력한 문자열을 출력해주는 거 같다. 그 후 해당 프로그램에 적용되어있는 메모리 보호기법을 확인해보았다. NX가 걸려있는걸로 보아 쉘 코드는 실행이 불가능할 것이다. IDA를 통해 상세히 분석해보자 main함수에서는 별다른건 없고 vuln함수를 호출한다 vuln함수를 살펴보자 음...보자말자 멘붕이 왔다.. 일단 차근차근 살펴보면 fgets를 통해 s변수에 32바이트만큼 입력받으며, input변수에 입력받은 s의 값을 대입한다. 그 후 v5 변수에 you 문자열을, v7 변수에 I문자열을 넣고 replace 함수를 이용하여 I문자를 you문자열로 변경..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/yggms/btracluTJh8/tmxh7rk3dAczeVD13csTTk/img.png)
이번에 풀어볼 문제는 bof_pie문제이다 pie메모리 보호 기법은 처음이라 조금 모호한 부분이 있었다 일단 해당 프로그램을 실행시켜보았다. 실행시켰더니 j0n9hyun을 아냐 물어보고 어떠한 주소 값을 출력시켜주는 거 같다 또한 문자를 입력하면 Nah...라는 문자열을 출력해준다. 적용되어있는 메모리 보호 기법을 확인해보았다. NX와 PIE가 적용되어있다 그렇다면 쉘 코드를 실행시킬 수 없고 코드 영역을 포함한 모든 주소가 랜덤으로 매핑될 것이다. 좀 더 명확한 분석을 위해 IDA를 통해 확인해보았다. main함수에서는 특별한 게 없다 welcome함수를 불러오고 puts를 이용하여 문자열을 출력한다 그럼 welcome 함수를 확인해보자 j0n9 hyun을 아냐고 묻고 j0n9 hyun의 주소가 아닌 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/CkRfb/btq99cwo9It/onh536Kb7lxzRcqqdkM2bk/img.png)
이번에 풀어볼 문제는 basic_fsb라는 문제이다 제목에서부터 유추 가능하듯 FSB(포맷 스트링 버그)를 이용한 문제이다. 해당 문제를 실행시켜보자 특정 문자를 입력받고 그대로 출력해준다 해당 문제에 적용되어있는 메모리 보호기법을 확인해보자 아무것도 적용되어있지 않다 일단 해당문제를 분석하기 위해 GDB를 통해 유추해보자 main함수에서는 특별한게 없어 보인다 call부분에서 호출되는 vuln함수를 살펴보면 fgets로 입력을받고 snprintf함수와 printf를 사용한다 해당 프로그램을 명확히 분석하기 위해 IDA를 사용 vuln함수를 살펴보면 fgtes함수를 통해 s변수에 1024바이트만큼 이력받고 snprintf함수를 통해 400u(1024바이트)만큼 입력받기 때문에 bof는 통하지 않는다 또한..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cCm4Vj/btq92w4vcAX/LDeVoQww2cAnTfDjD68c9k/img.png)
rtl_core 이번에 풀어본 문제는 hackCTF의 rtl_core다 이번 문제도 제목에서 유추 가능한 rtl을 이용한 문제이다 해당 프로그램을 일단 실행시켜보자 passcode라는것을 입력받게 되어 있다. 음.. 해당 문제는 아마 ASLR과 NX가 기본적으로 적용되어있을 거 같은데 일단 확인해보았다. 역시나 그렇듯 NX가 설정되어있다 ASLR도 설저되어 있을 것이다. 일단 해당 문제를 명확히 분석하기 위해 IDA를 통해 확인해보았다. 메인 함수를 살펴보면 check_passcode함수의 인자로 s를 전달하고 반환되는 값이 hashcode값과 같으면 특정 문자열을 출력하고 core함수를 실행시켜주고 그렇지 않을 경우 또 다른 문자열을 출력해준다 (확인해보니 성공과 실패 같은 문자열) 우선 hashcod..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/o5teH/btq54m4heYH/JJT5ZYROOfeJIjHvJfK4e0/img.png)
HcakCTF rtl_world문제 이번 문제도 IDA를 안 쓰고 풀고 싶었지만 이번 문제는 IDA를 써서 풀게 됐다. 일단 해당 프로그램에 메모리 보호 기법이 어떻게 적용되어있는지 확인했다. NX가 걸려있는 걸 확인했다. 그렇다는 건 쉘 코드를 삽입해서 풀 수 없을 거 같다 그럼 시스템 함수를 실행시켜야 한다. 제목에 나와있듯이 RTL이라는 기법을 사용하여야 한다. 일단 프로그램이 어떻게 동작하는지 확인해보자. 해당 프로그램을 보면 2번을 통해 돈을 벌고 3,4번에서 시스템 함수와 빈 쉘의 문자열을 찾을 수 있고 5번을 통해 우리가 원하는 입력값을 받을 수 있다. 2번에서 4번은 히든 번호?로 수많은 돈을 획득할 수 있다 이것은 IDA를 통해 찾았다. 또한 프로그램에서 2,3번에 해당하는 시스템 함수의..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dEfpCV/btq5KQZ2Uvl/VS1P3SxbXcIlG4R5knHdck/img.png)
HackCTF Offset 이번에 풀어볼 문제는 offset문제이다. 해당문제는 대부분 IDA라는 프로그램으로 쉽게 풀 수 있지만 한번 안쓰고 풀어보기로 하였다. 일단 해당 프로그램이 어떤 메모리보호기법이 적용되어있는지부터 확인하였다. 음.. 일단 NX가 활성화 되어있다 NX는 스택또는 힙등에서 쉘코드를 사용할 수 없도록 하는 보호 기법이다. 그렇다면 쉘코드를 직접적으로 삽입할 수 없는 거 같다. 일단 프로그램을 동작시켜보자 프로그램을 동작시킬 함수를 물어보고? 입력을받도록 되어있다. 일단 gdb로 까보자.. 음... select_func함수가 있고 32의 공간을 확보하고 함수 인자값으로 하나를 입력받는 거 같다. 해당 select_func를 확인해보자. strncpy함수를 이용해서 31바이트 만큼 eb..