ผู้สอน: ในการบรรยายนี้
ฉันต้องการแสดงให้คุณเห็นว่าเราสามารถใช้การฉีด
SQL เพื่ออ่านไฟล์ใดๆ ในเซิร์ฟเวอร์ได้อย่างไร
แม้ว่าไฟล์นั้นจะอยู่นอกรูท www เราก็จะสามารถอ่านมันได้เหมือนกับการเปิดเผยไฟล์
ช่องโหว่ และเราจะดูด้วยว่าเราจะใช้มันเพื่อเขียนไฟล์และอัปโหลดไปยังระบบได้อย่างไร เช่นเดียวกับช่องโหว่ในการอัปโหลดไฟล์
อย่างแรกที่เราจะดูกันก็คือการอ่านไฟล์
และฉันจะตั้งค่าทุกอย่างให้เป็นโมฆะที่นี่
ฉันมีคำแถลงของฉันที่นี่
และฉันจะเลือกหนึ่ง และฉันจะปล่อยให้ข้อสอง
เพราะฉันจะทำเรื่องนั้น
และเราจะทำค่าว่างอีกสามค่าตรงนี้
เป็นโมฆะ
โมฆะ โมฆะ
ดังนั้นเราจึงเลือก null บางอย่าง null, null, null
ห้าเพราะเรามีบันทึกห้ารายการ
เมื่อเราเรียงลำดับตาม
และแทนที่จะเลือกบางอย่าง จำไว้ว่า
ในวิดีโอที่สาม เราได้เลือกฐานข้อมูล
และมันแสดงให้เราเห็นฐานข้อมูลปัจจุบัน
สิ่งที่ฉันอยากทำตอนนี้คือ
ฉันต้องการทำฟังก์ชันอื่น และฟังก์ชันนั้นเรียกว่า
load_file
และในที่นี้ ฉันจะตั้งค่าไฟล์ที่ฉันต้องการโหลด
และฉันจะใช้ไฟล์เดียวกันกับที่เราตรวจสอบในช่องโหว่ของการรวมไฟล์ และมันก็เป็น
etc/passwd
เรากำลังพยายามอ่านไฟล์นั้น
และคำสั่งของเราคือ union select ไฟล์นั้น แค่นั้นเอง
ดังนั้นฉันจะคัดลอกสิ่งนี้
และฉันจะฉีดมันที่นี่
และฉันจะเพิ่ม %23 ซึ่งเป็นคำสั่งของฉัน
และอย่างที่คุณเห็น
เราจัดการเพื่ออ่านข้อมูลทั้งหมด
เนื้อหาทั้งหมดของ etc/passwd แม้ว่าจะไม่ได้อยู่ในรูทของเว็บก็ตาม
ดังนั้นจึงถูกเก็บไว้ใน etc/passwd
ดังนั้นเราจึงสามารถอ่านอะไรก็ได้ในเซิร์ฟเวอร์จากเว็บไซต์อื่น
จากไฟล์อื่นๆ ที่ใดก็ได้ในเซิร์ฟเวอร์
เราสามารถอ่านได้โดยการระบุเส้นทางแบบเต็มของไฟล์นั้น
สิ่งต่อไปที่ฉันต้องการแสดงให้คุณเห็นคือการเขียนไปยังเซิร์ฟเวอร์
ที่จริงแล้วเราจะเขียนสิ่งต่าง
ๆ ไปที่เซิร์ฟเวอร์และมันมีประโยชน์มากเพราะคุณสามารถเขียนโค้ดใดก็ได้ที่คุณต้องการ
ตัวอย่างเช่น คุณสามารถเขียนโค้ดสำหรับสคริปต์ PHP
คุณสามารถเขียนโค้ดของ เชลล์ ไวรัส หรือโค้ด PHP เพื่อเชื่อมต่อกับคุณ
ดังนั้นโดยพื้นฐานแล้วมันจะทำตัวเหมือนเป็นช่องโหว่ในการอัพโหลดไฟล์
และเพื่อที่จะทำอย่างนั้น
ฉันจะเขียนโค้ดที่ฉันอยากทำที่นี่
และฉันจะเรียกมันว่า ตัวอย่างเช่น
ตัวอย่าง ตัวอย่าง
และเราจะใช้ฟังก์ชันที่เรียกว่า outfile ดังนั้นเราจะทำใน
outfile จากนั้นเราจะระบุว่าเราต้องการเก็บไฟล์นั้นไว้ที่ใด
ในสถานการณ์ที่ดีที่สุด ในตอนนี้
คุณจะสามารถเขียนไปยังเว็บรูทของคุณได้ และนั่นหมายความว่าคุณสามารถเข้าถึงไฟล์ผ่านเบราว์เซอร์และดำเนินการได้
ดังนั้นคุณสามารถอัปโหลดไฟล์ Weevely แล้วเชื่อมต่อและทำสิ่งต่างๆ
ได้ เช่นนั้น.
เลยลองทำดูก่อน
เราจะทำใน var/www และนั่นคือรูทเว็บของเรา ดังนั้นเราจะสามารถเข้าถึงสิ่งต่าง
ๆ ผ่านมันได้ หรือคุณสามารถใส่มันลงใน var/www
แล้วใส่ mutillidae ไว้ข้างหลังเพื่อเก็บไว้ในนั้น
ดังนั้นคำสั่งจึงง่ายมาก
ยูเนี่ยนเลือกอีกครั้ง
ตรวจสอบให้แน่ใจว่าคุณตั้งค่าทุกอย่างเป็น
null เพื่อให้ไม่มีอะไรถูกเขียนลงในไฟล์ ยกเว้นสิ่งที่คุณใส่ในที่นี้
และฉันใส่ตัวอย่าง และมันจะถูกเก็บไว้ในไฟล์ของเราใน var/www/mutillidae
และจำตัวอย่างนั้นได้
.txt
ลองรันสิ่งนี้และดูว่าใช้งานได้หรือไม่
ตอนนี้มันไม่ได้ผล
และถ้าคุณลงมาที่นี่
คุณจะเห็นว่า SQL หรือ MySQL ไม่ได้รับอนุญาตให้สร้างหรือเขียนลงในไดเร็กทอรีนี้
ปัญหาคือเราไม่ใช่ สิทธิ์ที่เราได้ไม่อนุญาตให้เราเขียนไปยังตำแหน่งนี้โดยเฉพาะ
เพื่อทดสอบการหาประโยชน์นี้
ฉันจะเปลี่ยนตำแหน่งนี้เป็น tmp ซึ่งเป็น temp และคุณจะเห็นว่าคุณสามารถเขียนไปยัง
temp ได้จริง ดังนั้นในชีวิตจริงในสถานการณ์ต่างๆ
ขึ้นอยู่กับว่า คุณสามารถลองดูว่า
คุณสามารถเขียนสิ่งต่าง ๆ ได้หรือไม่
ในตอนนี้เรากำลังพยายามเขียนถึง
temp และหากเราอ่านใน
temp หากเราเคลียร์แล้ว
ls และ /tmp คุณจะเห็นว่าเรามีสิ่งที่เรียกว่า
ตัวอย่าง และถ้าคุณพยายามอ่าน คุณจะ เห็นว่ามันมี
เห็นได้ชัดว่ามันมีเนื้อหาของสิ่งที่เราทำก่อนหน้านี้ ซึ่งเป็นการเลือกปกติที่คุณจะเห็น
ดังนั้นสิ่งที่คุณเห็นในการวางสิ่งของสำหรับผู้ดูแลระบบแล้วแสดงให้เราเห็นว่ามีอะไรอยู่ในนั้น
ตัวอย่างคือสิ่งที่เราต้องการจะเขียนลงในไฟล์
ตอนนี้คุณสามารถกำจัด admin
และ adminpass ได้อย่างชัดเจนโดยเพียงแค่ใส่ชื่อผู้ใช้ผิด
และไม่มีอะไรจะแสดงที่นี่ ดังนั้นสิ่งเดียวที่คุณจะเห็นคือผลลัพธ์ซึ่งเป็นตัวอย่าง
แต่อีกครั้ง สิ่งนี้จะมีประโยชน์เฉพาะในกรณีที่คุณสามารถเขียนไปยังเว็บเซิร์ฟเวอร์ของคุณ
ดังนั้นคุณจึงสามารถเข้าถึงได้จากนั้นใช้เชลล์ของคุณ
หรือใช้เพย์โหลดของคุณ และใช้ประโยชน์จากระบบต่อไป