ស្វែងយល់ពីការប្រើប្រាស់ sqlmap ដើម្បីត្រួតពិនិត្យ SQL injection

ការជ្រៀតចូលពីខាងក្រៅ ពីពួក Hacker គឺជារឿងសំខាន់ សំរាប់ Programmer ត្រូវដឹង ដើម្បីសរសេរកូដ និងតេស្តដោយប្រុងប្រយ័ត្ន គ្រប់ជ្រុងជ្រោយ។ ក្នុងអត្ថបទនេះ នឹងណែនាំ ពីអ្វីទៅដែលហៅថា sqlmap ។

sqlmap គឺជា Tool open source សំរាប់តេស្តការជ្រៀតចូលពីខាងក្រៅ ពីពួក Hacker ។ រាល់ដំណើរការស្វែងរក ការជ្រៀតចូលពីខាងក្រៅ ក៏ដូចជាដំណើរការ ដាក់ចូលនូវ SQL injection និងការបំផ្លាញទិន្នន័យពីក្នុង Database Server នឹងត្រូវប្រព្រឹត្តឡើង ដោយស្វ័យប្រវត្តិ ។

sqlmap មានភ្ជាប់មកជាមួយ៖

  • ម៉ាស៊ីនត្រួតពិនិត្យដែលមានសក្តានុពល
  • ផ្តល់លក្ខណៈច្រើន សំរាប់អ្នកតេស្តរកការជ្រៀតចូល និងការផ្លាស់ប្តូរទិន្នន័យនៃមូលដ្ឋាន Database
  • ការទាញយកទិន្នន័យពី Database និងអាច Access ទៅកាន់មូលដ្ឋាននៃ File System
  • អាចប្រតិបត្តិការ (command) នៅលើប្រព័ន្ធប្រតិបត្តិការ តាមរយៈការតភ្ជាប់ពីខាងក្រៅ

sqlmap ត្រូវបានគេសរសេរក្នុងភាសា Python

ជំហានដំបូង អ្នកត្រូវ install Python ទៅក្នុង System របស់អ្នកជាមុនសិន ។ ចូលទៅកាន់គេហទំព័រ python.org ហើយ Download ចំពោះ Version មួយណាក៏បាន។ បន្ទាប់មកទៀត install sqlmap ដោយចូលទៅកាន់ sqlmap.org ហើយ Download Zip File ឬ tar.g File ជាការស្រេច។

ជំហានបន្ទាប់ ក្រោយពីបាន Download ហើយ អ្នកត្រូវ Extract File ដាក់ក្នុង Directory មួយក្នុងម៉ាស៊ីនរបស់អ្នក ។ ជាឧទាហរណ៍៖ ដាក់ក្នុង Desktop ដែលមាន Folder ឈ្មោះ sqlmap ។

sqlmap

sqlmap មានលទ្ធភាពអាចស្វែងរក និងទាញយក តាមរយៈប្រភេទនៃ SQL Injection ផ្សេងៗគ្នាចំនួន ៥ គឺ៖

  • Boolean-based blind: sqlmap ដាក់ជំនួស ឬបន្ថែម SQL Statement ឬ Sub Statement ដែលមានប្រភេទជា Boolean (true/False) ទៅលើ Parameter នៅក្នុង HTTP Request ក្នុងពេលដែល អ្នកប្រើប្រាស់ ចង់បានទិន្នន័យមកក្រៅ។
  • Time-based blind: sqlmap ដាក់ជំនួស ឬបន្ថែម SQL Statement ឬ Sub Statement ដែលបញ្ជូនតំលៃ ជាចំនួន វិនាទី ទៅលើ Parameter នៅក្នុង HTTP Request  ក្នុងពេលដែល អ្នកប្រើប្រាស់ ចង់បានទិន្នន័យមកក្រៅ ដូច Boolean-based blind ដែរ។
  • Error-based: sqlmap ដាក់ជំនួស ឬបន្ថែម SQL Statement ទៅលើ Parameter នៅក្នុង HTTP Request ដើម្បី បង្ហាញនូវ Error Message ដែលជាព័ត៌មានសំខាន់ នៅក្នុង Database ក្នុងពេលដែល អ្នកប្រើប្រាស់ ចង់បានទិន្នន័យមកក្រៅ។
  • UNION query-based: sqlmap ដាក់ជំនួស ឬបន្ថែម SQL Statement ឬ Sub Statement ភ្ជាប់ជាមួយ UNION ALL SELECT ទៅលើ Parameter នៅក្នុង HTTP Request ។ វានឹងដំណើរការ នៅពេលអ្នកប្រើប្រាស់  ចង់បង្ហាញ ទិន្នន័យមកក្រៅ ជា For Loop ដែលជាឧិកាស សំរាប់ sqlmap អាចដាក់ UNION query SQL injection ដើម្បី ទាញយកព័ត៌មានសំខាន់ក្នុង Database ។
  • Stacked queries: sqlmap ដាក់ជំនួស ឬបន្ថែម SQL Statement ឬ Sub Statement បន្ទាប់ពី a semi-colon (;) ទៅលើ Parameter នៅក្នុង HTTP Request  ក្នុងពេលដែល អ្នកប្រើប្រាស់ ចង់បានទិន្នន័យមកក្រៅ។

sqlmap support គ្រប់ប្រភេទ Database ដូចជា MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB និង Informix

យើងខ្ញុំនឹងសរសេរលំអិតពី SQL Injection នីមួយៗ នៅអត្ថបទបន្ទាប់ ។