เมื่อเว็บผมโดนแทรกสคริปต์แปลกปลอม

เมื่อวานมีการตรวจพบสคริปต์แปลกๆบนเว็บไซต์ของผม เล่น เอาผมมึนไปครึ่งวันเลยทีเดียว ต้องดาวน์โหลดทั้ง Server ลงมาแสกนหาไวรัส
<span class="__cf_email__" data-cfemail="a2c3c6cfcbcce2c5cdd0c3c5cdc68cc1cdcf">[email&#160;protected]</span>
<script data-cfhash='f9e31' type="text/javascript">
    /* <![CDATA[ */ ! function(t, e, r, n, c, a, p) {
        try {
            t = document.currentScript || function() {
                for (t = document.getElementsByTagName('script'), e = t.length; e--;)
                    if (t[e].getAttribute('data-cfhash')) return t[e]
            }();
            if (t && (c = t.previousSibling)) {
                p = t.parentNode;
                if (a = c.getAttribute('data-cfemail')) {
                    for (e = '', r = '0x' + a.substr(0, 2) | 0, n = 2; a.length - n; n += 2) e += '%' + ('0' + ('0x' + a.substr(n, 2) ^ r).toString(16)).slice(-2);
                    p.replaceChild(document.createTextNode(decodeURIComponent(e)), c)
                }
                p.removeChild(t)
            }
        } catch (u) {}
    }() /* ]]> */
</script>

ผลการตรวจสอบ
  • โค้ด HTML ที่เป็นส่วนของ Template ทั้งหมดไม่พบความผิดปกติใดๆ
  • โค้ด PHP ทั้งหมดไม่มีไฟล์แปลกปลอม
  • โค้ด Javascript ทั้งหมด ไม่พบความผิดปกติใดๆ
  • จากการแสกนไฟล์ทั้งหมด รวมถึงการเปรียบเทียบไฟล์ทั้งหมดกับโค้ดต้นฉบับ ไม่พบสคริปต์ใดๆแปลกปลอม
  • ทดสอบปิดการทำงานของ Javascript บนบราวเซอร์พบว่ายังมีโค้ดดังกล่าวอยู่
จากผลการตรวจสอบดังกล่าว หมายความว่าโค้ดทั้งหมดถูกแทรกมาจาก Server เลยทีเดียว (เคยพบลักษณะแบบนี้มาก่อน ที่พบว่าเป็นไวรัสจาก Server) แต่คงเป็นเรื่องใหญ่ถ้าจะต้องตรวจสอบ รวมถึงการค้นหาบน Google ก็ไม่พบข้อมูลลักษณะดังกล่าว ทำให้ผมคิดว่างานนี้โดนแน่แล้ว

ถึงบทสรุปเลยละกัน เพราะเอาจริงๆแล้วผมเองก้ไม่รู้หรอกว่ามันแวบมาตอนไหนว่าสคริปต์อาจมาจาก Cloudfare ซึ่งผมใช้บริการอยู่ (น่าจะจากการสังกตสคริปต์ว่ามีคำว่า cf ซึ่งอาจย่อมาจาก Cloudfare) ซึ่งก็เป็นจริงๆ เพราะจากการสังกตเพิ่มเติมคือตำแหน่งของสคริปต์ที่แทรกเป็นส่วนของอีเมล์ (แต่ก็ไม่ได้เป็นกับทุกอีเมล์บนเว็บไซต์) และข้อความที่แสดงว่า "email protected" ทำให้ผมเปลี่ยนไปเป้าหมายไปหาข้อมูลจาก cloudfare แทน
ซึ่งผลก็เป็นดังคาด เมื่อผมปิดการใช้งาน Cloudfare สคริปต์ก็กลับมาเป็นปกติ

จากการตรวจสอบเพิ่มเติม (บน Cloudfare) สคริปต์ดังกล่าวเป็นคุณสมบัติ Email Address Obfuscation ซึ่งเป็น Service หนึ่งของ Cloudfare ซึ่งทำหน้าที่ในการเข้ารหัส Email ป้องกันไม่ให้มีการคัดลอกอีเมล์จาก bot ต่างๆไปใช้ และแน่นอนว่าเมื่อมันเป็นบริการหนึ่งของ Cloudfare เราก็สามารถปิดการใช้งานเฉพาะบริการนี้ของ Cloudfare ได้ โดยเข้าไปที่หัวข้อ Scrape Shield บน Cloudfare และปิดการใช้งาน Email Address Obfuscation ซะ
ผู้เขียน goragod โพสต์เมื่อ 13 พ.ย. 2559 เปิดดู 4,357 ป้ายกำกับ cloudfarehack
^