Check Point ค้นพบช่องโหว่เปิดให้ขโมยรหัสผ่านบน eBay แต่ทาง eBay ปฏิเสธที่จะแก้ไข

Check Point ได้ออกมาเปิดเผยถึงการค้นพบช่องโหว่ที่จะช่วยให้สามารถส่ง JavaScript ไปบน eBay และสั่งให้ทำงานบนเครื่องของผู้ใช้งาน eBay รายอื่นๆ ได้ ปัญหานี้อาจนำไปสู่การทำ Phishing และ Data Theft ได้ในอนาคต โดยหลังจากที่ Check Point แจ้งทาง eBay ไปแล้ว eBay ก็ได้ตอบกลับมาว่าจะไม่แก้ไขช่องโหว่นี้ และช่องโหว่นี้ก็ยังคงเปิดให้โจมตีได้จนถึงทุกวันนี้

Credit: Amir Kaljikovic/ShutterStock
Credit: Amir Kaljikovic/ShutterStock

Roman Zaikin นักวิจัยทางด้านความปลอดภัยจาก Check Point เป็นผู้ค้นพบช่องโหว่นี้ โดยการโจมตีช่องโหว่นี้จะใช้เทคนิคที่ไม่เป็นมาตรฐานนักที่มีชื่อว่า “JSF**K” โดยวิธีการโจมตีก็คือต้องเริ่มต้นจากการสร้างร้านค้าบน eBay เสียก่อน จากนั้นก็แทรกโค้ดโจมตีเข้าไปในช่อง Item Description

โดยทั่วไปแล้ว eBay จะทำการห้ามผู้ใช้งานจากการใส่ Script หรือ iFrame ลงไปยังช่อง Item Description ด้วยการกรอง HTML Tags เหล่านี้ออก แต่ถ้าหากใช้วิธีการ JSF**K ผู้โจมตีจะสามารถแทรกโค้ด Javascript ได้ตามต้องการในช่อง Item Description ได้ และอาศัยช่องทางนี้ในการโจมตีนั่นเอง

การกรองช่อง Item Description ของ eBay นั้นใช้วิธีการง่ายๆ ด้วยการดึงข้อมูลที่เป็น Alpha-Numeric ออกจาก Script Tag เท่านั้น ซึ่งวิธีการนี้ไม่ครอบคลุมถึงการตรวจสอบการโจมตีด้วย JSF**K

โค้ดทั่วๆ ไปจะมีหน้าตาแบบนี้ (ภาพประกอบทั้งหมดถัดจากนี้มากจากบล็อกของ Check Point นะครับ)

jsfk01

แต่โค้ดที่เป็นแบบ JSF**K จะมีหน้าตาแบบนี้

jsfk02

และด้วยการแทรก Script แบบนี้เข้าไปก็ทำให้ผู้โจมตีสามารถสร้างหน้า Popup บน eBay ได้อย่างอิสระ และเหยื่อที่เข้ามาในหน้าสินค้าที่วางโค้ดเหล่านี้เอาไว้ก็จะสังเกตได้ยากมากว่านี่คือการโจมตี ทำให้อาจถูก Phishing หรือหลอกดักรหัสผ่านไปได้ง่ายๆ หรือส่ง Malware/Ransomware ไปให้โหลดก็ได้เช่นกัน

jsfk03

ที่น่ากลัวก็คือ eBay บอกว่าจะไม่แก้ไขปัญหานี้เพราะไม่ถือว่าเป็นช่องโหว่ครับ ทั้งๆ ที่ทีมงาน Check Point ได้ Proof of Concept ให้ทางทีม Security ของ eBay ดูและ Bypass ระบบรักษาความปลอดภัยกันตรงๆ จนสำเร็จต่อหน้าต่อตา ทาง Check Point ก็ได้แต่ออกมาบอกว่าหวังว่า eBay จะทำอะไรซักอย่างกับปัญหานี้

 

JSF**K ทำงานอย่างไร

แนวคิดอง JSF**K คือการใช้สัญญลักษณ์ 6 ตัวได้แก่ []()!+ ในการสร้างโค้ดที่ต้องการขึ้นมาจากความยืดหยุ่นของ JavaScript ที่สามารถแปลง Type ของตัวแปรต่างๆ ได้ง่ายๆ และด้วยการอาศัยแนวคิดนี้ก็ทำให้เราสามารถสร้างค่าตัวเลขขึ้นมาจากสัญลักษณ์ 6 ตัวนั้นได้ และนำตัวเลขเหล่านั้นไปประกาศเป็น Array เราก็จะสามารถสร้างตัวอักษรและสัญลักษณ์ต่างๆ ขึ้นมาได้ ถึงแม้จะไม่ครบ 26 ตัว แต่เมื่อนำมาต่อกันก็สามารถนำไปสร้างเป็น Function ต่างๆ เพื่อมาใช้สร้างตัวอักษรและสัญลักษณ์เพิ่ม เพื่อนำมาใช้ในการโจมตีได้

jsfk04

jsfk05

jsfk06

jsfk07

ด้านล่างนี้คือตัวอย่างโค้ด alert(1) นะครับ

jsfk08

ใครสนใจลองอ่านรายละเอียดเต็มๆ ได้จากที่ http://blog.checkpoint.com/2016/02/02/ebay-platform-exposed-to-severe-vulnerability/ เลยนะครับ มีสอนวิธีสร้างตัวอักษรและสัญลักษณ์รวมถึงฟังก์ชั่นต่างๆ ที่ใช้ได้อยู่ค่อนข้างครบ อ่านสนุกดีเหมือนกันครับ และช่วงนี้ใครเข้า eBay ก็ระวังกันหน่อยนะครับ

ด้านล่างนี้เป็นตัวอย่างการโจมตีครับผม

ที่มา: http://blog.checkpoint.com/2016/02/02/ebay-platform-exposed-to-severe-vulnerability/


About techtalkthai

ทีมงาน TechTalkThai เป็นกลุ่มบุคคลที่ทำงานในสาย Enterprise IT ที่มีความเชี่ยวชาญทางด้าน Network, Security, Server, Storage, Operating System และ Virtualization มารวมตัวกันเพื่ออัพเดตข่าวสารทางด้าน Enterprise IT ให้แก่ชาว IT ในไทยโดยเฉพาะ

Check Also

‘League of Entropy’ บริการ Random Number จาก Cloudflare

ปัญหาของ Random Number นั้นมีนานแล้วและไม่ใช่เรื่องตลก หากลองถามเพื่อนโปรแกรมเมอร์หลายท่านอาจบอกว่าเลขที่สุ่มขึ้นมาของฟังก์ชันนั้นอาจจะยังไม่ใช่การสุ่มที่แท้จริง ทั้งนี้หลายแอปพลิเคชันต่างใช้ความน่าจะเป็นเหล่านี้ในกรณีต่างๆ เช่น ด้านความมั่นคงปลอดภัย แอปพลิเคชันล็อกเตอรรี่ออนไลน์ หรืออื่นๆ เป็นต้น วันนี้ Cloudflare จึงได้เปิดบริการการสร้างเลขสุ่มนี้อย่างจริงจังขึ้นภายใต้ชื่อ ‘League …

Twitter ลบหลายพัน Accounts ปลอมที่มุ่งหวังทางการเมืองออกจากระบบ

Twitter ได้ออกมาเปิดเผยว่าได้ทำการลบ Accounts ปลอมออกจากระบบรวมทั้งสิ้น 4,779 รายชื่อ เนื่องจากเชื่อว่า Accounts เหล่านี้ถูกสร้างและใช้งานเพื่อหวังผลทางการเมือง คาดมีส่วนเกี่ยวข้องกับประเทศอิหร่านและรัสเซีย