Як розшифрувати прибрати посилання з футера в шаблоні WordPress

Як розшифрувати прибрати посилання з футера в шаблоні WordPress

Всім привіт сьогодні розповім як прибрати з footer або як його ще називають підвал, посилання в шаблоні на WordPress.

Вчора возився з одним Шаблончики, який знайшов на зарубіжному сайті. Я взагалі з wordpress'ом познайомився недавно (нарешті руки до нього дійшли), але вже встиг пару раз почути про закодовані футери. Що вони з себе представляють і навіщо їх кодують - не знав, але на замітку взяв - треба перевіряти footer.php в шаблонах (так .. про всяк випадок). Ось вчора мені такий шаблон і попався, з закодованим підвалом.

Відкривши файл footer.php я досвідченим оком побачив текст в кодуванні Base64. Текст закодований в цьому кодуванні зазвичай закінчується символами "==".

Ось код, якщо кому цікаво:

<? php $ _F = __ FILE __; $ _ X = 'Pz48ZDR2IDRkPSJmMjJ0NXIiPgkNCgk8Z DR2IGNsMXNzPSJmMjJ0NXJsNG5rcyI + IA0KCQkNCgkJRDVzNGduNWQgYnk6IDwx IGhyNWY9Imh0dHA6Ly93d3cucDJ3NXJuNXRzaDJwLjF0LzFkMXB0NXIvZjFocno1 M2c1L2YycmQvIiB0NHRsNT0iRjJyZCI + RjJyZDwvMT4gOjogDQoJCQ0KCQkgSW4 gQzJsbDFiMnIxdDQybiB3NHRoIDwxIGhyNWY9Imh0dHA6Ly93d3cuZjRyNWMxcz RuMnMuYzJtIiB0NHRsNT0iT25sNG41IEMxczRuMnMiPk9ubDRuNSBDMXM0bjJzPC 8xPiwgPDEgaHI1Zj0iaHR0cDovL3d3dy5jaDUxcC1jMXItNG5zM3IxbmM1LXQ0cHM uYzJtIiB0NHRsNT0iQzFyIEluczNyMW5jNSI + QzFyIEluczNyMW5jNTwvMT4sIDwxI GhyNWY9Imh0dHA6Ly93d3cuaDJtNTRtcHIyIiB0NHRsNT0iSDJtNSBJbXByMnZtN W50Ij5IMm01IEltcHIydm01bnQ8LzE + DQoJCQ0KCTwvZDR2Pg0KPC9kNHY + DQo 8L2Q0dj4NCjwvYjJkeT4NCjwvaHRtbD4NCg0K'; eval (base64_decode ( 'JF9YP WJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM 0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GS UxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw =='));?>

Наступний крок: декодувати цей текст. Вводимо в гуглі "online base64 decode" і потрапляємо сюди: www.motobit.com/util/base64-decoder-encoder.asp.

Придивившись до коду, копіюємо першу частину зашифрованого підвалу:

Pz48ZDR2IDRkPSJmMjJ0NXIiPgkNCgk8ZDR2IGNsMXNzPSJmMjJ0NXJsNG5rcyI + IA0KCQkNCgkJR DVzNGduNWQgYnk6IDwxIGhyNWY9Imh0dHA6Ly93d3cucDJ3NXJuNXRzaDJwLjF0LzFkMXB0NX IvZjFocno1M2c1L2YycmQvIiB0NHRsNT0iRjJyZCI + RjJyZDwvMT4gOjogDQoJCQ0KCQkgSW4gQ zJsbDFiMnIxdDQybiB3NHRoIDwxIGhyNWY9Imh0dHA6Ly93d3cuZjRyNWMxczRuMnMuYzJtIiB0N HRsNT0iT25sNG41IEMxczRuMnMiPk9ubDRuNSBDMXM0bjJzPC8xPiwgPDEgaHI1Zj0iaHR0cDovL3 d3dy5jaDUxcC1jMXItNG5zM3IxbmM1LXQ0cHMuYzJtIiB0NHRsNT0iQzFyIEluczNyMW5jNSI + QzF yIEluczNyMW5jNTwvMT4sIDwxIGhyNWY9Imh0dHA6Ly93d3cuaDJtNTRtcHIyIiB0NHRsNT0iSDJ tNSBJbXByMnZtNW50Ij5IMm01IEltcHIydm01bnQ8LzE + DQoJCQ0KCTwvZDR2Pg0KPC9kNHY + D Qo8L2Q0dj4NCjwvYjJkeT4NCjwvaHRtbD4NCg0K

Тикаємо на сайті "decode the data from a Base64 string (base64 decoding)" - тобто говоримо що ми хочемо з кодування отримати текст, а не навпаки. І тиснемо кнопку "Convert the Data source"

В результаті бачимо наступне:

?> <d4v 4d = "f22t5r"> <d4v cl1ss = "f22t5rl4nks"> D5s4gn5d by: <1 hr5f = "http: //www.p2w5rn5tsh2p.1t/1d1pt5r/f1hrz53g5/f2rd/" t4tl5 = "F2rd"> F2rd </ 1> :: In C2ll1b2r1t42n w4th <1 hr5f = "http: //www.f4r5c1s4n2s.c2m" t4tl5 = "Onl4n5 C1s4n2s"> Onl4n5 C1s4n2s </ 1 "," 1 hr5f = "http: //www.ch51p -c1r-4ns3r1nc5-t4ps.c2m "t4tl5 =" C1r Ins3r1nc5 "> C1r Ins3r1nc5 </ 1", "1 hr5f =" http: //www.h2m54mpr2 "t4tl5 =" H2m5 Impr2vm5nt "> H2m5 Impr2vm5nt </ 1> < / d4v> </ d4v> </ d4v> </ b2dy> </ html>

Подивившись на цю абракадабру і на слова t4tl5 і d4v, можна помітити що замість "4" повинна бути буква "i". Ага, значить деякі символи замінені.

Подивимося-ка що в наступній частині закодовано.

копіюємо:

JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZS csJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0Y uIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw ==

Декодируем так само, як я написав вище і отримуємо:

$ _X = base64_decode ($ _ X); $ _ X = strtr ($ _ X, '123456aouie', 'aouie123456'); $ _ R = ereg_replace ( '__FILE __', " '". $ _ F. "'", $ _ X); eval ($ _ R); $ _ R = 0; $ _ X = 0;

Знову-таки, досвідчене око помічає те, що нам потрібно: "strtr ($ _ X, '123456aouie', 'aouie123456')".
Тут функція замінює "1" на "а", "2" на "о", "3" на "u", "4" на "i", і так далі.
Запускаємо блокнот, вставляємо

?> <d4v 4d = "f22t5r"> <d4v cl1ss = "f22t5rl4nks"> D5s4gn5d by: <1 hr5f = "http: //www.p2w5rn5tsh2p.1t/1d1pt5r/f1hrz53g5/f2rd/" t4tl5 = "F2rd"> F2rd </ 1> :: In C2ll1b2r1t42n w4th <1 hr5f = "http: //www.f4r5c1s4n2s.c2m" t4tl5 = "Onl4n5 C1s4n2s"> Onl4n5 C1s4n2s </ 1 "," 1 hr5f = "http: //www.ch51p -c1r-4ns3r1nc5-t4ps.c2m "t4tl5 =" C1r Ins3r1nc5 "> C1r Ins3r1nc5 </ 1", "1 hr5f =" http: //www.h2m54mpr2 "t4tl5 =" H2m5 Impr2vm5nt "> H2m5 Impr2vm5nt </ 1> < / d4v> </ d4v> </ d4v> </ b2dy> </ html>

Тиснемо "Правка" -> "Замінити". Говоримо що "1" замінити на "а", ну а далі, думаю Ви зрозуміли.

В результаті у нас вийшло:

?> <div id = "footer"> <div class = "footerlinks"> Designed by: <a href="http://www.powernetshop.at/adapter/fahrzeuge/ford/" title="Ford"> Ford </a> :: In Collaboration with <a href="http://www.firecasinos.com" title="Online Casinos"> Online Casinos </a> , <a href = "http://www.cheap -car-insurance-tips.com "title =" Car Insurance "> Car Insurance </a>, <a href="http://www.homeimpro" title="Home Improvment"> Home Improvment </a> < / div> </ div> </ div> </ body> </ html> v> </ bjdy> </ html>

З отриманого видно, що крім пари зайвих посилань в зашифрованому підвалі нічого страшного не зберігалося. Залишилося тільки видалити зайві посилання і додати свої.

UPD: unphp.net - сервіс по декодуванню і деобфускаціі php-коду

Мені сподобалася ще одна ідея як легко позбавлятися від закодованого підвалу. Бувають дуже "розумні" теми, які перевіряють не змінився чи файл підвалу footer.php, і якщо раптом підвал змінювався - будуть якимось чином лаятися. Але можна зробити фінт вухами: створити свій файл footer2.php який і відображати в шаблоні, а footer.php не відображати. В результаті і вовки ситі і вівці цілі =)