반응형

pwnable 29

[Root Me] Bash - System 1 - 포너블

Root Me 에서 제공하는 간단한 시스템해킹 문제 주어지는 소스코드에서 취약점을 찾아 .passwd 파일의 내용을 읽으면 된다. 아래에 있는 WebSSH 버튼을 누르면 온라인으로 문제를 풀 수 있다. 접속해서 ls -al 을 해본다. 로그인된 계정은 app-script-ch11 인데 .passwd 파일은 app-script-ch11-cracked 계정에만 read 권한이 있어 내용을 읽을 수 없다. 주어진 소스코드로 만들어진 바이너리인 ch11 을 실행시켜 본다. 소스코드 자체에서 ls 명령어를 수행하도록 되어있기 때문에 ls 명령어 수행결과가 출력될 뿐, .passwd 파일의 내용을 읽을수는 없다. 우선 /tmp 디렉토리로 이동한다. mkdir 을 통해 임의의 디렉토리를 하나 생성해준다. 파일의 내용..

워게임/Root Me 2024.01.04

[247CTF] HIDDEN FLAG FUNCTION - 포너블 / 버퍼오버플로우 / IDA / Pwndbg / Pwntool

247CTF 에서 제공하는 간단한 버퍼오버플로우 문제 문제에서는 hidden_flag_function 바이너리 파일과 원격 접속 주소가 제공된다. IDA 를 이용해 해당 바이너리를 열어봤을 때 flag, chall, main 세 함수가 정의되어 있었다. main 함수에서는 chall 함수를 호출하고 있고 chall 에서는 scanf로 사용자의 입력을 받는다. v1 의 크기가 68인데 입력값 범위를 체크하지 않아 버퍼오버플로우가 가능해 보인다. 마지막 flag 함수는 서버 내부의 flag.txt 파일을 불러와 내용을 출력해주는데 어디서도 호출하고 있지 않아 실행되지 않는 함수이다. 버퍼오버플로우를 통해 리턴 주소를 변경시켜 flag 함수가 실행되도록 만들어야 한다. pwndbg를 이용해 바이너리를 분석한다..

워게임/247CTF 2023.10.04

[CTFlearn] Domain name resolver - 포너블 / Command Injection / IDA

CTFlearn 에서 제공하는 Easy 난이도의 포너블 문제 문제에서는 원격으로 접속할 수 있는 주소와 문제 바이너리 파일이 주어진다. 설명을 보면 도메인과 IP와 관련된 문제인듯 하다. 문제에서는 task 라는 바이너리가 주어진다. 해당 바이너리를 IDA 라는 도구를 이용해 열어봤다. F5를 눌러 메인함수의 수도코드를 보면 첫째로 사용자로부터 입력을 받는다. 입력받는 값은 도메인 네임이다. 다음으로 입력받은 값을 dig +short 형태로 명령어를 수행하고, 그 결과를 출력한다. 참고로 dig 명령어는 이렇게 도메인 이름을 입력하면 그 도메인의 아이피를 리턴해주는 명령어이다. 저 명령어를 그대로 task 바이너리를 이용해 수행하는 것이다. 실제로 원격으로 접속해 실행해보면 똑같은 결과가 리턴되는것을 확..

워게임/CTFlearn 2023.09.09

[CTFlearn] Leak me - 포너블 / 포맷스트링

CTFlearn에서 제공하는 Easy 난이도의 포너블 문제 문제설명에 format tag 라고 적혀있는걸 보니 포맷 스트링과 관련된 문제이다. 얼마전에 Root Me에 나온 문제와 그냥 동일한 문제이다. (https://hackingstudypad.tistory.com/613) 문제는 서버 주소와 소스코드가 주어진다. 위는 소스코드 내용인데 ./flag.txt 파일의 내용을 읽은 뒤 *f 에 저장한다. 그런다음 fgets 로 buffer 에 해당 값을 담아준 뒤 printf 로 사용자로부터 입력받은 값을 출력해준다. printf 부분에서 문제가 발생할 수 있다. 사용자에게 입력을 받아 결과를 출력할 때 포맷 스트링이라는 것을 사용하는데 기호로 다음과 같이 표시된다. %d : 정수형 10진수 상수 %f :..

워게임/CTFlearn 2023.09.07

[CTFlearn] Accumulator - 포너블 / C / 정수 오버플로우

간단하게 해결할 수 있는 포너블 문제 풀이수가 작은건 뒤쪽에 있어서 사람들이 많이 시도하지 않아 그런것 같다. 문제에선 원격으로 접속할 수 있는 주소와 task.c 라는 소스코드가 주어진다. 소스코드의 내용을 보면 int형인 acc 변수를 선언하고 while 내에서 사용자의 입력을 받아 입력한 값을 계속 더해 acc에 저장하는 코드이다. acc 가 양수인 경우 계속 while 문이 진행되고, 그게 아닐 경우 You win! 과 함께 플래그가 출력된다. 뭔가를 계속 더하는데 더한 결과 값이 음수가 되게 만들어야 한다는 뜻이다. 밑에 있는 조건문 때문에 입력값에 음수를 줄 수는 없는 상황이다. 한번 실행시켜 봤다. 1, 2, 3을 차례로 입력해봤든네 acc에는 1, 3, 6 이 저장되는 것을 볼 수 있다. ..

워게임/CTFlearn 2023.09.05

[Root Me] ELF x86 - Format string bug basic 1 - 포너블

Root Me에서 제공하는 간단한 난이도의 Format String 문제 문제에서 제공되는 바이너리의 소스코드이다. C언어로 제작되었다. 먼저 .passwd 파일의 내용일 읽은 뒤 *secret 에 저장한다. 그런다음 fgets 로 buffer 에 해당 값을 담아준 뒤 printf 로 사용자로부터 입력받은 파라미터인 argv[1] 을 출력한다. printf 부분에서 문제가 발생할 수 있다. 사용자에게 입력을 받아 결과를 출력할 때 포맷 스트링이라는 것을 사용하는데 기호로 다음과 같이 표시된다. %d : 정수형 10진수 상수 %f : 실수형 상수 %c : 문자 %s : 문자 스트링 %u : 양의 정수(10진수) %o : 양의 정수(8진수) %x : 양의 정수(16진수) %p : 포인터 main 함수에 있는..

워게임/Root Me 2023.08.30

[Root Me] Bash - cron - 포너블

Root Me에서 제공하는 포너블 문제 cron 예약작업과 관련된 문제이다. WebSSH 버튼을 누르면 이렇게 웹 형태로 SSH 접속이 가능하다. 여기서 문제를 바로 풀면 된다. ls -al 명령어로 어떤 파일들이 있는지 살펴본다. .passwd 파일은 app-script-ch4-craked 권한으로 현재 권한이 app-script-ch4 권한이기 때문에 내용을 읽을 수 없다. 이 파일의 내용을 읽는것이 문제의 목표이다. ch4 파일에는 bash 스크립트가 작성되어 있다. cron.d 폴더 하위에 있는 작업을 실행시키는 내용이다. crontab은 */1 * * * * 이라고 걸려있는데 이건 지정된 예약작업을 1분마다 실행시킨다는 의미이다. 일단 cron.d 폴더에 문제를 해결하기 위한 스크립트를 생성해야..

워게임/Root Me 2023.08.21

[n00bzCTF] Pwn1 - 포너블 / 버퍼오버플로우 / IDA / Pwndbg / Pwntool

쉬운 난이도의 포너블 문제 간단한 버퍼 오버플로우 문제이다. pwn1 바이너리 파일과 원격 접속 주소가 주어진다. 한번 nc 를 이용해 원격으로 접속해 봤다. Would you like a flag? 라는 문장이 출력되고 사용자 입력을 받는다. 아무렇게나 입력해보니 fake flag 가 출력되었다. IDA 라는 디스어셈블러를 이용해 main 함수를 살펴보았다. 여기서 확인할 수 있는 문제는 배열 s 의 크기가 64 인데 fgets 함수로 80 만큼 입력을 받고 있는 것이다. 선언한 길이보다 더 많은 입력을 받아 버퍼오버플로우 취약점이 발생한다. 버퍼오버플로우를 통해 ret 주소를 변경시켜야 한다. 변경시킬 대상 주소는 코드 어디에서도 호출하지 않고 있는 win() 함수이다. win 함수는 system("..

CTF/포너블 2023.06.27

[n00bzCTF] Flag Shop - 포너블

아주아주 간단한 포너블 생기초 문제 포너블 관련 지식이 없어도, 잔머리가 조금 있다면 풀 수 있다. 문제에선 바이너리나 소스코드가 주어지지 않고 원격 접속 가능한 주소만 주어진다. nc 를 이용해 이렇게 접속하면 flag shop 이라는 곳으로 연결된다. real flag 는 1337 달러, fake flag 는 50 달러에 팔고있는데 [3] Check account balance 를 선택해 잔고를 보면 수중에 100 달러밖에 없는것을 볼 수 있다. 일단 살 수 있는 fake flag 를 한번 사봤다. [2] Buy fake flag 를 선택하니 How many? 라며 구매 수량을 물어본다. 1 을 선택하니 n00bz{f4k3_flag} 라며 가짜 플래그가 출력되고 잔고를 확인해보니 50 달러가 줄어 5..

CTF/포너블 2023.06.23

[Root Me] sudo - weak configuration - 포너블

Root Me 에서 제공하는 sudo 명령어 관련한 문제 웹을 이용해 원격으로 접속할 수 있는 WebSSH 주소와 Username, Password 가 함께 주어진다. WebSSH 로 접속해서 ls -al 를 입력해봤다. readme.md 파일과 ch1cracked, notes 디렉토리가 보인다. 우선 readme.md 파일의 내용을 살펴보니 /challenge/app-script/chq/ch1cracked/ 경로에 있는 .passwd 파일을 읽는것이 목표라고 설명해주고 있다. 해당 파일은 app-script-ch1-cracked 에게만 r 권한이 부여되어 있어 app-script-ch1 인 현재 계정으로는 내용을 읽을 수 없다. 문제 제목부터 sudo 이니 sudo 명령어를 사용해본다. Super Us..

워게임/Root Me 2023.06.12
반응형