ฉันเชื่อว่าสิ่งที่คุณกำลังมองหาคือ-s
ตัวเลือก ด้วย-s
คุณสามารถส่งผ่านข้อโต้แย้งไปยังสคริปต์
เป็นตัวอย่างที่แสดงให้เห็นถึงสิ่งนี้:
$ echo 'echo 1=$1' | bash -s -- Print
1=Print
ที่นี่คุณสามารถเห็นได้ว่าสคริปต์ที่มีให้ใน stdin Print
จะได้รับพารามิเตอร์ตำแหน่ง สคริปต์ของคุณรับการ-u UUID
โต้แย้งและสามารถรองรับได้:
$ echo 'echo arguments=$*' | bash -s -- -u UUID print
arguments=-u UUID print
ดังนั้นในกรณีของคุณ:
curl -fsSL http://git.io/vvZMn | bash -s -- print
หรือ,
curl -fsSL http://git.io/vvZMn | bash -s -- -u UUID print
สตีเฟ่นแฮร์ริสชี้ให้เห็นว่าการดาวน์โหลดสคริปต์และดำเนินการมันมองไม่เห็นเป็นเรื่องความปลอดภัย
print
จะทำอะไรที่นี่? แสดงคำสั่งที่กำลังทำงานอยู่หรือไม่bash -x
ถ้าเป็นเช่นนั้นลอง หมายเหตุ:curl | bash
รูทีนนี้เป็นช่องโหว่ขนาดใหญ่ คุณไม่ได้เห็นสิ่งที่จะทำงานจนกว่าเซิร์ฟเวอร์ของคุณจะถูก pwned