锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
怎么绕过WAF/NGWAF的libinjection实现SQL注入

作者: 佚名  日期:2017-05-16 20:50:50   来源: 本站整理

 在我们开始之前,先给大家介绍一下libinjection。libinjection是一个非常流行的开源项目【传送门】,该项目由Signal Sciences公司的Nick Galbreath负责开发和维护。
在此之前,市场上绝大多数的WAF都是基于正则匹配(Regex)的,但是现在不一样了,很多的WAF(防火墙)以及NGWAF(下一代防火墙)出于性能方面的考虑,都会选择使用这个库来代替常规的正则表达式。例如mod_security从2.7.4版本开始就支持libinjection(dectectSQLi-v2.7.4、detectXSS-v2.8.0)。
从技术角度来看,libinjection是一个基于C语言的SQLi词法解析分析器,它可以通过对不同语句进行词法分析和语法分析来实现对SQL语句以及HTML语句的解析。
但需要注意的是,某些情况下libinjection的效果可能并没有正则表达式好。接下来我会告诉大家我为什么会这样认为。
libinjection解析器的未知令牌(token)
函数令牌,这是找出未知令牌的一种最简单的方法了。我们曾尝试列出所有可能的SQL函数,但这不太可能实现,因为还有很多自定义函数存在。这是其中一个原因,而另一个原因是各种不同的SQL引擎(例如MariaDB、MySQL、SQLite和PostgreSQL等等)都有很多不同的内置SQL函数。
下面是一个简单的例子:

?id=‘-sqlite_version() UNION SELECT password FROM users- -
libinjection解析器的未知语境(context)
括号语境
如果攻击者想要进行拒绝服务(DoS)攻击,并尝试通过SQL注入来拿下你的数据库,那么他可能会使用下面这种查询语句:

?id=sleep(9999)
但是,这种尝试是会被检测到的,而安全防护产品也能够有效地阻止这种攻击。但是,下面这种情况却是无法检测到的:

?id=)-sleep(9999
因为libinjection并不能理解这种括号语境。
同样的,在MySQL的文件写入中我们也可以利用类似的技术。比如说下面这个语句,它在一般情况下都会被检测到:

?id=1337 INTO OUTFILE ‘xxx’--
但是如果攻击者换成下面这种形式或语境的话,就无法被检测到了:

?id=1337) INTO OUTFILE ‘xxx’--
除了上面给出的这种情况之外,我们同样可以在批量查询语句或多层查询语句中使用同样的技巧。比如说下面这条语句,它是会被检测到并且被阻止的:

?id=123;DROP TABLE users--
但是下面这条语句却不会被发现,这样一来,你的用户表(users)就被攻击者拿到手了:

?id=123);DROP TABLE users--
简单的数据提取Payload样例如下所示:

?id=) OR (SELECT password FROM users ...
注释语境
在SQL语句的注释中执行注入

*/UNION SELECT password FROM users--
总结
实际上,我们经常可以在SQL语句的注释区域中发现可行的注入点。libinjection无法检测注释区域中的内容,因为它的SQL解析器根本就不支持这种语境。
正如大家在本文中看到的那样,想要保护Web应用不受网络攻击其实是一件非常困难的事情,即便是我们对SQL注入攻击已经有着足够的了解了,但我们仍然不能保证SQLi不会发生在我们自己的服务器身上。无论你所使用的库有多么的流行,无论这个库有多么的高级,攻击者永远都会有新的方法来绕过它们。



热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等