ผู้สอน: ในการบรรยายนี้ และการบรรยายครั้งต่อไป
เราจะพูดถึงช่องโหว่ประเภทหนึ่งที่เรียกว่า
SQL Injections
ก่อนที่เราจะเริ่มพูดถึงว่าสิ่งนี้เกิดขึ้นได้อย่างไรและจะใช้ประโยชน์จากมันได้อย่างไร
มาเรียนรู้กันก่อนว่า SQL คืออะไร
ตอนนี้ หากคุณกำลังทำการทดสอบด้วยปากกาบนเว็บไซต์บางแห่ง
โอกาสที่เว็บไซต์นี้จะใหญ่กว่าเว็บไซต์ขนาดเล็กกว่าเล็กน้อย
ดังนั้นจึงอาจใช้ฐานข้อมูลอยู่
เว็บไซต์ส่วนใหญ่ นอกจากเว็บไซต์ธรรมดาๆ
ที่ใช้ฐานข้อมูลแล้ว ฐานข้อมูลนั้นถูกใช้เพื่อเก็บข้อมูล ดังนั้นจึงเป็นที่เก็บชื่อผู้ใช้
รหัสผ่าน บทความข่าว บล็อกโพสต์ รูปภาพ
สิ่งที่เกิดขึ้นบนเว็บไซต์อย่างแท้จริงจะถูกเก็บไว้ในฐานข้อมูลและเว็บแอปพลิเคชันจะสอบถามฐานข้อมูลแล้วแสดงข้อมูลแก่คุณหรือผู้ใช้บนหน้าจอ
เมื่อผู้ใช้ดำเนินการบางอย่าง ผู้ใช้จะอัปเดต
ลบ หรือแก้ไขข้อมูลที่มีอยู่ในฐานข้อมูล
การโต้ตอบระหว่างเว็บแอปพลิเคชันและฐานข้อมูลนี้เกิดขึ้นโดยใช้ภาษาที่เรียกว่า
SQL
ให้ฉันแสดงให้คุณเห็นว่าฉันหมายถึงอะไรในฐานข้อมูล
นี่เป็นเพียงตัวอย่าง
ฉันไม่ได้แฮ็คอะไรเลย
ฉันแค่จะเข้าสู่ระบบฐานข้อมูลที่ติดตั้งบนเครื่อง
Metasploitable ของเรา จากนั้นเราก็ แค่จะดูว่ามีอะไรติดตั้งไว้บ้าง
ดังนั้น ฉันไม่ได้ทำการแฮ็กใดๆ เลย ไม่มีอะไรที่นี่
ไม่มีอะไรแฟนซี แค่เข้าสู่ระบบ SQL ของฉัน
แล้วฉันก็ใส่ชื่อผู้ใช้เป็นรูทและ
Metasploitable ไม่ได้ใช้รหัสผ่านสำหรับรูท ซึ่งแย่จริงๆ
แต่เห็นได้ชัดว่ามันเป็นระบบที่มีช่องโหว่
ดังนั้น ฉันจะเข้าสู่ระบบและไม่ได้แฮ็คอะไรเลย
ฉันไม่ได้ทำการฉีด SQL
ใดๆ นี่เป็นเพียงเทอร์มินัลสำหรับ
MySQL ซึ่งเว็บแอปพลิเคชันจะใช้เพื่อโต้ตอบกับฐานข้อมูล
ดังนั้น ฉันแค่พยายามแสดงให้คุณเห็นว่าฉันหมายถึงอะไรโดยฐานข้อมูลและสิ่งที่บันทึกไว้ในนั้น
ดังนั้น อย่างแรกที่ฉันจะทำคือ
ฉันจะพิมพ์ในฐานข้อมูลที่แสดง
และนั่นจะแสดงฐานข้อมูลที่มีอยู่บนเซิร์ฟเวอร์เป้าหมายของเรา
และคุณจะเห็นว่าเรามีสคีมาข้อมูล นี่คือฐานข้อมูลดีฟอลต์ที่เก็บข้อมูลเริ่มต้น ข้อมูลเกี่ยวกับฐานข้อมูลอื่นๆ ทั้งหมด
ดังนั้นสิ่งนี้จึงได้รับการติดตั้งตามค่าเริ่มต้น
เมื่อคุณติดตั้ง MySQL
ส่วนที่เหลือได้รับการติดตั้งสำหรับแต่ละเว็บแอปพลิเคชันแล้ว
เราเห็นแล้วว่า เรามีอันหนึ่งสำหรับ tikiwiki
เรามีอีกอันสำหรับ owas10 และสำหรับอันนี้ Mutilllidae
เรายังมีหนึ่งชื่อ mysql อีกอันหนึ่งชื่อ
metasploit และอีกอันสำหรับ
dvwa ซึ่งเป็นอันที่เราใช้อยู่คือเว็บแอปพลิเคชัน
ดังนั้น คุณจะเห็นได้ว่า
สำหรับแต่ละเว็บแอปพลิเคชัน เรามีฐานข้อมูลจริง
และฐานข้อมูลนี้เก็บข้อมูลที่ใช้โดยแอปพลิเคชันเว็บนั้น
ขอผมแสดงให้คุณดูว่ามีอะไรอยู่ในนั้น
ผมจะใช้ฐานข้อมูล owas10
นี่คือสิ่งที่ อีกครั้ง นี่คือหนึ่งสำหรับ Mutilldae
สำหรับเว็บแอปพลิเคชันนี้
และเราสามารถเห็นตารางได้ ดังนั้นแต่ละฐานข้อมูลจึงมีตาราง
ตาราง และในตารางก็มีข้อมูล
ฉันจะบอกว่า "แสดงตาราง" เพื่อดูตารางที่เรามี
และคุณจะเห็นว่า เรามีตารางสำหรับบัญชี
ดังนั้นคุณสามารถสรุปได้ว่าตารางนี้มีข้อมูลเกี่ยวกับชื่อผู้ใช้
รหัสผ่าน และข้อมูลเกี่ยวกับผู้ใช้
เรามีตารางสำหรับบล็อก ดังนั้นอาจมีข้อมูลบล็อก โพสต์
และความคิดเห็นอยู่ในนั้น
คุณสามารถดูข้อมูลที่บันทึกไว้ บัตรเครดิต
จึงมีตารางที่มีบัตรเครดิต
นี่เป็นเว็บไซต์ขนาดใหญ่มากสำหรับเว็บไซต์ช็อปปิ้ง
จริงๆ แล้วพวกเขาจะมีตารางบัตรเครดิตและข้อมูลสำหรับบัตรเครดิตจะถูกเก็บไว้ที่นั่น
โดยทั่วไป ฐานข้อมูลจะจัดเก็บทุกอย่าง
ข้อมูลทั้งหมดที่ใช้บนเว็บไซต์
เพราะมันไม่ได้รับการจัดเก็บไว้ในไฟล์ จึงไม่มีประสิทธิภาพ
มาดูบัญชีกัน และถ้าฉันแค่พูดว่า
"เลือก" เว็บแอปพลิเคชันก็จะดึงข้อมูลจากฐานข้อมูล
เว็บแอปพลิเคชันจะเลือกข้อมูล
อัปเดต หรือลบ
ดังนั้น ฉันกำลังใช้คำสั่ง select ที่นี่ อีกครั้ง
นี่ไม่ใช่การแฮ็ก ฉันไม่ได้ทำอะไร
แค่เลือกสิ่งของ
และฉันจะเลือกดาว ซึ่งหมายถึงทุกอย่าง
จากบัญชี
อะพอสทรอฟี และอย่างที่เราเห็น เรามีรหัสบัญชี ชื่อผู้ใช้
รหัสผ่าน และลายเซ็นของบุคคลนั้น
และหากบุคคลนั้นเป็นผู้ดูแลระบบ
ตอนนี้ คอลัมน์เหล่านี้ขึ้นอยู่กับตาราง
ดังนั้นจริง ๆ แล้วเป็นคนที่ออกแบบฐานข้อมูล
ออกแบบตาราง คอลัมน์เช่นกัน จากนั้นข้อมูลจะถูกแทรกโดยเว็บแอปพลิเคชัน
ดังนั้น คุณจะเห็นได้ว่าเรามีผู้ใช้ชื่อ
admin และรหัสผ่านของพวกเขาคือ adminpass
เราจะเห็นว่าเรามีผู้ใช้ชื่อเอเดรียนและรหัสผ่านของพวกเขาคือรหัสผ่าน
ดังนั้น นี่เป็นเพียงเพื่อแสดงให้คุณเห็นว่าฐานข้อมูลมีลักษณะอย่างไร
และเพื่อให้เข้าใจ เพราะในวิดีโอต่อๆ
ไป เราจะพยายามใช้ประโยชน์จากฐานข้อมูลเหล่านี้
และเข้าถึงในลักษณะนี้
ดังนั้น ฉันเพิ่งเข้าสู่ระบบด้วยชื่อผู้ใช้และรหัสผ่าน
โดยปกติแล้วคุณจะไม่สามารถเข้าถึงได้เช่นนี้
มีเพียงผู้ดูแลเว็บเท่านั้นที่มีสิทธิ์เข้าถึง
ในวิดีโอต่อๆ ไป เราจะพยายามเรียกใช้การโจมตีเพื่อให้เข้าถึงได้ในลักษณะนี้
เพื่อที่เราจะสามารถควบคุมฐานข้อมูลได้อย่างเต็มที่
เพื่อให้เราสามารถอ่านสิ่งต่างๆ และดูว่าเราสามารถเขียนหรือแก้ไขสิ่งต่างๆ ได้หรือไม่
.