พื้นหลัง
ฉันได้รับสัญญาเพื่อช่วย บริษัท ดูแลเซิร์ฟเวอร์ของพวกเขา ฉันทำงานกับโปรเจค PHP บางตัว แต่ก็ยังดูปัญหาด้านประสิทธิภาพและเมื่อเร็ว ๆ นี้สแกนบันทึกการแฮ็กเกอร์
พวกเหล่านี้ใช้เซิร์ฟเวอร์มาระยะหนึ่งและมีสิ่งที่ฉันจะเรียกว่าแอปพลิเคชันรุ่นเก่าที่ขาสุดท้าย มันใช้คำพูดเวทมนต์ตัวแปรทั่วโลก (ซึ่งอนุญาตให้$id
เขียนทับโดย$_GET['id']
) ใช้. htaccess เป็นความปลอดภัยเพียงอย่างเดียวในบางกรณีคุณตั้งชื่อมัน ฝันร้ายด้านความปลอดภัยและการเขียนโปรแกรม
เราเคยถูกแฮ็กในอดีตโดยส่วนใหญ่ใช้ SQL injections ซึ่งจะรันSLEEP(99999999)
คำสั่งและทำหน้าที่เหมือนโจมตี DOS โชคดีที่พวกเขาไม่ได้เรียกใช้ "โต๊ะบ๊อบบี้น้อย"
XKCD: http://xkcd.com/327/
ดังนั้นฉันจึงเขียนคำสั่ง SQL ที่มีช่องโหว่จากmysql_query()
(ไม่ใช่ mysqli) ไปยังธุรกรรม PDO ฉันยังวิเคราะห์การค้นหาSLEEP
และUNION
ที่เราไม่ได้ใช้ แต่การฉีดมี จนถึงตอนนี้ดีมาก
ฉบับล่าสุด
เมื่อเร็ว ๆ นี้เราได้รับการบอกว่ามีการเปลี่ยนแปลงบันทึกในฐานข้อมูลสำหรับผู้ใช้เช่นที่อยู่อีเมลของพวกเขาไปเป็นข้อมูลที่ผู้ส่งอีเมลขยะทำ
ฉันสังเกตเห็นคอลัมน์ของพวกเขาไม่มีlast_modified
คอลัมน์ดังนั้นเราจึงไม่สามารถรู้ได้ว่าเมื่อใดที่มีการเปลี่ยนแปลง ฉันเพิ่มคอลัมน์นั้น แต่มันแทบจะไม่เป็นขั้นตอนแรก
เมื่อฉันดูตารางนี้ฉันสังเกตว่ารหัสผ่านไม่ได้ถูกใส่เกลือหรือถูกแฮชเพียงบันทึกเป็นข้อความธรรมดา
การสื่อสารลูกค้า
ฉันจะเข้าใกล้พวกเขาเกี่ยวกับสถานการณ์ทั้งหมดในฐานะผู้รับเหมาโดยไม่ล้มแขนของฉันเหมือนคนบ้าได้อย่างไร คำแนะนำใด ๆ? ฉันกำลังคิดวิธีสงบ
ปัญหา # 1 สรุป ทำไมนี่เป็นปัญหา จะเกิดอะไรขึ้นถ้าสิ่งนี้ไม่ได้รับการแก้ไข การแก้ไขที่แนะนำ ปัญหา # 2 สรุป ทำไมนี่เป็นปัญหา จะเกิดอะไรขึ้นถ้าสิ่งนี้ไม่ได้รับการแก้ไข การแก้ไขที่แนะนำ