[SVATT2017 Final Round] - shcat - Jeopardy

Team IA
Team IA
Published in
3 min readNov 22, 2017

--

Đề bài :

ssh test@128.199.179.111 pw:goodluckguys

Khi ssh vào server, ngồi nghịch ngợm tí thì thấy cái này:

Vậy tồn tại 2 user là svattt và test, thử luôn user svatttt cùng pass xem ahihi :)) biết đâu bất ngờ.

ssh svattt@128.199.179.111

Uầy, đúng pass thật kìa tuy nhiên ngay khi log được vào thì mình bị đẩy ngay ra ngoài với dòng chữ 'GO AWAY HACKER', ok fine I'm hacker now :3

Tiếp tục công cuộc đào bới tìm flag thôi, khả năng cao là flag nằm trong dir svattt rồi.

Như vậy, flag chắc chắn nằm trong file flag =)), chỉ có điều với user test chúng ta không có quyền đọc file này. Tiếp tục xem các file còn lại trong dir này

shell.c

Đụng ngay sở đoản code C :)), cơ mà nom có vẻ không có gì phức tạp nên ngồi đọc cố.

Đại loại code theo mình hiểu ntn:

Kiểm tra argv nhập vào, nếu trong argv có kí tự ';' thì exit, không thì tạo 1 cmd với dạng: cmd = nc + argv và thực thi cmd đó.

Thấy có file shell, ngồi nghịch thử vài kết quả và đúng như những gì mình hiểu từ đoạn code trên.

Mày mò tới một số file khả nghi thường gặp trong mấy bài ctf như /etc/passwd và /etc/shadow, thấy điều thú vị:

/etc/passwd

Như vậy có thể hiểu khi ssh tới server với user svattt sẽ gọi tới file /home/svattt/shell. Ý tướng kha khá giống các bài trên overthewire, bạn nào chơi qua các challenge trên này rồi thì đến đây đã có thể tự nghĩ ra cách giải.

OK, đơn giản rồi, mình chỉ cần truyền vào 1 payload để combine cái cmd thành 2 lệnh của linux, và bùm, ez flag for đội ở nhà :))

FLAG: SVATTT{9SHELLINTHESEASHORE}

Challenge khá thú vị, cảm ơn tác giả k9 với challenge này :D

-- H3xX0 r--

--

--