บายพาสตัวกรอง SSRF

สวัสดี ฉันชื่อ W1C3 และวันนี้ฉันจะอธิบายวิธีการรับการเข้าถึงการอ่านไฟล์โดยอำเภอใจผ่าน Server-Side Request Forgery (SSRF) โดยการข้ามตัวกรอง ความท้าทาย นี้พัฒนาขึ้นสำหรับWaniCTF
ชื่อ
ภาพหน้าจอ
คำอธิบาย
แอปพลิเคชั่นที่จับภาพหน้าจอของเว็บไซต์โปรดของคุณ
เกมส์
เมื่อเข้าไปที่เว็บไซต์จะสังเกตได้ว่าเป็นหน้าที่เรียบง่ายมาก ฟังก์ชันเดียวคือการรับ URL เข้าถึง URL โดยใช้เว็บเบราว์เซอร์ และถ่ายภาพหน้าจอ

ในความท้าทายนี้ เมื่อมีการให้ซอร์สโค้ด เราจะเห็นว่ามีการตรวจสอบที่เราจำเป็นต้องข้าม เนื่องจากต้องรวม " HTTP " ในคำขอของเราและ ไม่สามารถรวม " FILE " ได้

ในการตรวจสอบ เราจะพยายามอ่าน ไฟล์ /etc/passwdแต่ไม่สำเร็จ

ดังที่เรากล่าวไว้ก่อนหน้านี้ ตัวกรองที่เราต้องข้ามต้องมีสตริง “ http ” หรือไม่มีสตริง “ file ”

ตอนนี้เรามาถึงขั้นตอนก่อนหน้าแล้ว โดยรู้ว่ามี SSRF อยู่และทำความเข้าใจกับตัวกรองที่เราต้องเลี่ยง เราจะเพิ่ม “ File:// ” ที่ส่วนเริ่มต้นและ “ ../../../../flag txt ” หรือ “ ../../../../etc/passwd ” ต่อท้าย ด้วยวิธีนี้ เราจะสามารถอ่านไฟล์ “flag.txt” เพื่อดำเนินการท้าทายของเราได้
หมายเหตุ : ไฟล์ ต้องมี อักษรตัวพิมพ์ใหญ่อย่างน้อยหนึ่งตัวเพื่อข้ามตัวกรอง

เพื่อให้ง่ายขึ้น เราจะลบข้อมูลบางส่วนออกจากคำขอ ในกรณีนี้ เพย์โหลดของเราจะมีลักษณะดังนี้:
File:///http/../../flag.txt
บทสรุป
ในความท้าทายนี้ เราได้สาธิตวิธีเลี่ยงผ่านตัวกรองง่ายๆ ที่พยายามป้องกัน SSRF โดยไม่อนุญาตให้ใช้โปรโตคอล " file " และกำหนดให้ใช้โปรโตคอล " http " ด้วยการสร้างคำขอของเราอย่างระมัดระวังด้วยอักษรตัวใหญ่ในพารามิเตอร์ “ file ” และใช้โปรโตคอล “ File:// ” เราจึงสามารถอ่านไฟล์ตามอำเภอใจบนเซิร์ฟเวอร์ได้
ขอบคุณสำหรับการอ่านโพสต์นี้. คอยติดตามโพสต์ที่กำลังจะมีขึ้นในบล็อก และอย่าลังเลที่จะติดตามฉันบนโซเชียลมีเดียเพื่อรับการอัปเดต นอกจากนี้ โปรดทราบว่า GitHub ส่วนตัวของฉันจะมีการโพสต์เผยแพร่เป็นภาษาสเปน ลาก่อน!
Github: J-W1C3
ทวิตเตอร์: Josewice7
โทรเลข: W1C3Posts
เข้าร่วมช่องโทรเลขของฉันเพื่อรับข่าวสารล่าสุดเมื่อมีการเผยแพร่โพสต์ใหม่