WordPress - додаємо довільний код HTML. Ключі від "Гітхаба". Виконуємо довільний код у GitHub Enterprise Робота з перекладом модуля за допомогою компонента Joom!Fish

Всім привіт! На сьогодні у мене заплановано невелику інструкцію — як на блозі для користувачів, які приходять з пошуку, виводити довільний коду будь-якому місці шаблону.

Практичне застосування цього способу я знаходив кілька місяців тому. У той час для відвідувачів з пошукових систем під шапкою відображалося рядком запрошення підписатися на розсилку новин .

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

Як приклад я навів передплату, але також можна організувати показ рекламних рядків, будь-які оголошення тощо. І природно, що місце розташування не обмежується шапкою, цей код можна виводити в будь-якому місці шаблону. Приступимо до практичної частини реалізації скрипту.

Функція, що визначає джерело запиту (HTTP referer)

Насамперед створюємо нову функцію fromsearch (умовний переклад - «з пошуку»), назва функції може бути будь-яким, головне врахуйте і використовуйте надалі прийняту назву. Ця функція призначена для визначення джерела переходу— будь то ПС, інший сайт тощо. Нас цікавить ПС. Отже, на WordPress у файл шаблону functions.php вставляємо код:

функція відпошуку ()( $ref = $_SERVER["HTTP_REFERER" ]; $SE = array ("/search?" , "images.google." , "search." , "yandsearch" , "/search/" , ".yahoo." ); foreach ($SE as $source) ( if (strpos($ref,$source)!==false ) return true ;) return false ;)

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

Виведення довільного коду під час переходів з пошукових систем

Наступним кроком необхідно заздалегідь задану функцію вивести на сторінку. Для цього використовуємо наступні рядки, які вставляємо у файл шаблону, наприклад я використовую index.php:

class="showfromsearch" > ДОВІЛЬНИЙ КІД div >

Наприклад, у мене повний код з підпискою виглядав так:

class="showfromsearch" > <div class ="warning" >Вперше на блозі? Підпишіться на розсилку!div > div >

Все, на цьому висновок функції закінчено, переходимо до наступного кроку.

Стилі оформлення блоку, що виводить код для відвідувачів із ПС

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

Все залежить від верстки та місця, де виводиться ця функція. Зовні мій рядок, який наводжу в прикладі, виглядав так:

Блок, позначений червоною стрілкою, показується лише користувачам, що прийшли з пошукових систем, для всіх інших переходів він не видно. Наведу свій приклад, для якого у файлі style.css ставлю стиль оформлення:

.showfromsearch ( width :900px ; border :0 ; text-align :left; margin :auto; padding :0 ; )

І знову звертаю Вашу увагу: цей стиль надано блоку з функцією, тобто. ми налаштовуємо саме вигляд і розташування самого блоку, а не те, що в ньому знаходиться. Для внутрішнього вмісту використовують свої стилі. Якщо подивитися вище на скріншот, де я виводив передплату, то рамка навколо рядка, фон та зображення присвоєно для іншого класу ( warning), який містить текст.

Ось таким чином виводиться будь-який код для переходів із пошуку, напевно повторюся - використовуючи даний метод можна показувати або інші, в той час як постійні читачі, що приходять із закладок, прямими заходами або за посиланнями на інших сайтах, не побачать цей зміст.

Сьогодні хотів би Вам розповісти про те, як на прикладі WordPress додати довільний код HTML у потрібному місці. Будь то код лічильника або код підписки на Ваш канал, реклама тощо. Вставлятимемо код через стандартний віджет WordPress.

WordPress - додаємо довільний код HTML.

Завжди є необхідність вставити довільний код HTML, зробити гарну підписку на Ваш канал у бічній панелі або просто розмістити текст на головній сторінці, варіантів маса залежить від Ваших потреб.

В останніх версіях WordPress вже є вбудований віджет для додавання довільного HTML-коду, так що встановлювати окремі плагіни не потрібно.

І так, для того щоб додати наш код нам необхідно в панелі адміністратора перейти у вкладку "Зовнішній вигляд" -> "Налаштування". Можна і через віджети, але тоді ми не побачимо одразу результату. Я віддаю перевагу більше візуальному редактору.

Вибираємо місце, куди хочемо додати наш код. Я хочу додати лічильник у бічну панель. Вибираємо "Бічну панель (Sidebar)", у Вас може відрізнятися назва, все залежить від шаблону.

З'явиться новий віджет, розкриваємо його та у вміст вписуємо наш код, не забуваємо зберігати.

В результаті отримаємо такий результат.

Таким чином Ви можете додати HTML код у будь-яке місце, де можна використовувати віджети.

На цьому все, сподіваюся, дана стаття була корисною.

Критична вразливість у корпоративній версії найпопулярнішої системи контролю версій GitHub дозволяє будь-якому авторизованому користувачеві виконувати довільний код у системі. Для експлуатації цієї вразливості потрібно застосувати відразу кілька технік: ін'єкцію в сервіс, що кеширує, і використання об'єктів.

Загальні відомості

Метод Addressable::URI.parse парсить надісланий URL і перевіряє його на відповідність специфікаціям RFC 3986, RFC 3987 та RFC 6570. Це означає, що ми можемо надсилати запити на будь-які сервери. Жодних інших перевірок адреси не виконується.

Тільки ось при спробі використовувати локальні адреси localhost, 127.0.0.1 тощо система повертає помилку Invalid host. Однак не локалхостом єдиним! Цю помилку можна обійти, використовуючи адресу 0.0.0.0 або скорочено 0 .

Давайте перевіримо, як це працює. Поставимо на прослуховування порт 31337 (nc-lp 31337-vvv) на віртуалці. І потім створимо веб-хук, вказавши URL http://0.0.0.0:31337/test . Після натискання кнопки "Додати" до нас негайно прилітає запит.



Можемо привітати себе, ми виявили SSRF-уразливість. Та не просту, а яка ще й показує відповідь сервера, якщо вона оформлена як валідний HTTP response.

Тепер треба вигадати, що з її допомогою можна зробити.

Я неспроста так завзято намагався пробитися на localhost. GitHub Enterprise - це велика і складна програма, тому всередині крутиться деяка кількість допоміжних сервісів. Поглянь на один рядок статусу.


Тут нам і «Еластик», і «Редіс», і «Мемкеш». Вибирай – не хочу!

Почнемо з Memcached. Протокол спілкування з ним текстовий, тому можна спробувати ін'єкцію. Спробуємо провернути поділ запиту (HTTP Request Splitting), для цього створимо хук із символами перекладу каретки.

Http://0:31337/Hello%0D%0Aworld

Не вийшло. Гаразд, не впадаємо у відчай, на цьому сервері ще є чим поживитися.

Пошук відповідних сервісів

Тепер настав час подивитися на відкриті порти. Виконаємо команду sudo netstat-anp | grep-i LISTEN.



Ось такий значний список сервісів, які доступні по мережі. Є де розгулятися, навіть порт 1337 відкрито 😉

Якщо пам'ятаєш, я говорив, що SSRF дозволяє читати відповідь. Це можна використовувати під час тестів на проникнення за методикою чорної скриньки. Наприклад, подивимося, що знаходиться на горезвісному порту 1337. Створимо хук http://0:1337/, відкриємо його і проскролімо до Recent Deliveries. Там, на вкладці Response, можна побачити відповідь від сервера. Якщо хочемо знову відправити запит, то до ваших послуг кнопка Redeliver.

Продовження доступне лише учасникам

Варіант 1. Приєднайтесь до спільноти «сайт», щоб читати всі матеріали на сайті

Членство у спільноті протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалів «Хакера», збільшить особисту накопичувальну знижку та дозволить накопичувати професійний рейтинг Xakep Score!

Якщо вам потрібно вставити довільний код у пости та сторінки WordPress сайту, можна скористатися плагіном Global Content Blocks. Плагін не важкий, дозволяє швидко та зручно вставити в статтю чи сторінку коди HTML, PHP, довільні коди, форми підписки, рекламу AdSense, текстові блоки. З його допомогою можна вставити код php у шаблон сайту та розмістити блоки у дві, три колонки. Плагін постійно оновлюється і його можна віднести до найкращих плагінів WordPress.

Завантажити та встановити

Проходимо стандартні кроки. Якщо ставите плагіни по , даю адресу офіційної сторінки плагіна: https://ua.wordpress.org/plugins/global-content-blocks/

Налаштування плагіна Global Content Blocks

Як таких, налаштувань плагіна немає. Після активації плагіна в консолі з'являється меню: Global Content Blocks. На сторінці плагіна бачимо вкладки управління:

  • Manage Blocks (1) - управління блоками плагіна;
  • Add a Content Blocks (2) - додавання блоків;
  • Setting (3) – імпорт блоків з іншого сайту.

Також у редакторі сайту з'являється кнопка додавання блоків плагіна.


кнопка додавання блоків Global Content Blocks у редакторі

Вставити довільний код у пости та сторінки WordPress за допомогою плагіна Global Content Blocks

Працювати з плагіном нескладно:

  • Ідемо на сторінку додавання блоку;
  • Даємо новому блоку назву (1),
  • Даємо йому латинську назву для шорткоду (2);
  • Вибираємо тип контенту (3);
  • Можна вибрати картинку (5), яка буде поміщена у блок;
  • Вставляємо зміст блоку (4).

Створюємо новий блок Global Content Blocs