อ่าน 1 นาที
การแบ่งการตอบสนอง HTTP
การแยกการตอบสนอง HTTP เป็นรูปแบบหนึ่งของ ช่องโหว่ ในเว็บแอปพลิ เคชัน ซึ่งเกิดจากความล้มเหลวของแอปพลิเคชันหรือสภาพแวดล้อมในการตรวจสอบและกรองค่าอินพุตอย่างเหมาะสม...
การแบ่งการตอบสนอง HTTP
| ทศนิยม |
|---|
| วิธีการร้องขอ |
| ช่องส่วนหัว |
| รหัสสถานะการตอบสนอง |
| วิธีการควบคุมการเข้าถึงด้านความปลอดภัย |
| ช่องโหว่ด้านความปลอดภัย |
การแยกการตอบสนอง HTTPเป็นรูปแบบหนึ่งของ ช่องโหว่ ในเว็บแอปพลิเคชันซึ่งเกิดจากความล้มเหลวของแอปพลิเคชันหรือสภาพแวดล้อมในการตรวจสอบและกรองค่าอินพุตอย่างเหมาะสม ช่องโหว่นี้สามารถนำไปใช้ในการ โจมตี แบบ Cross-Site Scripting ( XSS), การทำลายหน้าเว็บของผู้ใช้หลายราย, การโจมตีแคชเว็บและการโจมตี อื่นๆ ที่คล้ายคลึงกัน ได้
การโจมตีนี้ประกอบด้วยการทำให้เซิร์ฟเวอร์พิมพ์ลำดับอักขระขึ้นบรรทัดใหม่ (CR, ASCII 0x0D ) และขึ้นบรรทัดใหม่ (LF, ASCII 0x0A ) ตามด้วยเนื้อหาที่ผู้โจมตีใส่ไว้ใน ส่วน หัวของข้อความตอบกลับ โดยทั่วไปจะทำได้โดยการใส่ไว้ในช่องป้อนข้อมูลที่ส่งไปยังแอปพลิเคชัน ตาม มาตรฐาน HTTP (RFC 2616) ส่วนหัวจะคั่นด้วย CRLF หนึ่งตัว และส่วนหัวของข้อความตอบกลับจะคั่นจากส่วนเนื้อหาด้วยสองตัว ดังนั้น การไม่ลบ CR และ LF จะทำให้ผู้โจมตีสามารถตั้งค่าส่วนหัวตามอำเภอใจ ควบคุมส่วนเนื้อหา หรือแบ่งข้อความตอบกลับออกเป็นสองส่วนหรือมากกว่านั้นได้—จึงเป็นที่มาของชื่อนี้
การป้องกัน
วิธีแก้ปัญหาทั่วไปคือการเข้ารหัส URLของสตริงก่อนที่จะนำไปรวมไว้ในส่วนหัว HTTPเช่นLocationหรือSet- Cookie
ตัวอย่างทั่วไปของการตรวจสอบความปลอดภัย ได้แก่การแปลงเป็นจำนวนเต็มหรือ การแทนที่ นิพจน์ปกติ แบบเข้มงวด ภาษาสคริปต์ฝั่งเซิร์ฟเวอร์และรันไทม์ที่ทันสมัยส่วนใหญ่ เช่นPHPตั้งแต่เวอร์ชัน 5.1.2 [ 1 ]และNode.jsตั้งแต่เวอร์ชัน 4.6.0 (เวอร์ชันก่อนหน้ารองรับ แต่การป้องกันอาจถูกหลีกเลี่ยงได้ ซึ่งถูกค้นพบในปี 2016) [ 2 ]รวมถึงเฟรมเวิร์กเว็บเช่นDjangoตั้งแต่เวอร์ชัน 1.8.4 [ 3 ]รองรับการตรวจสอบความปลอดภัยของการตอบสนอง HTTP เพื่อป้องกันช่องโหว่ประเภทนี้
ลิงก์ภายนอก
- แบ่งแยกและพิชิต - การแบ่งการตอบสนอง HTTP, การโจมตีด้วยการวางยาพิษแคชเว็บ และหัวข้อที่เกี่ยวข้อง อามิต ไคลน์, 2004
- การแบ่งการตอบสนอง HTTP (HTTP Response Splitting), สมาคมความปลอดภัยแอปพลิเคชันเว็บ (Web Application Security Consortium)
- Wapiti เครื่องมือสแกนช่องโหว่ XSS, Header, SQL และ LDAP แบบโอเพนซอร์ส
- บทความ LWN
- CWE-113: ความล้มเหลวในการตรวจสอบความปลอดภัยของลำดับ CRLF ในส่วนหัว HTTP ('การแบ่งการตอบสนอง HTTP')
- การโจมตีแบบแยกการตอบสนอง HTTP - OWASP
- การฉีด CRLF - OWASP
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การแบ่งการตอบสนอง HTTP
การแยกการตอบสนอง HTTP เป็นรูปแบบหนึ่งของ ช่องโหว่ ในเว็บแอปพลิ เคชัน ซึ่งเกิดจากความล้มเหลวของแอปพลิเคชันหรือสภาพแวดล้อมในการตรวจสอบและกรองค่าอินพุตอย่างเหมาะสม...
การป้องกัน
วิธีแก้ปัญหาทั่วไปคือการ เข้ารหัส URL ของสตริงก่อนที่จะนำไปรวมไว้ใน ส่วนหัว HTTP เช่น Location หรือ Set- Cookie
ลิงก์ภายนอก
แบ่งแยกและพิชิต - การแบ่งการตอบสนอง HTTP, การโจมตีด้วยการวางยาพิษแคชเว็บ และหัวข้อที่เกี่ยวข้อง อามิต ไคลน์, 2004 การแบ่งการตอบสนอง HTTP (HTTP Response Splitting), สมาคมความปลอดภัยแอปพลิเคชันเว็บ (Web Application Security Consortium) Wapiti...