CBJS: Command Injection 4in1 level 1

Peppa - Sep 3 - - Dev Community

Detail

  • Mục tiêu chiếm quyền điều khiển server và đọc một tập tin bí mật ở thư mục gốc (đường dẫn /)

  • Website có chức năng nhập username sau đó chọn kiểu card, từ đó sẽ in ra hình dựa trên các kí tự

Image description

Image description

  • Dựa trên đoạn code, input đã được sử dụng addslashes để lọc đi các kí tự đặc biệt: single quote, double quote, backslash and NUL byte

Image description

Image description

  • Đối với việc thực thi command, ta có thể sử dụng command substitution: `` and $() đối với double quote. Khi đó có thể thực thi lệnh mong muốn chính bên trong và không cần escape double quote

  • Chọn type là figlet vì sử dụng double quote
    Image description

Image description

Image description

  • Ngoài backstick ta còn có thể sử dụng $() Image description

Image description

  • Trong trường hợp đối với single quote ta vẫn có thể sử dụng '' như bình thường vì sau khi đi qua addslashes sẽ có thêm \ phía trước ' thành \' nhưng backslash trong single quote không hề có hiệu ứng gì cả vậy nên ' vẫn có tác dụng ngắt chuỗi -> Vẫn escape bình thường

Image description

Image description

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .