728x90
반응형

해킹 81

OverTheWire [Natas Level 25]

Natas Level 25 입니다. 어떤 발표문, 선언문? 같은 내용이 있고, 언어를 선택하여 볼 수 있습니다. 독일어, 영어가 가능하네요. 여기서 URL창을 보면 파라미터명이 "lang" 이라는 걸 알 수 있습니다. 소스코드 입니다. 가장 위 setLanguage 함수에서, lang 파라미터를 통해 언어를 선택받고 있습니다. language 디렉터리 밑에서, lang파라미터를 통해 전달받은 파일을 출력하는 것 같은데요. 여기서 safeinclude 함수를 통해 구체적인 필터링을 실시하고 있습니다. strstr 함수를 통해서, "../" 문자열이 있다면 str_replace 함수를 통해 지워버립니다. "natas_webpass" 문자열이 있다면 아예 파일을 불러오지 않습니다. 이렇게 두가지 필터링을 거친..

Hacking/[Web]Natas 2023.05.22

AhnLab 이력서 제출

정보보안을 전공했다면, 또한 화이트 해커의 꿈이 있다면 누구나 가고싶을 회사인 안랩. 나 또한 중학교 3학년 시절 해커의 꿈을 정했을 때부터 시작해 지금까지도 가장 가고싶은 회사다. 사실 이렇게 빨리, 그리고 갑자기 이력서를 제출할 것이라곤 전혀 예상하지 못했다. 더 많은 공부를 하고, 블로그에 더 많은 워게임 풀이를 올리고, 토익까지 700점 이상을 달성한 후에 천천히 구직을 할 생각이었지만, 매일 습관적으로 들어가던 안랩 홈페이지에 공개채용 공고가 뜬 것을 보고, 허겁지겁 포트폴리오를 만들고 블로그 글도 채우고 자소서도 어찌어찌 작성해서 매일매일 끝없는 검토를 한 후에, 이제는 제출해도 되겠다 싶어 제출하였다. 안랩은 가장 가고싶던 회사였기에, 천천히 준비하려던 나의 기준을 전부 깨게 만들었다. 이력..

자유 2023.04.13

OverTheWire [Natas Level 24]

Natas Level 24 입니다. 저번 레벨과 같이 Password 입력폼이 하나 있군요. 아무 값이나 넣어 봤지만 당연하게도 인증 실패로 Wrong! 문자열을 출력했습니다. 소스코드를 봐봅시다. 소스코드입니다. 이번에도 짧네요. 아주 좋습니다. 저번 레벨 코드보다 더 간단한데요? 그냥 맞는 패스워드를 입력하면 됩니다. 단, 조건문이 strcmp함수로 이루어져 있군요. strcmp 함수는 문자열을 비교하는 함수입니다. 문자열이 같을 경우 -> 0 다를 경우 -> 0이 아닌 정수 ( 상황에 따라서 음수, 양수 모두 출력함 ) 쉽게 말해서, 같으면 FALSE 다르면 TRUE 를 출력합니다. 또한, 대소문자를 구별합니다. 위 소스코드엔 !strcmp 이렇게 !(NOT) 연산이 들어가 있으니, 올바른 패스워드..

Hacking/[Web]Natas 2023.04.11

OverTheWire [Natas Level 23]

Natas Level 23 입니다. 문제입니다. Password 입력 폼이 있네요. 아무거나 입력해봅시다. natas23을 입력해 보겠습니다. Wrong! 틀렸다고 하네요. 위 URL 창을 통해 입력 폼 이름은 passwd 라는 것을 알 수 있습니다. 소스코드를 확인해 봅시다. 오랜만에 굉장히 간단한 코드네요! 눈이 아주 편합니다. password 출력 조건도 굉장히 간단한데요. 딱 2가지입니다. 1. 입력값에 "iloveyou"문자열이 포함되어 있어야 한다. ( 띄어쓰기처럼 보이는데 아닙니다 ) 2. 입력값의 크기가 10보다 커야 한다. 그런데 좀 이상합니다. 입력값은 iloveyou 문자열이 포함되어 있는데 10보다 커야 한다니? 문자열과 숫자를 비교하고 있군요. 이게 가능한 건가요? 혹시 입력값의 ..

Hacking/[Web]Natas 2023.04.11

OverTheWire [Leviathan Level 2]

Leviathan Level 2 입니다. 약간의 리버싱과 command Injection 기법이 사용된 문제입니다. 일단 저번 레벨과 비슷하게, SetUID비트가 설정된 실행파일이 하나 있네요. 소유자는 leviathan3 이므로, 저 파일을 실행하는 동안 우리는 leviathan3의 권한을 얻게 됩니다. 일단 인자 없이 실행해 보았는데요, "File Printer"라는 문자열과 함께 ./printfile [파일명] 형식으로 실행하라고 합니다. 음.... 출력이 안되는군요. leviathan3 파일에 대한 어떤 제한이라도 걸려있는 걸까요? 리버싱을 통해 확인해 봅시다. 저는 radare2 프로그램을 사용하였구요, 이것은 main함수의 구조입니다. 가장 처음 나오는 조건문입니다. 9212 부분에서 cmp ..

IOLI CrackMe 0x02

IOLI CrackMe 0x02 입니다. 리버싱을 통해, 프로그램 password를 알아내야 하는 문제입니다. 저는 리버싱을 위해 radare2 프로그램을 사용하겠습니다. radare 실행 후 aaaa 명령어로 프로그램을 분석해 주었습니다. 함수목록입니다. 특별한 함수는 보이지 않아 main 기준으로 분석하겠습니다. main함수 입니다. 위쪽에서 프로그램 실행 시 문자열을 출력하고 있고, 844e 부분에서 var_ch 위치의 값과 eax값을 비교하고 있습니다. 8451 부분에선 두 값이 일치할 경우, 점프하지 않고 그대로 진행하고 있습니다. (일치하지 않으면 지정된 위치로 점프) 두 값이 일치할 경우의 프로그램 진행입니다. Password OK 문자열을 출력하고 있는데요, 이것을 보아 위쪽 cmp 비교구..

IOLI CrackMe 0x01

IOLI CrackMe 0x01 입니다. 저번 레벨과 마찬가지로 password를 알아내는 문제입니다. r2 -d crackme0x01 -> radare2 프로그램 디버깅 모드로 문제파일 실행 aaaa -> 프로그램 분석 afl -> 함수목록 출력 특별히 보이는 함수는 main 뿐입니다. main함수 기준으로 분석해 보도록 합시다. pdf @ main main 함수입니다. 8400, 8407 : 프로그램 시작 문자열 출력 840c, 8413 : "Password: "문자열 출력 8426 : 사용자로부터 입력받는 부분 842b : 어떤 숫자 2개를 비교하고 있음 8432 : 점프구문, 앞의 비교구문에서 두 값이 동일할 경우 지정된 위치로 점프함 대략 이런 구조입니다. 제가 봤을땐 842b 부분의 cmp d..

IOLI CrackMe 0x00

IOLI CrackMe 0x00 입니다. 리버싱 연습하기 좋은 문제이며, 0x00 부터 0x09 까지 있습니다. 0x00 문제를 실행해 보았습니다. Password 입력을 요구해서 "1234"를 입력하였으나 인증에 실패했습니다. 리버싱을 통해, Password값을 알아내야 합니다. r2 : radare2 프로그램 실행 명령어 -d : 디버깅 모드로 실행 리버싱엔 radare2 프로그램을 사용하겠습니다. aaaa 명령어로 프로그램 분석 후, afl 명령어로 함수 리스트를 출력하였습니다. 눈에 띄는 함수가 main 밖에 없군요. main함수를 기준으로 분석해 보도록 하겠습니다. pdf @ main main 함수입니다. 분석해 보도록 합시다. 이 부분을 보시면, 프로그램 실행 시 출력문이 저장된 부분이란 것을..

OverTheWire [Leviathan Level 1]

Leviathan Level 1 입니다. 리버싱 문제입니다만, 제가 리버싱에 대해 전혀 모르던 상태라 따로 리버싱 공부를 한 후에 문제 해결에 성공하였습니다. 홈디렉터리에 있는 문제파일 "check" 입니다. SetUID 비트가 설정되어 있고, 소유자는 leviathan2 입니다. 저 프로그램을 실행하는 동안 leviathan2 의 권한을 얻게 되는 겁니다. 프로그램을 한번 실행시켜 보겠습니다. ./check password 입력을 요구하네요. "1234"를 입력해 보았지만 틀린 password라고 쫓겨났습니다. 아무래도 리버싱을 통해 password를 알아내는 문제인 것 같습니다. r2 -d check r2 : radare2(리버싱 프로그램)를 실행하는 명령어 -d : 디버깅 모드로 실행 저는 리버싱을..

IOLI CrackMe 0x03

IOLI CrackMe 0x03 입니다. 리버싱은 한번도 해본 적 없었습니다만.. Leviathan 1번 문제가 리버싱 문제였기에, 리버싱을 공부하기 위해 풀어본 문제입니다. 문제 파일 링크입니다. https://github.com/mattetti/IOLI-crackme GitHub - mattetti/IOLI-crackme: crackme exercises with instructions to learn in a safe environment crackme exercises with instructions to learn in a safe environment - GitHub - mattetti/IOLI-crackme: crackme exercises with instructions to learn i..

728x90
반응형