GeneralKnowledgeSecurity NewsSecurity Tips

Understanding SQL Injection Attack

ស្វែងយល់អំពី តើអ្វីទៅជាការវាយប្រហារបែប SQL Injection

SQL Injection គឺជាវិធីសាស្ត្រមួយនៃការវាយប្រហារទៅលើវិបសាយ (web application) ដើម្បីលួចយកទិន្នន័យពីអង្គភាពរបស់អ្នក។ វាប្រហែលគឺជា បច្ចេកទេសមួយដ៏ពេញនិយមនៃការវាយប្រហារក្នុងស្រទាប់កម្មវិធី (application layer) នៅក្នុងបច្ចុប្បន្នកាលនេះ។ វាគឺជាប្រភេទមួយនៃការវាយប្រហារ ដែលប្រើប្រាស់នូវកង្វៈខាតនៃការសរសេរកូដ នៅក្នុង Web Applications របស់អ្នក ដែលអនុញ្ញាតឲ្យអ្នកវាយប្រហារធ្វើការ ដាក់បញ្ចូលនូវពាក្យបញ្ជា SQL ចូលទៅក្នុង ទីតាំងណាមួយ (ឧ. Login Form) ដើម្បីអនុញ្ញាតឲ្យពួកគេមានសិទ្ធចូលទៅកាន់ប្រព័ន្ធរបស់អ្នកបាន។

Structured Query Language (SQL) គឺជាកម្មវិធីសរសេរកូដមួយ ដែលត្រូវបានប្រើប្រាស់សម្រាប់ធ្វើការគ្រប់គ្រងទិន្នន័យនៅក្នុងដាតាបេស ដែលជាទូទៅ យើងប្រើប្រាស់នូវ relational database management systems (RDBMS)។ ប្រភេទនៃប្រព័ន្ធគ្រប់គ្រង ដែលប្រើប្រាស់នូវ SQL មានដូចជា Microsoft SQL Database, Oracle, MySQL, PostgreSQL, និងផ្សេងៗទៀត ។

ខាងក្រោមនេះគឺជាឧទាហរណ៍សាមញ្ញមួយ ដើម្បីទាញយកនូវព័ត៌មានអំពី ​Table

Select * from table_name

ឃ្លាខាងលើនេះគឺប្រើប្រាស់នូវនិមិត្តសញ្ញា * ដើម្បីទាញយកនូវទិន្នន័យដែលមាននៅក្នុងតារាងណាមួយ ។ ខាងក្រោមនេះគឺជាវិដេអូដែលបង្ហាញពីវិធីសាស្ត្រ នៃការប្រើប្រាស់ SQL Injection ចូលទៅក្នុងវិបសាយរបស់អ្នក។

តើអ្នកវាយប្រហារធ្វើដូចម្តេច?

អ្នកវាយប្រហារមិនត្រឹមតែធ្វើការទាញយកនូវព័ត៌មានពីក្នុងវិបសាយរបស់អ្នកប៉ុណ្ណោះទេ គឺវាអាស្រ័យទៅតាមគោលបំណងនៃអ្នកវាយប្រហារនោះ ដោយវាអាចជា ការរំលងនូវការ Login (bypass logins) ដើម្បីភ្ជាប់ទៅកាន់ទិន្នន័យ ឬធ្វើការកែប្រែព័ត៌មាននៃវិបសាយ (ដូចជាការដាក់ទំព័រដំបូងថ្មីមួយផ្សេងទៀត) ឬអាចធ្វើការបិទនូវម៉ាស៊ីនមេ។ ជារឿយៗគឺពេលដែលមានការវាយប្រហារ គឺករណីទាំងអស់នេះ នឹងកើតមានឡើង។

ជំហានដំបូងអ្នកវាយប្រហារធ្វើការស្កេននូវវិបសាយនោះ ដើម្បីស្វែងរកចំនុចខ្សោយ។ អ្នកជឿឬមិនជឿ ប្រព័ន្ធដែលល្អបំផុតសម្រាប់អ្នកវាយប្រហារគឺ វិបសាយ Google។ ដោយប្រើប្រាស់បច្ចេកវិទ្យា Google Dork អ្នកវាយប្រហារអាចធ្វើការស្វែងរកនូវចំនុចខ្សោយនានាបានដោយងាយ។ បន្ទាប់វិបសាយត្រូវបានរកឃើញ អ្នកវាយប្រហារនឹងព្យាយាមស្វែងរកនូវទិន្នន័យទាក់ទងទៅនឹង usernames/passwords ហើយនឹងទិន្នន័យសំខាន់ៗមួយចំនួនទៀត។

អ្នកអាចចូលទៅក្នុង Google.com ហើយវាយពាក្យបញ្ជាដូចខាងក្រោម ៖

• inurl:index.php?id=
• inurl:gallery.php?id=
• inurl:article.php?id=
• inurl:pageid=

ព័ត៌មានដែលទទួលបានពីការស្វែងរកខាងលើ អ្នកនឹងអាចធ្វើការត្រួតពិនិត្យរកកំហុសឆ្គងនៃវិបសាយនិមួយៗ។

www.TargetSite.com + inurl:index.php?id=

ខាងក្រោមនេះគឺជាវិដេអូដែលបង្ហាញពីវិធីសាស្ត្រក្នុងការប្រើប្រាស់ Blind SQL injection។ កម្មវិធីដែលប្រើប្រាស់នេះមានឈ្មោះថា SQLMap ដែលមានសមត្ថភាពក្នុងការវាយបំបែកពាក្យសម្ងាត់ ​(hashes) ។

វិធីសាស្ត្រការពារ

ដំណឹងល្អគឺថា ការវាយប្រហារបែបនេះគឺវាងាយស្រួលបំផុតដើម្បីការពារ និងជៀសវាង។ គម្រោង Open Web Application Security Project (OWASP) មាននូវឯកសារបង្ហាញពីការការពារ SQL Injection (SQL Injection Prevention Cheat Sheet) ដែលចង្អុលបង្ហាញនូវចំនុចធំៗ និងការការពារ មានដូចខាងក្រោម៖

១. Prepared Statements (Parameterized Queries) – Parameterized queries បង្ខំឲ្យអ្នកអភិវឌ្ឍកូដកម្មវិធី ធ្វើការកំណត់នូវរាល់ SQL Code ទាំងអស់ ហើយបញ្ជូនរាល់ parameter និមួយៗទៅកាន់ query ដែលអនុញ្ញាតឲ្យដាតាបេស អាចចែកឲ្យដាច់ពីគ្នារវាងកូដ និងទិន្នន័យ ទោះបីជាការបញ្ចូលទិន្នន័យប្រភេទអ្វីក៏ដោយ។

២. Stored Procedures – គឺត្រូវបានកំណត់ និងរក្សាទុកនៅក្នុងដាតាបេសខ្លួនឯងផ្ទាល់ ហើយបន្ទាប់មក ហៅមកពី application វិញ ។

៣. Escaping all User Supplied Input – រាល់ដាតាបសេនិមួយៗគឺមាននូវយន្តការដើម្បីទប់ស្កាត់នូវកូដមិនសមរម្យ (និមិត្តសញ្ញា) ដែលបញ្ជូល ដោយអ្នកប្រើប្រាស់ ដែលអាចជៀសផុតនូវការវាយប្រហារបែប SQL Injection មួយចំនួន។

ចំនុចការពារបន្ថែមទៀតរួមមាន៖

១. Least Privilege – ធ្វើការកំណត់សិទ្ធិឲ្យនៅទាបបំផុត ដែលផ្តល់ទៅឲ្យគណនីដាតាបេសនិមួយៗ

២. White List Input Validation – ធ្វើិការផ្ទៀងផ្ទាត់នូវការបញ្ចូលព័ត៌មាន ដើម្បីការពារការបញ្ចូលទិន្នន័យមិនសមរម្យ មុនពេលដែលវាដំណើរការដោយកម្មវិធី

Show More

Phannarith

Mr. OU Phannarith is one of the well-known cybersecurity experts in Cambodia and the region. He is the founder of the first leading information security website (www.secudemy.com) in Cambodia. He has been invited to present in global conferences, forums, and seminars and he was awarded in Information Security Leadership Achievements (ISLA) in 2016 by (ISC)2 and in December 2012 as one of the top 10 Chief Information Security Officers (CISO) in ASEAN by the International Data Group (IDG). Mr. OU has been the Professor specializing in Cybersecurity.

Related Articles

Back to top button