ทำความรู้จักกับ Business logic vulnerability

ryudokung
2 min readMar 26, 2021

--

สวัสดีอีกครั้งครับ วันนี้เราจะพามารู้จักกับ Business logic vulnerability โดยวันนี้จะยกตัวอย่างของ ช่องโหว่ Excessive trust in client-side controls ที่เป็น Lab ของ https://portswigger.net เว็บของ Pentest Tools ช่องดังนั่นก็คือ Burp Suite นั่นเอง

หน้าตาของ Website ของ Lab จะเห็นว่าเป็น website ซื้อขายของ e-commerce ธรรมดา

หลังจากนั้นดำเนินการ Login เข้าไปยัง website

หลังจากดำเนินการ Login เข้าไปที่ Website ก็จะสามารถ Add Product เข้าไปยัง รถเข็นได้

ตรวจสอบสินค้าในรถเข็นว่ามีรายการเข้ามาหรือไม่

ดำเนินการเปิด Burp Suite เพื่อดู Activity ย้อนหลังที่ทำรายการ สังเกตที่ /cart คือ Activity ที่เราได้ดำเนินการในรถเข็น

จากนั้นคลิกขวา เลือก send to reperter ก็จะเห็น request ว่า Web Application ดำเนินการส่ง request ไปยัง webserver ด้วย parameter ว่าอะไรบ้าง โดยสังเกตุที่ price ว่าเราสามารถแก้ราคาได้หรือไม่

ลองแก้ price = 5 ว่าสามารถเปลี่ยน parameter ได้หรือไม่

หลังจากนั้นกลับมาดูที่หน้า cart ว่า summary เป็นอย่างไร และดำเนินการเพิ่ม qty = 2 ว่ามีการคำนวนใหม่หรือไม่ และดำเนินการ place order

จังสังเกตได้ว่า place order สำเร็จ และ Total = $0.10 ผิดกับราคาที่กำหนดไว้คือ ชิ้นลำ $1337.00 และ WebServer มีการตัดเงินไปจาก Store Credit เรียบร้อย

สรุป

ดังที่กล่าวมาข้างต้น ช่องโหว่ที่นี้เป็นช่องโหว่ที่มีการเชื่อถือ Client มากเกินไปโดยไม่ได้มีการตรวจสอบ Verify parameter ที่ฝั่ง Server อีกทีจึงทำให้มีการสั่งซื้อสินค้าได้ในราคาที่ไม่ควรจะเป็น และช่องโหว่ของ Business Logic ยังพบได้กับเกม Online หลายๆเกม เช่นล่าสุด เมื่อ 2 เดือนที่แล้วเป็นของเกม Cookie run Kingdom

https://www.thisisgamethailand.com/content/Cookie-Run-Kingdom-Cookie-Cutter-Scandal-Problem.html

เมื่อผู้เล่นดำเนินการเติมเงินและเปิดกาชา เพื่อรับตัวละครนั้น หากได้รับตัวละครซ้ำเมื่อปลดล็อกดาวทั้งหมดแล้ว ผู้เล่นจะได้รับ ค่าไมล์เลจเพื่อนำไปสุ่มตัวละครได้อีก โดย Senario จะเป็นดังนี้ ซ้ำ -> ได้ไมล์เลจ ->แลกพิมพ์ตัด -> สุ่มตัวละครใหม่ -> ได้ไมล์เลจ ->แลกพิมพ์ตัด -> สุ่มตัวละครใหม่ แบบนี้ไปเรื่อย ๆ จนกลายเป็นการสุ่มแบบไม่มีขีดจำกัด

--

--