Ke ho'āʻoʻana no nā hewa hoʻokūkū SQL

ʻO ka hoʻokōʻana o SQL i nā hopena nui i nā polokalamu pūnaewele e hilinaʻi ana ma luna o ka waihonaʻikepili i mea e hoʻonui i ka ihiwaena. Ma kēiaʻano hoʻouka kaua, hoʻolālā nā mea hoʻoikaika i kahi pūnaewele ma kahi ho'āʻo e hoʻoiho i kā lākou mau kauoha SQL i loko o nā mea i hoʻopukaʻia e ka pūnaewele. No kekahi hiʻohiʻona, e nānā i ka pauku SQL Ink Attack on Databases. Ma kēiaʻatikala, e nānā mākou i nāʻano e hiki ai iāʻoe ke hōʻoia i kāu mau pūnaewele pūnaewele e hoʻoholo ai inā he pilikino lākou i ka hōʻeuʻeu Injection SQL.

ʻImiʻIkeʻIkeʻiaʻo SQL

Hoʻohanaʻia kekahi mea hoʻohana i kahi polokalamu kamepiula pono pūnaewele pūnaewele, e like me WebInspect o HP, IBM o AppScan a Cenzic paha. Ke hāʻawi nei kēia mau meaʻoluʻolu i nā alalahi, nā ala maʻamau i ke kahakahaʻana i kāu mau pūnaewele pūnaewele no nā pilikia pilikia SQL. Eia naʻe, he kālā nui lākou, e holo ana i kahi $ 25,000 ma ka noho.

NāʻImiʻana i nā SQL Injection

He aha kahi mea hoʻolālā noiʻole maikaʻi e hana ai? Hiki iāʻoe keʻimi i kekahi mau ho'āʻo hoʻohālike e loiloi i kāu mau pūnaewele pūnaewele no nā polokalamu koʻikoʻi SQL me ka hoʻohanaʻole i kahi mea'ē aʻe ma kahi pūnaewele pūnaewele. ʻO ka mea mua, he hua'ōlelo aʻo:ʻo nā hōʻike aʻu e wehewehe nei wale nō e nānā i nā hewa hewa Injection. ʻAʻole lākou eʻike i keʻano o nā mea i hoʻolālāʻia a me nā meaʻano koʻikoʻi e hoʻohana. Inā hiki iāʻoe ke hana, e hele me kahi polokalamu kamepiula. Eia naʻe, ināʻaʻole hiki iāʻoe ke mālama i kēlā kumukūʻai kūʻai,ʻo ka hoʻonalohua limaʻana he kumu mua nui.

ʻO ke ala maʻalahi e loiloi ināʻoi aku ka paakiki o kahi noi he ho'āʻoʻana i nā hopenaʻoluʻolu hewaʻole e hōʻehaʻole i kāuʻikepili inā lanakila lākou akā e hāʻawi iāʻoe i ka hōʻike e ponoʻoe e hoʻoponopono i kahi pilikia. Eia kekahi lā, ināʻoe he polokalamu pūnaewele wikiwiki e nānā i kahi kanaka i loko o kaʻikepili pūnaewele a hāʻawi i kaʻike pilikino ma muli o ka hopena. Hiki i kēlā palapala ke hoʻohana i ka hōʻano HKH:

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike

Hiki iā mākou ke manaʻo e hana nei kēiaʻaoʻao i kahiʻikepili database, e hoʻohana i kahi hulina e like me kēia:

Kelepona SELETAI mai ka papa kuhikuhi WHERE inoa inoa = 'chapple' a inoa inoa = 'mike'

E ho'āʻo me kēia i kahi. Me ko mākou manaʻo i luna nei, hiki iā mākou ke hoʻololi i ka URL e ho'āʻo ai no nā hoʻokūkūʻokoʻa SQL:

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike'+AND+(select+count(*)+from+fake)+%3e0+OR+'1'%3d'1

Ināʻaʻohe pono ka pale o ka pūnaewele i ka hoʻohanaʻana i ka SQL, hoʻohanaʻia i kēia inoa inoa laulā i loko o ka'ōlelo SQL i hanaʻia e pili ana i kaʻikepili, hiki ke kumu:

KAUKAHI waea mai ka papa kuhikuhi WHERE inoa inoa = 'chapple' a inoa mua = 'mike' A (koho helu (*) mai ka mea hōʻole)> 0 MA 'O' 1 '=' 1 '

E nānāʻoe i kaʻokoʻa o ka hōʻailona ma luna nei ma mua o ka mea i loko o ka URL kumu. Ua lawe wau i kaʻaeʻana o ka hoʻohuliʻana i ka helu i hoʻopiliʻia URL no ko lākou ASCII kūlike e maʻalahi ai ke hahai i keʻano. Eia kekahi laʻana,% 3d ka hoʻopiʻi URL-no ka '='ʻano. Ua hoʻohui pū au i kekahi mau laina no ka hana like.

Ka hoʻonuiʻana i nā hopena

E hōʻoia ka hōʻoia e ho'āʻoʻoe e kau i ka pūnaewele me ka URL i heluʻia ma luna nei. Inā maikaʻi ka hana o ka pūnaewele pūnaewele, e hoʻopau loa ia i nā hua'ōlelo likeʻole mai ka hoʻokomo mua ma mua o ka waihoʻana i ka hulina i kaʻikepili. ʻO ka hopena kēia i kahi nānāʻokoʻa no kekahi mea me ka inoa mua e komo pū ana me ka pūpū o SQL! Eʻikeʻoe i kahi memo kuhi mai ka noi like me ka mea ma lalo nei:

Kuʻia:ʻAʻohe mea hoʻohana i loaʻa me ka mike inoa + AND + (koho + helu (*) + mai + hōʻole) +% 3e0 + OR + 1% 3d1 Chapple!

I kekahiʻaoʻao, inā paʻakikī ka noi i ka inikomo SQL, e hoʻokau pololei i ka hōʻike i kaʻikepili, hiki i kahi oʻelua hanana. ʻO ka mea mua, inā ua hōʻoiaʻia e kāu kikowaena nā memo kuhi (iʻole ponoʻoe!), Eʻikeʻoe i kēia mea:

ʻO Microsoft OLE DB Mea Hana no ka'upōnaehana'ODBC '80040e37' [Microsoft] ['ODBC SQL Server Driver] [SQL Server] inoa inoa inoaʻole 'fake'. /directory.asp, laina 13

I kekahiʻaoʻao'ē aʻe, ināʻaʻole hōʻikeʻia e kāu pūnaewele i nāʻike kuhi kikokikona, e loaʻa iāʻoe kahi hemahema keu, e like me:

Kuʻia Kikowaena Pūnaewele Ua pilikia ke kikowaena i ka hana i loko o ka pūnaewele a iʻole kaʻike kuhihewa a ua hikiʻole ke hoʻopiha i kāu noi. Eʻoluʻolu e leka uila i ka luna hoʻoponopono e hoʻomaopopo i ka manawa i hanaʻia ai ka hewa a me kekahi mea āu i hana ai i kū ai i ka hemahema. Hiki ke loaʻa kaʻike hou aku e pili ana i kēia pilikia ma ka log log server.

Inā loaʻa iāʻoe kekahi o nā hemahemaʻelua i luna nei, hiki i kāu polokalamu ke pale i kahi hōʻehaʻokoʻa SQL! ʻO kekahi mau hanana e hiki ai iāʻoe ke hana no ka paleʻana i kāu mau noi e kū'ē i nā hōʻai'ēʻo Injection SQL: