thinkPHP3.2.3中sql注入漏洞问题怎么解决


这篇文章主要介绍“thinkPHP3.2.3中sql注入漏洞问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkPHP3.2.3免费云主机域名中sql注入漏洞问题怎么解决”文章能帮助大家解决问题。
ThinkPHP中的常用方法汇总总结:M方法,D方法,U方法,I方法Thinkphp3.2.3 安全开发须知搭建:首先第一步就是必须先放在www目录下(我是windows用的phpstudy)!!!!创建数据库,表名一定与你接下来要M的名字的相对应连接数据库的文件不多说了,自己配置:ThinkPHP/Conf/convention.php配置控制器:WWWthinkphp3.2.3ApplicationHomeControllerIndexController.class.php测试:payload:?id[where]=1 and 1=updatexml(1,concat(0x7e,user(),0x7e),1)%23确实报错注入成功,一切都是因为这句代码的存在:$data = M('user')->find(I('GET.id'));I和M方法都没有什么问题,真正的问题在于find 方法上,来自/ThinkPHP/Mode/Lite/Model.class.php2._parseOptions:因为主要针对options[where]所以无关代码我全删除了/ThinkPHP/Library/Think/Model.class.php3._options_filter到这就无了而且上面的操作也会清零 $options,所以这里可能是进错了所以更正第二部的跟踪,改为2.select:/ThinkPHP/Library/Think/Db/Driver.class.php3.buildSelectSql:地址同上4.parseSql:地址同上5.parseWhere:同上最后$sql=where 1 and 1=updatexml(1,concat(0x7e,user(),0x7e),1)%23然后整个过程没有任何过滤,seay分析thinkPHP太飞费劲了payload不变:?id[where]=1 and 1=updatexml(1,concat(0x7e,user(),0x7e),1)%23还是跟踪find函数:跟踪到这里步入一下,继续跟踪,跟踪到最后会跳出这个函数并且,值依然没有改变,同时步入下一个函数经核实,步入到了另一个函数中:继续跟踪buildSelectSql:继续跟踪parseSql:最后的代码变成了:SELECT * FROM user WHERE 1 and 1=updatexml(1,concat(0x7e,user(),0x7e),1)# LIMIT 1
还是debug起来方便,基本不需要怎么动脑关于“thinkPHP3.2.3中sql注入漏洞问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: jquery和vue中的ajax有哪些区别

这篇文章主要介绍了jquery和vue中的ajax有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jquery和vue中的ajax有哪些区别文章都会有所收获,下面我们一起来看看吧。 区别:1、jquery中的ajax方法可…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/15 20:56
下一篇 04/15 20:56

相关推荐