SQL injection (SQLi) attacks pose a significant threat to the security of web applications. Existing approaches do not support object-oriented programming that renders these approaches unable to protect the real-world web apps such as Wordpress, Joomla, or Drupal against SQLi attacks. We propose a novel hybrid static-dynamic analysis for PHP web applications that limits each PHP function for accessing the database. Our tool, SQLBlock, reduces the attack surface of the vulnerable PHP functions in a web application to a set of query descriptors that demonstrate the benign functionality of the PHP function. We implement SQLBlock as a plugin for MySQL and PHP. Our approach does not require any modification to the web app. W evaluate SQLBlock on 11 SQLi vulnerabilities in Wordpress, Joomla, Drupal, Magento, and their plugins. We demonstrate that SQLBlock successfully prevents all 11 SQLi exploits with negligible performance overhead (i.e., a maximum of 3% on a heavily-loaded web server)
翻译:SQL 注入 (SQLLi) 攻击对网络应用程序的安全构成重大威胁。 现有方法不支持使这些方法无法保护真实世界的网络应用程序, 如Wordpress、 Joomla 或Drupal 来保护像Wordpress、 Joomla 或Drupal 那样的 SQLi 攻击 SQLi 攻击 。 我们提议对 PHP 网络应用程序进行新颖的混合静态动力分析, 限制每个 PHP 功能访问数据库。 我们的工具 SQLBlock 将脆弱的 PHP 函数的攻击面降低到一组显示 PHP 功能无害的查询描述器中。 我们用 SQLBlock 作为 MySQL 和 PHP 的插件。 我们的方法不需要修改网络应用程序 。 W 评价 SQLlock 在 Wordpress、 Joomla、 Drupal、 Magento 及其插件中的11 SQLi 弱点。 我们证明 SQLlock 成功防止了全部11 SQLi 的可忽略的功能管理器( 在一个重载网络服务器上最多3%)