Score:1

Drupal Commerce Product Variation ช่องโหว่ SQL Injection

ธง gg

การสแกน PCI บนไซต์ของฉันแจ้งว่ามีช่องโหว่ SQL Injection แต่ดูเหมือนว่าจะบ่งชี้ว่าเป็นฟังก์ชันการค้าขั้นพื้นฐานที่ค่อนข้างสวย เมื่อไปที่หน้ารูปแบบผลิตภัณฑ์โดยตรง จะต่อท้าย v=nn ไปยัง URL เพื่อแสดงรูปแบบที่เลือก

การสแกนนี้บ่งชี้ว่า URL เช่น:

?v=54+หรือ+5459%3D5459&page=1

?v=54+หรือ+6721%3D8812&page=1

... ส่งคืน TRUE และ FALSE ตามลำดับ (ส่งคืนที่ฉันไม่แน่ใจจริงๆ)

นี่เป็นพฤติกรรมเริ่มต้นที่ค่อนข้างดีของ Drupal Commerce ถ้าฉันจำไม่ผิด เป็นไปได้ไหมว่าเป็นผลบวกลวงจากการสแกน PCI นี้

ฉันรู้ว่าฉันยังไม่ได้เพิ่มข้อความค้นหาที่กำหนดเองในไซต์นี้นอกเหนือจากธีมแล้ว ยังเป็นพฤติกรรมนอกกรอบอีกด้วย และฉันไม่คิดว่าฉันใช้พารามิเตอร์ v= โดยตรงในธีมใดๆ ของฉัน

ฉันขอโทษที่สิ่งนี้คลุมเครือและทั่วไป แต่กำลังมองหาข้อมูลเพิ่มเติมเกี่ยวกับวิธีจัดการกับผลลัพธ์ PCI นี้

ขอบคุณล่วงหน้า!

Score:3
ธง us

?v=54+หรือ+5459%3D5459&page=1 และ ?v=54+หรือ+6721%3D8812&page=1 จะอนุญาต การฉีด SQL หากโค้ดที่รันการสืบค้นจะใช้ค่าที่ส่งผ่านใน URL โดยไม่กรองค่า ดังตัวอย่างโค้ดต่อไปนี้ (ไม่ใช่โค้ดที่โมดูลใช้ เป็นเพียงโค้ดที่อนุญาตการฉีด SQL)

$statement = "select * from product_variation pv WHERE pv.id = {$_GET['v']}"; 

เคียวรี SQL จะเทียบเท่าเป็นหลักตามลำดับกับสิ่งต่อไปนี้

เลือก * จาก product_variation pv โดยที่ pv.id = 54 หรือ 5459 = 5459
เลือก * จาก product_variation pv โดยที่ pv.id = 54 หรือ 6721 = 8812

แบบสอบถาม SQL แรกจะส่งคืนแถวทั้งหมดใน product_variation ตารางฐานข้อมูล ในขณะที่แบบสอบถามที่สองจะส่งคืนเฉพาะแถวที่ ID เท่ากับ 54

Drupal core และโมดูลที่สนับสนุนจะไม่เชื่อมค่าที่ส่งผ่านจากผู้ใช้ (แม้ว่าจะผ่าน URL) ด้วยสตริงตามตัวอักษรเพื่อสร้างสตริง SQL แต่ใช้การแทนที่อาร์กิวเมนต์ที่เหมาะสม ทำให้ไม่สามารถแทรก SQL ได้
นอกจากนี้ยังไม่อนุญาตให้ผู้ใช้ระบุโอเปอเรเตอร์ใดๆ ให้กับเงื่อนไขของคิวรี แต่ให้กำหนดรายการโอเปอเรเตอร์ที่อนุญาตและอนุญาตให้ผู้ใช้ใช้โอเปอเรเตอร์เท่านั้น

การสแกน PCI พบว่าได้ผลลัพธ์ที่แตกต่างกันสองรายการ (จริง และ เท็จ) โดยใช้ ?v=54+หรือ+5459%3D5459&page=1 และ ?v=54+หรือ+6721%3D8812&page=1ตีความ จริง เช่น มีแถวที่ตรงกับข้อความค้นหา และ เท็จ เช่น ไม่มีแถวที่ตรงกับข้อความค้นหาและคิดว่าการฉีด SQL สำเร็จแล้ว (การสแกน PCI สามารถบอกได้อย่างไรว่าการเข้าถึง URL ที่มีพารามิเตอร์การค้นหาเหล่านั้นจะกลับมา จริง และ เท็จ ไม่ชัดเจนสำหรับฉันเช่นกัน)

นั่นไม่ใช่สิ่งที่เกิดขึ้น สิ่งที่รายงานโดยการสแกนเป็นผลบวกลวง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา