การโจมตีแบบฉีดจาวาสคริปต์คืออะไร?
1. การฉีด JavaScript คือการป้อนรหัส JS ลงในแถบที่อยู่เบราว์เซอร์เพื่อเปลี่ยนเนื้อหาของตัวแปรหน้า JS และฉลากหน้า
การใช้การฉีดจาวาสคริปต์ผู้ใช้สามารถเปลี่ยนเนื้อหาได้โดยไม่ต้องปิดหรือบันทึกหน้าเว็บซึ่งทำในแถบที่อยู่ของเบราว์เซอร์ ไวยากรณ์ของคำสั่งมีดังนี้:
JavaScript: Alert (#คำสั่ง#)
ตัวอย่างเช่นหากคุณต้องการดูกล่องเตือนการแจ้งเตือนบนเว็บไซต์ http://www.example.com ก่อนอื่นให้ป้อน URL ในแถบที่อยู่และรอให้หน้าโหลดแล้วลบ URL และป้อน:
JavaScript: Alert (Hello World)
เป็น URL ใหม่ สิ่งนี้จะปรากฏขึ้น Hello World Warning Box โดยใช้เทคนิคนี้เพื่อเปลี่ยนเกือบทุกอย่างบนหน้าเว็บเช่นรูปภาพ สมมติว่ามีภาพโลโก้เว็บไซต์และเราพบหนึ่งในรหัส HTML โดยดูที่ไฟล์แหล่งที่มาของหน้า:
<img name = hi src = hello.gif>
รูปภาพมีชื่อว่า HI ไฟล์ต้นฉบับคือ hello.gif เราต้องการเปลี่ยนเป็นไฟล์ bye.jpeg ที่เก็บไว้ในเว็บไซต์ของเรา (http://www.mysite.com) ดังนั้นที่อยู่ URL เต็มรูปแบบของภาพคือ http://www.mysite.com/bye.jpeg
JavaScript: Alert (document.hi.src = http: //www.mysite.com/bye.jpeg)
คุณจะเห็น http://www.mysite.com/bye.jpegalert คำเตือนป๊อปอัพและภาพเปลี่ยนไป ควรสังเกตว่าการเปลี่ยนแปลงเหล่านี้เป็นเพียงชั่วคราว! หากคุณรีเฟรชหน้าหรือกลับเข้ามาอีกครั้งการเปลี่ยนแปลงของคุณจะหายไปเนื่องจากคุณเพิ่งทำการเปลี่ยนแปลงเหล่านี้บนพีซีของคุณไม่ใช่บนเว็บเซิร์ฟเวอร์
การใช้วิธีเดียวกันเราสามารถดูหรือเปลี่ยนค่าของตัวแปรตัวอย่างเช่นเราพบชิ้นส่วนของรหัสเช่นนี้บนหน้าเว็บ:
<ภาษาสคริปต์ = JavaScript> var a = test </script>
หมายความว่าค่าของตัวแปร A คือการทดสอบและตอนนี้เราป้อน:
JavaScript: Alert (A)
จากนั้นเราเปลี่ยนค่าเป็นสวัสดี:
JavaScript: Alert (A = Hello)
การฉีดจาวาสคริปต์มักจะใช้ในการเปลี่ยนคุณสมบัติของฟอร์มโดยสมมติว่ามีรหัสชิ้นส่วนเช่นนี้:
<form name = format action = send.php method = post> <input type = name hidden = mail [email protected]> <input type = name name = name> <input type = submit value = submit> </form>
เราต้องการให้แบบฟอร์มถูกส่งไปยังกล่องจดหมายของเราไม่ใช่ [email protected] คุณสามารถใช้คำสั่งต่อไปนี้:
JavaScript: Alert ([email protected])
บางทีคุณอาจสังเกตเห็นลำดับชั้นของคำสั่งเหล่านี้:
มาอธิบายตามลำดับจากซ้ายไปขวา:
1) เอกสารอยู่ทางซ้ายสุด
2) จากนั้นมีชื่อวัตถุที่เราต้องการเปลี่ยน (เช่น document.hi.src) หรือวัตถุที่มี (เช่น document.format.mail.value)
3) ในที่สุดแอตทริบิวต์ที่เราต้องการเปลี่ยน (เช่น Source Path: document.hi.src หรือค่าตัวแปร: document.format.mail.value)
4) ใช้. การแยกจำนวนมาก
5) เมื่อเราต้องการเปลี่ยนค่าแอตทริบิวต์เราจะใช้เครื่องหมาย = และค่าแอตทริบิวต์ใหม่
*หมายเหตุ: เมื่อค่าแอตทริบิวต์ใหม่เป็นสตริง (ตัวอย่างเช่น: [email protected]) มันจะต้องถูกปิดล้อมในราคาสองเท่า
หากเราต้องการใช้เป็นค่าสำหรับตัวแปรเราไม่จำเป็นต้องใช้คำพูดสองเท่า ตัวอย่างเช่นหากเราต้องการกำหนดค่าของตัวแปร B ให้กับตัวแปร A เราสามารถป้อน JavaScript: Alert (A = B)
อย่างไรก็ตามแท็กส่วนใหญ่ในหน้าไม่มีชื่อเช่น:
<form action = send.php method = post> <input type = name hidden = mail [email protected]> <อินพุตประเภท = ชื่อข้อความ = ชื่อ> <อินพุตประเภท = ส่งค่า = ส่ง> </form>
ไม่มีชื่อฟอร์มในรหัสนี้ จากข้อมูลข้างต้นคุณสามารถใช้คำสั่งนี้:
JavaScript: Alert (เอกสาร. .mail.value = [email protected])
ในกรณีนี้เราต้องนับและค้นหาหมายเลขลำดับฟอร์มและต่อไปนี้เป็นตัวอย่าง:
<form action = method.php method = post> <input type = ชื่อข้อความ = ชื่อ> <อินพุตประเภท = ส่งค่า = ส่ง> </form> <รูปแบบการกระทำ = send.php method = โพสต์> <อินพุตประเภท = ชื่อที่ซ่อน = ค่าจดหมาย = type = names = names = names = name = names = names = names = names </form>
ในรหัสข้างต้นเราเห็น 3 รูปแบบ แต่เราสนใจเพียงรูปแบบที่สองดังนั้นหมายเลขฟอร์มที่เราต้องการคือ 2 อย่าลืมว่าเราเริ่มจาก 1 เช่น 1, 2, 3, 4 ... ในขณะที่ JavaScript เริ่มต้นจาก 0 เช่น 0, 1, 2, 3 ... ดังนั้นหมายเลขฟอร์มจริงคือ 1 ไม่ใช่ 2 เราจะใช้หมายเลขซีเรียลนี้เพื่อทำคำสั่งให้เสร็จสมบูรณ์:
JavaScript: Alert (document.forms [1] .mail.value = [email protected])
วิธีนี้คุณสามารถเปลี่ยนรูปภาพหรือลิงก์โดยไม่มีชื่อและคุณสามารถเปลี่ยนรูปแบบเป็นแท็กประเภทใดก็ได้ที่คุณต้องการ สำหรับภาพ
JavaScript: Alert (document.images [3] .src =#URL ของรูปภาพที่คุณต้องการ#)
สำหรับลิงค์คือ
JavaScript: Alert (document.links [0] .href =#URL ที่คุณต้องการ#)
ในที่สุดเราสามารถใช้เทคนิคนี้เพื่อแก้ไขคุกกี้ คำสั่งต่อไปนี้เขียนโดย dr_amado จาก triviasecurity.net และฉันแก้ไขเพียงเล็กน้อยเพื่อให้มันปรากฏก่อนที่ผู้ใช้แก้ไข คุณเพียงแค่ต้องคัดลอกไปยังแถบที่อยู่:
JavaScript: การแจ้งเตือน (window.c = ฟังก์ชั่น a (n, v, nv) {c = document.cookie; c = c.substring (c.indexof (n)+n.length, c.length); c = c.substring (1, (c.indexof (;)>-1)? document.cookie = n+=+escape (nc); การแจ้งเตือน ('คุกกี้คือ:'+document.cookie+''); การแจ้งเตือน (C (พรอมต์ (ชื่อของคุกกี้:,), พรอมต์ (เปลี่ยนค่านี้:,), พรอมต์ (ด้วยสิ่งนี้:,))))))))))))))))))))))))))// หากคุณต้องการเปลี่ยนคุกกี้ของคุณด้วยตนเองคุณสามารถใช้คำสั่งต่อไปนี้:
JavaScript: Alert (document.cookie)
สิ่งนี้จะแสดงคุกกี้ปัจจุบันของคุณโดยสมมติว่า userId = 1 หากคุณต้องการเปลี่ยนเป็น userId = 2 คุณสามารถใช้คำสั่งต่อไปนี้:
JavaScript: Alert (document.cookie = userId = 2)
ในที่สุดฉันต้องเน้นว่าการเปลี่ยนแปลงทั้งหมดอยู่ทางด้านลูกค้า! มันเหมือนกับการบันทึกหน้าเว็บบนพีซีของคุณและแก้ไข ถึงกระนั้นการใช้เคล็ดลับนี้คุณยังสามารถหลอกหน้า (เช่นคุกกี้) หรือบายพาสการตรวจสอบความปลอดภัย ตัวอย่างเช่นเว็บเพจบางหน้าจะตรวจจับตำแหน่งที่ผู้ใช้ส่งข้อมูล หากคุณส่งข้อมูลจาก http://www.test.com/form.php ไปที่ http://www.test.com/check.php, check.php อาจตรวจพบว่าข้อมูลมาจากแบบฟอร์มบน http://www.test.com/form.php นอกจากนั้นหากคุณวางแผนที่จะป้อนรหัส JavaScript ของคุณเองลงในหน้าโดยใช้เทคนิคเหล่านี้คุณจะสามารถเปลี่ยนรูปภาพและปล่อยให้มันเหมือนเดิม!
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น