前言

菜鸟学习一下代码审计,加深对漏洞原理的理解。

文件结构

源码是基于ThinkPHP3.2.2框架开发的企业网站内容管理系统

其中App文件夹下的文件将是审计的重点。

前台sql注入

大部分文件在获取参数的时候会进行一次正则匹配

对传入不是整数的参数程序会直接结束,有效的过滤了一部分可能产生注入的地方。
在\App\Home\Controller\UserController.class.php文件下却发现

do_name()方法将post传入的id带入了find查询,我们都知道tp3是有爆出过注入的,因此在这构成注入

http://www.a.com/index.php?s=/user/do_name.html
id[where]=1%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)--

注入条件是要前台登录。
该文件的do_detail()方法,do_pass()方法也有着相同的问题

继续对源码阅读,并没有发现前台有其他漏洞。可能是我技术菜

后台sql注入

后台文件使用zend加密,使用在线解密网站解密文件
http://dezend.qiling.org/free/
\App\Manage\Controller\PhotoController.class.php

ID通过get请求获取带入where查询,并且无引号保护造成注入,

后台其他文件造成注入的原因基本同理,

总结

通过代码分析更容易理解漏洞,该源码后台还有一处任意文件删除,网上已有分析,就没有写
tp3注入原理参考
https://xz.aliyun.com/t/2629

点击收藏 | 0 关注 | 2
  • 动动手指,沙发就是你的了!
登录 后跟帖