filterExp函数导致SQL注入

幸运草
幸运草
幸运草
1033
文章
3
评论
2020年3月31日21:34:57
评论
458

 filterExp函数TP5框架核心的安全过滤函数,他被配置与input函数一起使用, 他的前生是I函数,TP5重写了数据库操作类方法,filterExp函数没有及时更正更新导致SQL注入。

0x01漏洞利用

filterExp函数导致SQL注入

凌晨5点了,差不多猝死了,原理什么的就放在最后面了,直接来看如何利用把。QAQ

1,首先先看一波 input函数 了解这个东西何物先

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

漏洞场景方法1:

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

漏洞场景方法2:

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

0x02 漏洞分析

上面我们展示了无聊的漏洞利用方法,这里我们对这个漏洞进行分析

那就看一下 select方法是如何定义的

文件:thinkphplibrarythinkdbBuilder.php

方法:select()

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

这里来看看TP系统核心安全函数之一 input函数,他可以帮助我们获取各种变量与自动过滤的功能等。

文件: thinkphplibrarythinkRequest.php

方法: input()

filterExp函数导致SQL注入

filterExp函数导致SQL注入

filterExp函数导致SQL注入

从这个函数来说,我们一般情况下就算可以控制传入的变量,也会因为多个空格导致匹配不上,但是这里因为TP5重写了数据库操作的方法,忽略了一些东西,所以导致我们可以投机取巧的绕过他。如下图

filterExp函数导致SQL注入

这个是TP5 支持的表达式,在看看input会进行过滤的表达式

filterExp函数导致SQL注入

通过对比是否就有一个比较清楚的概念了?没错TP5 新添加了一个表达式 not like 但是在 filterExp中又没有进行过滤,最终导致了可注入。

filterExp函数导致SQL注入

修复方法:

升级到官方最新版本或打开文件:thinkphplibrarythinkRequest.php

打开方法:filterExp();

添加正则:/^(EXP|NEQ|GT|EGT|LT|ELT|OR|XOR|LIKE|NOTLIKE|NOT LIKE|NOT BETWEEN|NOTBETWEEN|BETWEEN|NOTIN|NOT IN|IN)$/i

filterExp函数导致SQL注入

本文来源于:filterExp函数导致SQL注入-变化吧
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

转载请注明:{{title}}-变化吧
  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 赞助本站
  • 支付宝扫一扫
  • weinxin
幸运草
勒索病毒攻击事件频发,企业上云应如何应对 劫持

勒索病毒攻击事件频发,企业上云应如何应对

劫持数据库“白帽子”黑客勒索比特币2017年5月13日,互联网多家网站疯传一条消息:据TechWeb报道,全球突发劫持数据、勒索比特币的病毒事件。英国16家医院遭到大范围网络攻击,电脑被锁定,黑客索要...
劫持数据库“白帽子”黑客勒索比特币 劫持

劫持数据库“白帽子”黑客勒索比特币

2017年5月13日,互联网多家网站疯传一条消息:据TechWeb报道,全球突发劫持数据、勒索比特币的病毒事件。英国16家医院遭到大范围网络攻击,电脑被锁定,黑客索要每家医院支付相当于400万人民币的...