一个漏洞个人认为需要两个必要因数:
1.数据,你所能控制的数据(直接控制、间接控制)。
2.方法,使用到数据的方法(此处的数据是你能控制的数据)。
下面我们找我们能控制的数据:
\Application\Home\Controller\WeixinController.class.php
\Application\Home\Model\WeixinModel.class.php
有了可控制的数据,然后我们寻找数据进入过的方法(数据在流动的过程中,会赋值,会被处理而改变,过程繁复复杂,动态调试是一个让我们不至于被程序绕晕的好方法),最后我动态调试,找到了一个利用点:
通过第一段代码,我们知道我们的数据有被赋值给this->token:
\Application\Home\Controller\WeixinController.class.php
最后经过层层数据库的处理最后query
\ThinkPHP\Library\Think\Model.class.php
此时的
通过上面分析,我们可以看出我们有两个参数可控,一个是token,一个是keyword,对应的数据传入的变量ToUserName和Content
------------------------------------------------------
通过上面的分析,其实我们挖一般sql注入有个非常好的方法是:
记录所有的mysql_error()-->写个工具fuzz数据输入点-->查看错误日志反向寻找注入