Подаци су једна од најважнијих компоненти информационих система. Веб апликације засноване на базама података користи организација за добијање података од купаца. СКЛ је скраћеница од Струцтуред Куери Лангуаге. Користи се за преузимање и манипулисање подацима у бази података.
Шта је СКЛ ињекција?
СКЛ Ињецтион је напад који трује динамичке СКЛ изразе да би се коментарисали одређени делови изјаве или додавање услова који ће увек бити тачан. Користи недостатке дизајна у лоше дизајнираним веб апликацијама да би искористио СКЛ изразе за извршавање злонамерног СКЛ кода.
У овом упутству научићете технике убризгавања СКЛ и како можете заштитити веб апликације од таквих напада.
- Како функционише СКЛ Ињецтион
- Активност хаковања: СКЛ убризгава веб апликацију
- Други типови напада СКЛ Ињецтион
- Алати за аутоматизацију за убризгавање СКЛ-а
- Како се спречити против напада СКЛ убризгавањем
- Активност хаковања: Користите Хавји за СКЛ Ињецтион
Како функционише СКЛ Ињецтион
Типови напада који се могу извести помоћу СКЛ убризгавања разликују се у зависности од врсте механизма базе података. Напад ради на динамичким СКЛ изразима . Динамички израз је израз који се генерише у време извођења помоћу лозинке параметара из веб обрасца или УРИ низа упита.
Размотримо једноставну веб апликацију са обрасцем за пријаву. Код за ХТМЛ образац приказан је испод.
ОВДЕ,
- Горњи образац прихвата адресу е-поште, а лозинка их затим шаље у ПХП датотеку која се зове индек.пхп.
- Има могућност чувања сесије пријаве у колачићу. Ово смо закључили из поља за потврду Ремембер_ме. За слање података користи методу пошта. То значи да вредности нису приказане у УРЛ-у.
Претпоставимо да је изјава на позадини за проверу корисничког ИД-а следећа
СЕЛЕЦТ * ФРОМ усерс ВХЕРЕ емаил = $ _ПОСТ ['емаил'] АНД пассворд = мд5 ($ _ ПОСТ ['пассворд']);
ОВДЕ,
- Горња изјава директно користи вредности низа $ _ПОСТ [], а да их не дезинфикује.
- Лозинка је шифрована помоћу МД5 алгоритма.
Илустроваћемо напад СКЛ убризгавањем помоћу склфиддле. Отворите УРЛ адресу хттп://склфиддле.цом/ у свом веб прегледачу. Добићете следећи прозор.
Напомена: мораћете да напишете СКЛ изразе
Корак 1) Унесите овај код у лево окно
CREATE TABLE `users` (`id` INT NOT NULL AUTO_INCREMENT,`email` VARCHAR(45) NULL,`password` VARCHAR(45) NULL,PRIMARY KEY (`id`));insert into users (email,password) values ('This email address is being protected from spambots. You need JavaScript enabled to view it.',md5('abc'));
Корак 2) Кликните на Буилд Сцхема
Корак 3) Унесите овај код у десно окно
изаберите * од корисника;
Корак 4) Кликните на Покрени СКЛ. Видећете следећи резултат
Претпоставимо да корисничке залихе Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели. и 1234 као лозинку. Изјава која се извршава према бази података би била
СЕЛЕЦТ * ФРОМ усерс ВХЕРЕ емаил = ' Ова адреса е-поште је заштићена од нежељених робота. Ако га желите прегледати, потребан вам је Јава-скрипта. ' И лозинка = мд5 ('1234');
Горњи код се може искористити коментарисањем дела лозинке и додавањем услова који ће увек бити тачан. Претпоставимо да нападач даје следећи унос у поље адресе е-поште.
Ова адреса е-поште је заштићена од нежељених робота. Ако га желите прегледати, потребан вам је Јава-скрипта. ' ИЛИ 1 = 1 ОГРАНИЧИТЕ 1 - ']
ккк за лозинку.
Генерирани динамички исказ биће сљедећи.
СЕЛЕЦТ * ФРОМ усерс ВХЕРЕ емаил = ' Ова адреса е-поште је заштићена од нежељених робота. Ако га желите прегледати, потребан вам је Јава-скрипта. ' ИЛИ 1 = 1 ОГРАНИЧИТЕ 1 - '] И лозинка = мд5 (' 1234 ');
ОВДЕ,
- Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели. завршава се једним наводником који употпуњује цитат низа
- ИЛИ 1 = 1 ЛИМИТ 1 је услов који ће увек бити тачан и ограничава враћене резултате на само један запис.
- - 'АНД ... је СКЛ коментар који уклања део лозинке.
Копирајте горенаведену СКЛ наредбу и залепите је у СКЛ ФиддлеРун СКЛ Тект бок као што је приказано доле
Активност хаковања: СКЛ убризгава веб апликацију
Имамо једноставну веб апликацију на адреси хттп://ввв.тецхпанда.орг/ која је рањива на нападе СКЛ Ињецтион само у сврху демонстрације. Код ХТМЛ обрасца преузет је са странице за пријаву. Апликација пружа основну сигурност као што је санација поља е-поште. То значи да се наш горњи код не може користити за заобилажење пријаве.
Да бисмо то заобишли, можемо уместо тога да искористимо поље лозинке. Дијаграм испод приказује кораке које морате следити
Претпоставимо да нападач даје следећи улаз
- Корак 1: Унесите Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели. као адреса е-поште
- Корак 2: Унесите ккк ') ИЛИ 1 = 1 -]
- Кликните на дугме Пошаљи
- Бићете преусмерени на контролну таблу
Генерирани СКЛ израз биће сљедећи
СЕЛЕЦТ * ФРОМ усерс ВХЕРЕ емаил = ' Ова адреса е-поште је заштићена од нежељених робота. Ако га желите прегледати, потребан вам је Јава-скрипта. ' И лозинка = мд5 ('ккк') ИЛИ 1 = 1 -] ');
Дијаграм испод илуструје да је изјава генерисана.
ОВДЕ,
- Изјава паметно претпоставља да се користи мд5 енкрипција
- Довршава један наводник и завршну заграду
- Изјави додаје услов који ће увек бити тачан
Генерално, успешан напад на СКЛ Ињецтион покушава низ различитих техника као што су оне претходно демонстриране да изврши успешан напад.
Други типови напада СКЛ Ињецтион
СКЛ ињекције могу наштетити више него само просљеђивањем алгоритама за пријаву. Неки од напада укључују
- Брисање података
- Ажурирање података
- Уметање података
- Извршавање наредби на серверу које могу да преузму и инсталирају злонамерне програме попут тројанаца
- Извоз драгоцених података попут података о кредитној картици, е-поште и лозинки на удаљени сервер нападача
- Добијање детаља за пријављивање корисника итд
Горња листа није исцрпна; то вам само даје идеју шта СКЛ Ињецтион
Алати за аутоматизацију за убризгавање СКЛ-а
У горњем примеру смо користили технике ручног напада засноване на нашем великом знању СКЛ-а. Постоје аутоматизовани алати који вам могу помоћи да ефикасније и у најкраћем могућем року изведете нападе. Ови алати укључују
- СКЛСмацк - хттпс://сецуритеам.цом/тоолс/5ГП081П75Ц
- СКЛПинг 2 - хттп://ввв.склсецурити.цом/довнлоадс/склпинг2.зип?аттредирецтс=0&д=1
- СКЛМап - хттп://склмап.орг/
Како се спречити против напада СКЛ убризгавањем
Организација може да усвоји следећу политику како би се заштитила од напада СКЛ Ињецтион.
- Уносу корисника никада не треба веровати - мора се увек санирати пре него што се користи у динамичким СКЛ изразима.
- Похрањене процедуре - оне могу инкапсулирати СКЛ изразе и третирати сав улаз као параметре.
- Припремљени изрази - припремљени изрази који ће радити тако што ће се прво створити СКЛ израз, а затим се сви предати кориснички подаци третирају као параметри. Ово нема утицаја на синтаксу СКЛ израза.
- Регуларни изрази - они се могу користити за откривање потенцијалног штетног кода и његово уклањање пре извршавања СКЛ израза.
- Корисничка права приступа конекцији базе података - налозима који се користе за повезивање са базом података треба дати само потребна права приступа. Ово може помоћи у смањењу онога што СКЛ изрази могу изводити на серверу.
- Поруке о грешкама - не би требало да откривају осетљиве информације и где се тачно догодила грешка. Једноставне прилагођене поруке о грешкама попут „Жао нам је, имамо техничке грешке. Контактиран је технички тим. Покушајте поново касније “може се користити уместо да се приказују СКЛ изрази који су узроковали грешку.
Активност хаковања: Користите Хавиј за СКЛ Ињецтион
У овом практичном сценарију, користићемо програм Хавиј Адванцед СКЛ Ињецтион за скенирање веб локације ради рањивости.
Напомена: ваш антивирусни програм га може означити због своје природе. Требали бисте га додати на листу изузећа или паузирати антивирусни софтвер.
На слици испод приказан је главни прозор за Хавиј
Горњи алат се може користити за процену рањивости веб локације / апликације.
Резиме
- СКЛ Ињецтион је врста напада која користи лоше СКЛ изразе
- СКЛ убризгавање може се користити за заобилажење алгоритама за пријаву, преузимање, уметање и ажурирање и брисање података.
- Алати за убризгавање СКЛ-а укључују СКЛМап, СКЛПинг и СКЛСмацк итд.
- Добра сигурносна политика приликом писања СКЛ израза може помоћи у смањењу напада СКЛ убризгавањем.