COMMAND INJECTION WITHOUT SPACE
COMMAND INJECTION WITHOUT SPACE
ในบทเรียนนี้เราจะมาทำการ bypass เพิ่มเติมโดยในโจทย์นี้จะป้องกันการโจมตีเฉกเช่นเดียวกับ Command Injection1 แต่จะป้องกันโดยการ filter ‘ ‘ (space) เพิ่มเติม ซึ่งเราสามารถใช้ command injection โดยไม่ต้องใส่ space ได้หลากหลายวิธีดังต่อไปนี้
- การสร้างตัวแปรไปพร้อมกับการแนบคำสั่ง ยกตัวอย่างเช่น CMD=$'\x20/etc/passwd'&&cat$CMD เป็นต้น โดยในที่นี้จะเป็นการสั่งให้ทำการสร้างตัวแปร CMD ขึ้นมาใน shell แล้วนำ CMD นั้นมาใช้เป็น input ของคำสั่ง cat command อีกที
- ในบางคำสั่งเราสามารถใช้ “<” เพื่อจะระบุ input ของคำสั่งได้ เช่น cat</etc/passwd เป็นต้น เป็นการระบุให้ /etc/passwd เป็น input ของ cat command
- ใน Linux system เราสามารถคำสั่งได้ผ่านการใช้ {,} เช่น {echo,hello,world} จะได้ผลลัพธ์ออกมาจะถือว่าเป็นการใช้งานคำสั่ง echo “hello world” ผลลัพธ์ที่ได้ออกมาคือการ echo คำว่า “hello world”
- ใน Linux system มีตัวแปรที่ชื่อ IFS ซึ่งแทนค่าว่างเปล่าได้ จะทำให้เราสามารถใช้ตัวแปร IFS ในการแบ่งคำสั่งกับ input ได้ออกมาเป็น cat${IFS%?}/etc/passwd เป็นต้น
Comments
Post a Comment