Обучение
Life-HackПриветствую всех, давно не писал статьи, на моем любимом борде так как очень был занят в offlin-e, но я вернулся не на долго правда но все же я с Вами!
В этой статье речь пойдет о обхода WAF! Вы конечно же спросите что за херь такая waf!? Отвечу по своему, к примеру Вы нашли по дорку уязвимый сайт закинули ссылку например в havij (морковка) или в jsql ну и конечно же в sqlmap и он не пробивается (сайт) и через прокси (--proxy=) и с заменой агента(--user-agent)
и т.д., так вот этот WAF и не дает нам с успехом это сделать собственно, он для этого и предназначен защищать сайты от нас))
Но спешу Вас обкрадывать ниже я представлю Вам список tamper-ов, которые с легкостью обходят эту защиту не всегда, но в основном шансы пробития защиты увеличиваются, а также представлю связки tamper-ов которые подходят для определенных баз данных их бывает несколько видов SQLite, MySQL, ну и конечно всем знакомый обладателями kali-linux --> PostgreSQL и т.д.
вот список tamper-ов с моим корявы переводом)
apostrophemask.py заменяет символ одинарной кавычки на символы UTF-8 apostrophenullencode.py заменяет символы одинарной кавычки на Unicode двойного байта appendnullbyte.py, добавляет нулевой символ в конце кодирования полезной нагрузки base64encode.py использует кодирование Base64 для данной полезной нагрузки between.py, “the BETWEEN the AND # #” is replaced with “NOT BETWEEN 0 AND #” replace greater-than sign “>” equal sign “=” bluecoat.py заменяет пробелы допустимым случайным пробелом, сопровождаемым запросом. Альтернативно ставится знак равенства “=” chardoubleencode.py использует двойное кодирование URL для данной полезной нагрузки все символы (не, обрабатываетт символы, уже закодированные), charencode.py использует кодирование URL для данной полезной нагрузки, все знаки (не, обращается со знаками, уже закодированными), charunicodeencode.py использует кодирование URL Unicode для данной полезной нагрузки незакодированного характера (характер уже не обращается закодированный), concat2concatws.py заменитель, заменяет “CONCAT_WS (0), 0, 0), A, B)” на“CONCAT (A, B)” equaltolike.py заменяет похожие операторы на знак равенства “=” greatest.py вместо “>” использует “GREATEST” функцию halfversionedmorekeywords.py добавляет произвольные MySQL коментарии перед каждым ключевым словом ifnull2ifisnull.py with “IF (ISNULL (A), B, A)” заменяет “IFNULL (A, B)” примеры lowercase.py заменяет значения из каждого нижнего регистра символа и ключевого слова modsecurityversioned.py окружает полный запрос комментариями modsecurityzeroversioned.py окружает комментарии, "0" полным запросом multiplespaces.py добавляет больше пробелов вокруг ключевых слов SQL nonrecursivereplacement.py заменяет предопределенные ключевые слова, используя представленные SQL overlongutf8.py преобразовывает все символы в полезную нагрузку percentage.py добавляет знак процента % перед каждым символом randomcase.py случайная символьная замена регистра для каждого ключевого слова randomcomments.py вставляет случайные комментарии в ключевые слова SQL securesphere.py добавляет последовательность через специальную конфигурацию sp_password.py Добавляет ‘sp_password’ до конца полезной нагрузки для автоматической путаницы от регистрационных файлов DBMS space2comment.py заменяет пробелы “/ ** /” space2dash.py подчеркивает штриховой линией символ комментария “-” сопровождает перевод строки в случайный ряд символов и заменяет пробелы space2hash.py комментируют символ “#” сопровождаемый переводом строки в случайный ряд символов и заменяют пробел space2morehash.py тоже самое что и hash.py space2mssqlblank.py заменяет пробелы, рядом допустимого кандидата среди набора случайного символьного пробела space2mssqlhash.py комментируют символ “#” сопровождаемый пробелом, чтобы заменить на новую строку space2mysqlblank.py заменяет пробелы рядом допустимого кандидата среди набора случайного символьного пробела space2mysqldash.py подчеркивает штриховой линией символ комментария “-” сопровождает и заменяет символы перевода строки пробелы space2plus.py добавляет плюс “+” с пробелами space2randomblank.py заменяет пробелы рядом допустимого кандидата, среди набора, случайного символьного пробела unionalltounion.py заменяет UNION ALL SELECT на UNION SELECT unmagicquotes.py использует и заменяет multi-byte% bf% 27 и конец общих сведений заменяет пробелами varnish.py добавляет в HTTP header “X-originating-IP” для обхода WAF versionedkeywords.py окружает каждый функциональный клавишей не комментируя с базы MySQL versionedmorekeywords.py окружает каждое ключевое слово "запрос" в MySQL записи
вот и связки tamper-ов:
это универсальный набор подходит для всех баз данных:
tamper=apostrophemask,apostrophenullencode,base64encode,between,chardoubleencode,charencode,charunicodeencode,equaltolike,greatest,ifnull2ifisnull,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2plus,space2randomblank,unionalltounion,unmagicquotes
MSSQL:
tamper=between,charencode,charunicodeencode,equaltolike,greatest,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,sp_password,space2comment,space2dash,space2mssqlblank,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes
MySQL:
tamper=between,bluecoat,charencode,charunicodeencode,concat2concatws,equaltolike,greatest,halfversionedmorekeywords,ifnull2ifisnull,modsecurityversioned,modsecurityzeroversioned,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2hash,space2morehash,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes,versionedkeywords,versionedmorekeywords,xforwardedfor
Пример применения инструмента в sqlmap
sqlmap -u ‘http://www.site.com:80/search.cmd?form_state=1’ –level=5 –risk=3 -p ‘item1’ –tamper=apostrophemask,apostrophenullencode,appendnullbyte,base64encode,between,bluecoat,chardoubleencode,charencode,charunicodeencode,concat2concatws,equaltolike,greatest,halfversionedmorekeywords,ifnull2ifisnull,modsecurityversioned,modsecurityzeroversioned,multiplespaces,nonrecursivereplacement,percentage,randomcase,randomcomments,securesphere,space2comment,space2dash,space2hash,space2morehash,space2mssqlblank,space2mssqlhash,space2mysqlblank,space2mysqldash,space2plus,space2randomblank,sp_password,unionalltounion,unmagicquotes,versionedkeywords,versionedmorekeywords
vel=5 –risk=3 указывать обязательно, так как это дает шанс уклонится от обнаружения!
--level=LEVEL Уровень тестирования (1-5, дефолтно 1) --risk=RISK Риск тестирования (0-3, дефолтно 1)
Так же хочу сказать пару слов о проге sqlmap он создан хакерами для хакеров) очень гибкий инструмент лучшего для взлома и пентеста, я не встречал, он сравним с хирургическим скальпелем и достоин большого внимания но как правило про такие инструменты на RU пространстве написано мало, по пытаюсь в свою очередь этот пробел восполнить и поверьте он много чего еще интересного умеет но об этом потом)
Удачи! Источник