본문 바로가기

분류 전체보기264

[HackCTF] (Reversing) Static 풀이 문제를 다운받고 실행하면 Nope 이 나온다. ELF64 파일인데, 아이다로 열어보면 사용되는함수밖에 나오지 않는다. int __cdecl __libc_start_main( int (__cdecl *main)(int, char **, char **), int argc, char **ubp_av, void (*init)(void), void (*fini)(void), void (*rtld_fini)(void), void *stack_end) __libc_start_main 함수이다. 이 함수에서 main 함수를 호출하는데, 동적분석으로 인자로 받는 main함수의 위치를 알아보자 main 함수는 0x555555554a3a 에 있다고한다. [ main ] 지금부터 메인함수를 나눠서 설명해드릴께요 0x55555.. 2020. 3. 14.
[HackCTF] (Web) Home 풀이 ....... 블로그작성중 프록시를 안꺼서 새로고침이 되버려서 조금 모자란 부분이 있을 수 있습니다. 내 아이피를 필터링한다. 그렇다면 ip를 루프백아이피로 조작하면 풀릴것 같다. [ 루프백 아이피 ] 루프백 아이피 : 127.0.0.1 자신의컴퓨터를 의미하는 가상주소이다. [ Ping ] 자신의 컴퓨터에 패킷을 보내기때문에 정상적으로 동작한다. 로컬컴퓨터를 원격컴퓨터처럼 이용할수 있기때문에 네트워크테스트 용도로 사용된다. (참고) https://m.blog.naver.com/PostView.nhn?blogId=dktmrorl&logNo=220293911717&proxyReferer=https%3A%2F%2Fwww.google.com%2F [IT상식] Loopback IP(127.0.0.1) "루프백 아.. 2020. 3. 13.
[HackCTF] (Web) Input Check 풀이 문제접속화면이다. flag 명령어를 입력하라 한다. 입력했다. ;;; 아무거나쳐도 이렇게나오니 소스를 봐야겠다. Input Check Do you want a flag? Input Command "flag" here OK get 으로 text를 입력받고있고, Input Command Check 는 배열이라고한다. strcmp 로 비교하는걸 추측할 수 있다! $a=get['text'] if(strcmp("flag",$a)==0) 다음과 같은 예시코드를 작성해봤다. strcmp에서 문자열과 배열을 비교시 NULL을 반환한다. NULL == 0 으로 느슨한 비교를할떄 True 가 반환된다. 따라서 우리는 ?text[0]=flag 로 값을 넘겨줌으로써 FLAG 를 확인할 수 있다 2020. 3. 13.
[HackCTF] (Pwnable) 내 버퍼가 흘러넘친다! 풀이 main 함수다! Name 과 Input 을 입력받는데, Name -> read함수로 0x32 만큼, Input -> gets함수로 입력을 받는다. 그렇다면 gets 함수에서 입력을 받을때 BOF(Buffer Over Flow) 가 발생할 수 있다. gets 로 입력을 받을때, return주소까지 값을 채워넣어 return 주소에 shell code 를 작성해 넣자. checksec 로 확인해보면 아무런 메모리보호기법이 적용되어있지 않다. 그렇다면 이제 payload 를 작성해보자. 쉘코드 주소 정하기 return 주소 구하기 쉘코드 짜기 exploit 코드 짜기 (python) [ 1 ] 쉘코드의 주소는 전역변수인 name 으로 정했다! [ 2 ] [ ebp ] [ ret address ] main 함.. 2020. 3. 11.