sql قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/sql injection.pdf · sqli (cont.) sql...
TRANSCRIPT
![Page 1: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/1.jpg)
SQLتزریق رسول وحدتی
کارشناس ارشد هوش مصنوعیکارشناس امنیت
1
![Page 2: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/2.jpg)
SQL
■Structured Query Language
داده هامدل رابطه ای در ■
برای ایجاد، باال مبتنی بر زبان سطح پایین و ریاضی جبر رابطه ای کهزبانی سطح –. تغییر، و بازیابی داده ها و نیز عملیات بر روی آن ها به کار می رود
انواع مختلف■
–MySQL
–MariaDB
–SQL Server
–Microsoft Access
2
![Page 3: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/3.jpg)
SQLi (Cont.)
■SQL Injection
تزریق به پایگاه داده ■
به . کندفن تزریق کد است که نقص امنیتی نرم افزار وب سایت را اکسپلویت مینوعی ■ا عملیات متفاوت ب)این صورت که نفوذگر با یک سری دستورهای اس کیوال، عملیاتی را
. در پایگاه داده وب سایت آسیب پذیر انجام می دهد( عادی موردنظر طراح وبسایت
موارد نیازمندی■
...(وXampp ،Wamp) PHPمحیط اجرای کدهای –یک جدول آماده برای تزریق کد–
3
![Page 4: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/4.jpg)
SQLi (Cont.)
■ Demo Database
4
NewsId Title Date Content ContentUser
1 Test NULL Some Text Null
2 Test2 NULL Some user
inserted textNull
3 Test3 2018-01-06 [Status] User2
4 Test4 2018-02-03[Some other
status]user2
![Page 5: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/5.jpg)
SQLi (Cont.)
کوئری های برای ارتباط با بانک اطالعاتی■
–SELECT * FROM news where id=2
–INSERT INTO News (title, content) VALUES (‘a', b')
–Delete From news where id=2
–Drop news
5
![Page 6: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/6.jpg)
SQLi (Cont.)
ارسال متغیرها و پارامترها■
– GET
■ http://www.site.com/?news=123
■ $_GET[‘news’]
– POST
■ http://www.site.com/
■ $_POST[‘news’]
6
![Page 7: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/7.jpg)
SQLi (Cont.)
or 1=1یا and 1=2و ‘با کاراکتر : SQL Injectionبررسی ■
SQLانواع تزریق ■
–Union
روش محبوب و آسان■.روی اکثر بانک های اطالعاتی کار می کند■جلوگیری این روش با دیوار آتش نرم افزاری و سخت افزاری: عیب■
–Error
با استفاده از خطا■.در صورتی که خطا بسته باشد، نمی توان از این روش استفاده کرد: عیب■
–Blind SQL Injection
.روی اکثر بانک های اطالعاتی کار می کند■زمان بر بودن:عیب■
7
![Page 8: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/8.jpg)
SQLi (Cont.)
SQLانواع تزریق ■
–Union
■Order by
■Information_schema
–Tables
–Columns
■user()
نام کاربری استفاده شده در سایت برای دریافت داده ها از بانک اطالعاتی–
■database()
.نام بانک اطالعاتی که در صفحه استفاده شده است–
8
![Page 9: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/9.jpg)
SQLi (Cont.)
SQLانواع تزریق ■
–Union
■@@version
استفاده شدهMariaDBیا MySQLنسخه –
■@@datadir
.مسیر دایرکتوری که فایل در حال اجراست را نمایش می دهد–
■unhex(hex(table_name))
.در خروجی نمایش داده نمی شودtable_nameبرای موارد خاص وقتی –
9
![Page 10: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/10.jpg)
SQLi (Cont.)
SQLانواع تزریق ■
–Union
– http://localhost/injection/select.php?id=10 union select
group_concat(distinct(table_schema)),2,3,4,5 from
information_schema.tables
– http://localhost/injection/select.php?id=10 union select
group_concat(table_name),2,3,4,5 from
information_schema.tables where table_schema=‘semclass’
And…
10
![Page 11: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/11.jpg)
SQLi (Cont.)
SQLانواع تزریق ■
–Error
11
![Page 12: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/12.jpg)
SQLi (Cont.)
SQLانواع تزریق ■
–Blind
■ Select user returns ‘dbo’• SUBSTRING(‘Select user’, 1, 1) = ‘d’• SUBSTRING(‘Select user’, 2, 1) = ‘b’• SUBSTRING(‘Select user’, 3, 1) = ‘o’
■ http://victim/showproduct.asp?id=238 andSUBSTRING(‘Select user’, 1, 1) = ‘d’ TRUE
■ http://victim/showproduct.asp?id=238 andSUBSTRING(‘Select user’, 1, 1) = ‘X’ FALSE
12
![Page 13: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/13.jpg)
SQLi (Cont.)
SQLانواع تزریق ■
–Blind
13
![Page 14: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/14.jpg)
SQLi (Cont.)
SQLانواع تزریق ■
http://pentestmonkey.netسایت –
14
![Page 15: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/15.jpg)
SQLi (Cont.)
SQLجلوگیری از تزریق ■
استفاده از توابع برای تعیین نوع متغیر–
■Filter_var
■bind_param(type, variable)mysqli
■trim
■mysql_real_escape_string
■strip_tags
...و
15
![Page 16: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/16.jpg)
Google Dork
■Google Dork
–DorkیاGoogle DorkاینترنتدرامنیتیناخواستهاطالعاتافشایمعنیبهواقعدرعنوانبهDorkازتوانمیواقعدر.شودمیانجامجستجوموتورهایتوسطکهمی باشد
Googleنتیجه Hackingبردنام.
اطالعات ناخواسته امنیتی–
فایل های مهم نرم افزارها و برنامه های تحت وب■
لیست کارکنان واجد شرایط وام■
لیست بازنشستگان■
...و■
16
![Page 17: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/17.jpg)
Google Dork (Cont.)
■ Google Dork
– site:
■ restricts query results to a certain site or domain.
– Filetype:
■ restricts query results to PDF files or other specific file
types.
– Intext:
■ resticts results to those content records that contain
specific words or phrases.
17
![Page 18: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/18.jpg)
Google Dork (Cont.)
■ Google Dork
– intitle:
■ restricts query results to specific title of site. “Login page”
– inurl:
■ Searches for the specified term in the url. “login.php”
– define / phonebook / maps / book / froogle / info /
movie / weather / related / link
18
![Page 19: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/19.jpg)
WAF
■Web Application Firewall
نترل ورودی خروجی یا دسترس پذیری از، به یا به وسیله یک برنامه کاربردی یا سرویس را ک–.می نماید
دیوار آتش نرم افزاری–
دیوار آتش سخت افزاری–
19
![Page 20: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/20.jpg)
WAF (Cont.)
■ Web Application Firewall
– ModSecurity
– Barracuda Networks WAF
– Fortinet FortiWeb
– Sophos XG Firewall
And…
20
![Page 21: SQL قیرزت - mrazian.commrazian.com/courses/96-97/2/ns/dl/SQL injection.pdf · SQLi (Cont.) SQL قیزت عاونا Union – @@version هش هافتسا MariaDB ایMySQL هسن](https://reader036.vdocuments.us/reader036/viewer/2022070803/5f0303837e708231d4071c46/html5/thumbnails/21.jpg)
WAF (Cont.)
■ Web Application Firewall
– ModSecurity
■ HTTP Protocol Protection
■ Real-time Blacklist Lookups
■ HTTP Denial of Service Protections
■ Generic Web Attack Protection
■ Error Detection and Hiding
21