автор: Мукомплекс

Это может быть ваше первое знакомство с полезной нагрузкой bash не-альфа, я не могу поспорить, что нет лучшего объяснения и статьи по этой теме, чем у меня. Это может изменить вашу точку зрения на сценарии bash и способы злоупотребления ими.

Удивляюсь, что мало кто исследует эту тему, но я провел собственное исследование, чтобы улучшить ваши хакерские навыки.

Позвольте представить вам список специальных параметров bash, используемых в Unix.

Теперь вам нужно знать, как инициализировать функцию в однострочной оболочке cmd:

имя_функции () { команды;

Как вы знаете, объявление функциональной переменной может начинаться с прописных и строчных букв алфавита, кроме «подчеркивания».

например: __="это моя переменная"

ввод: эхо $__

результат: это моя переменная

Теперь углубимся.

____() { __=$#;}; — В этой части мы объявляем функцию, которая получает число возвращаемых аргументов ($#) и назначаем как __

____ $#; — Это мы запускаем функцию и передаем ей один параметр.

echo $__ — вы получите один (1) на основе назначения функции.

Если вы используете «$-», вы получите текущую опцию спецификатор флага. Итак, что мы с этим делаем? Это будет нашим быстрым ножом для успешной сборки нашей полезной нагрузки. Я назначен как ____

Далее мы посмотрим, как создать список массивов, закодировав наш ____ с помощью {}. Из этого мы извлекаем каждый алфавит. ${____:значение индекса:размер значения

из примера выше вы знаете, что у вас ограниченный характер, но что мы можем с этим сделать? вы видите, что мы можем получить алфавит h,s и i. манипулируя и упорядочив значение, мы могли бы получить что-то вроде изображения ниже. кажется знакомым не так ли? Если вы помните мою предыдущую статью об обходе IDS, вы можете заменить недостающий алфавит на "?"

мы не можем использовать номер помните?. Итак, мы воспользуемся нашим первым приемом и заменим все числа нашим не-альфа-символом.

В результате выполните эту не-альфа-полезную нагрузку, вы можете получить оболочку! . Ага!!!

со всеми этими вещами вместе вы завершаете полезную нагрузку.

Теперь самое время! Сохраните его как challenge.py и передайте 1-й аргумент с полезной нагрузкой. Есть разные способы решения, но вам нужно сильно постараться.

import os
import sys
import re
import subprocess
value = re.sub(r'[a-zA-Z0–9]','',sys .argv[1])
os.system(значение)

Нужно что-то подобное продвинутому? конечно может. LiveOverflow!!

Ссылка на ссылку: