Тестирање за СКЛ Ињецтион Вулнерабилитиес

Напади СКЛ Ињецтион представљају огроман ризик за веб апликације које зависе од базе података базе података како би генерисали динамички садржај. У овој врсти напада, хакери манипулишу веб апликацијом у покушају да убацују своје сопствене СКЛ команде у оне које издаје база података. На пример, погледајте чланак СКЛ Ињецтион Аттацкс на базе података. У овом чланку погледамо неколико начина на које можете тестирати своје веб апликације како бисте утврдили да ли су рањиви за нападе СКЛ Ињецтион-а.

Аутоматско скенирање СКЛ Ињецтион-а

Једна могућност је кориштење аутоматизираног скенера рањивости веб апликација, као што су ХП'с ВебИнспецт, ИБМ АппСцан или Цензиц'с Хаилсторм. Ови алати пружају једноставан и аутоматизован начин анализе ваших веб апликација за потенцијалне СКЛ Ињецтион пропусте. Међутим, они су прилично скупи, и користе се до 25.000 долара по седишту.

Ручни СКЛ Ињецтион тестови

Шта је лош програм за развој апликација? Можете заправо покренути неколико основних тестова како бисте оцијенили своје веб апликације за рањивост СКЛ Ињецтион-а користећи ништа више од веб претраживача. Прво, рец ​​о опрезу: тестови које описујем само траже основне недостатке СКЛ Ињецтион-а. Они неће открити напредне технике и мало су мучни за коришћење. Ако то можете приуштити, идите аутоматским скенером. Међутим, ако не можете управљати том ценом, ручно тестирање је одличан први корак.

Најлакши начин за процјену да ли је апликација рањива је експериментисање са безазленим ињекционим нападима који неће нарушити вашу базу података ако успију, али ће вам пружити доказе да морате исправити проблем. На пример, претпоставимо да сте имали једноставну веб апликацију која гледа појединца у базу података и као резултат даје контакт информације. Ова страница може користити следећи УРЛ формат:

хттп://мифакевебсите.цом/дирецтори.асп?ластнаме=цхаппле&фирстнаме=мике

Можемо претпоставити да ова страница обавља претрагу базе података помоћу упита сличног слиједећег:

СЕЛЕЦТ телефон ФРОМ директоријум ВХЕРЕ ластнаме = 'цхаппле' и фирстнаме = 'мике'

Хајде да експериментишемо с овим мало. Уз нашу претпоставку изнад, можемо направити једноставну промену УРЛ-а који тестира СКЛ ињекције напада:

хттп://мифакевебсите.цом/дирецтори.асп?ластнаме=цхаппле&фирстнаме=мике'+АНД+(селецт+цоунт(*)+фром+факе)+%3е0+ОР+'1'%3д'1

Ако веб апликација није била исправно заштићена од убризгавања СКЛ-а, она једноставно укључује ово лажно име у СКЛ израз који извршава према бази података, што резултира:

СЕЛЕЦТ пхоне ФРОМ дирецтори ВХЕРЕ ластнаме = 'цхаппле' анд фирстнаме = 'мике' АНД (селецт цоунт (*) фром фалсе)> 0 ОР '1' = '1'

Приметићете да је горња синтакса мало другачија од оног у оригиналном УРЛ-у. Узео сам слободу да претварам УРЛ-кодирану варијаблу за њихове АСЦИИ еквиваленте како бих лакше пратио пример. На пример,% 3д је УРЛ-кодирање за знак '='. Додао сам и неке линијске паузе за сличне сврхе.

Процењивање резултата

Тест долази када покушате да учитате веб страницу са горенаведеним УРЛ-ом. Ако се веб апликација добро понаша, она ће избацити поједине цитате из уноса пре него што проследи упит у базу података. Ово ће једноставно резултирати чудним потрагом за неким с именом које укључује гомилу СКЛ-а! Видећете поруку о грешци из апликације сличне оној у наставку:

Грешка: Није пронађен корисник са именом мике + АНД + (одаберите + број (*) + од + лажни) +% 3е0 + ОР + 1% 3д1 Цхаппле!

С друге стране, ако је апликација подложна СКЛ ињекцији, она ће проћи извод директно у базу података, што резултира једном од двије могућности. Прво, ако је на вашем серверу омогућена детаљна порука о грешци (коју не бисте требали!), Видећете нешто овако:

Мицрософт ОЛЕ ДБ Провидер за ОДБЦ управљачке грешке '80040е37' [Мицрософт] [ОДБЦ СКЛ Сервер Дривер] [СКЛ Сервер] Неважеће име објекта 'лажно'. /дирецтори.асп, ред 13

С друге стране, ако ваш веб сервер не приказује детаљне поруке о грешци, добићете опћените грешке, као што су:

Унутрашња грешка сервера Сервер је наишао на унутрашњу грешку или погрешну конфигурацију и није могао да доврши ваш захтев. Молимо контактирајте администратора сервера да бисте обавестили о времену грешке ио свему што сте можда учинили, што је можда изазвало грешку. Више информација о овој грешци може бити доступно у дневнику грешака сервера.

Ако добијете било коју од две горе наведене грешке, ваша апликација је осјетљива на СКЛ убризгавање! Неки кораци које можете предузети да бисте заштитили своје апликације против напада СКЛ Ињецтион су: