ThinkPHP 6.0 SQL注入漏洞修复
公司买的官网被政府网安检测出SQL注入漏洞:
隐患描述
SQL漏洞证明语句:
python3 sqlmap.py -u "http://xxxx?keywords=1" -p keywords --level=5 --risk=3 --tamper=space2comment.py,between.py --current-db --random-agent --time-sec=10 --batch --dbms="MySQL"
漏洞回显:

权重归属证明:https://www.aizhan.com/cha/
审查项目代码,发现整个页面都是模板生成。找到前端:lists_down.html:
<div class="boxBottom">
{zhl:list titlelen='30' addfields='file,ftype' orderby='sort_order desc,add_time desc' id="val" pagesize="8"}
<div class="item">
<a href="javascript:;" onclick="go_down(this)" data-file="{$val.file}" class="flexBetween">
<div class="left">
<div>{$val.title} </div>
<p>{$val.ftype} | {:date('Y年m月d日',$val.add_time)}</p>
</div>
<div class="right">
<p>
<img src="{__PUBLIC_PATH}/images/icon19.png" class="img1">
<img src="{__PUBLIC_PATH}/images/icon19_.png" class="img2">
资料下载
</p>
</div>
</a>
</div>
{/zhl:list}
</div>
然后再无头绪,不知道后端代码在哪。直到偶然机会搜索到:\vendor\topthink\think-template\src\template\taglib\Zhl.php文件下的tagList方法,
顺藤摸瓜找到:vendor\topthink\think-template\src\template\taglib\zhl\TagList.php文件中,对keywords的处理,是通过sql拼接:
array_push($condition, "a.title like '%{$keywords}%'");
打上日志后发现果然在这,于是在其前面加上敏感字符处理:
//duxd 处理sql注入 240206
$keywords = $value;
$keywords = str_replace('\\', '\\\\', $keywords); // 转义反斜杠
$keywords = str_replace('\'', '\\\'', $keywords); // 转义单引号
$keywords = str_replace('"', '\\"', $keywords); // 转义双引号
处理完毕,留个记号,以备后查。
中间用到了python复现检测,方法参照:https://blog.csdn.net/u013541325/article/details/109334272

中间感谢同事们的帮助。
隐患描述
SQL漏洞证明语句:
python3 sqlmap.py -u "http://www.raynen.cn/bianpinqi.html?keywords=1" -p keywords --level=5 --risk=3 --tamper=space2comment.py,between.py --current-db --random-agent --time-sec=10 --batch --dbms="MySQL"
ThinkPHP 6.0 SQL注入漏洞修复的更多相关文章
- ref:ThinkPHP Builder.php SQL注入漏洞(<= 3.2.3)
ThinkPHP Builder.php SQL注入漏洞(<= 3.2.3) ref:https://www.jianshu.com/p/18d06277161e TimeSHU 2018.04 ...
- 关于ECSHOP中sql注入漏洞修复
标签:ecshop sql注入漏洞修复 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程 ...
- Beescms_v4.0 sql注入漏洞分析
Beescms_v4.0 sql注入漏洞分析 一.漏洞描述 Beescms v4.0由于后台登录验证码设计缺陷以及代码防护缺陷导致存在bypass全局防护的SQL注入. 二.漏洞环境搭建 1.官方下载 ...
- 网站sql注入漏洞修复方案之metinfo 6.1.0系列
近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危的sql注入漏洞,攻击者可以利用该漏洞对网站的代码进行sql注入攻击,伪造恶意的sql非法语句,对网站的数 ...
- [CMS] UsualToolCMS-8.0 sql注入漏洞【转载】
原文地址:http://lyscholar.cn/2019/07/30/代码审计-usualtoolcms存在sql注入漏洞/ 0x01 漏洞环境 版本信息:UsualToolCMS-8.0-Rele ...
- PHPCMS V9.6.0 SQL注入漏洞分析
0x01 此SQL注入漏洞与metinfo v6.2.0版本以下SQL盲注漏洞个人认为较为相似.且较为有趣,故在此分析并附上exp. 0x02 首先复现漏洞,环境为: PHP:5.4.45 + Apa ...
- DT6.0关于SQL注入漏洞修复问题
阿里云安全平台提示:Destoon SQL注入,关于: Destoon的/mobile/guestbook.php中$do->add($post);这行代码对参数$post未进行正确转义,导致黑 ...
- ThinkPHP最新版本SQL注入漏洞
如下controller即可触发SQL注入: code 区域 public function test() { $uname = I('get.uname'); $u = M('user')-> ...
- ThinkPHP<6.0 SQL注入代码审计分析
版本过多只分析大版本和使用人数较多的版本目前使用人数最多的3.2.3.审计时也是发现多个版本未公开漏洞 测试环境: Mysql5.6/PHP5.5 首先明确的是在不使用PDO做参数绑定时ThinkP ...
- 【原创】风讯DotNetCMS V1.0~V2.0 SQL注入漏洞
文章作者:rebeyond 注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到乌云-漏洞报告平台.I.S.T.O版权所有,转载需注明作者. 受影响版本:貌似都受影响. 漏洞文件:use ...
随机推荐
- 在mounted 中发生异步和同步共存的问题
https://www.cnblogs.com/ifon/p/12391923.html
- notepad++的使用技巧
一.多标签管理 1.可支持多个标签的展示
- java进阶(1)--final、常量
final是java的关键字,主要表示最终的 一.final修饰的类无法被继承
- 【ThreadX-NetX】Azure RTOS NetX概述
Azure RTOS NetX是工业级TCP / IP IPv4嵌入式网络堆栈,专门针对深度嵌入式,实时和IoT应用程序而设计.Azure RTOS NetX是Microsoft最初的IPv4网络堆栈 ...
- [转帖]故障分析 | 让top命令直接显示Java线程名?-- 解析OpenJDK的一个bug修复
https://zhuanlan.zhihu.com/p/413136873 作者:阎虎青DBLE 开源项目负责人,负责分布式数据库中间件研发工作:持续专注于数据库方面的技术,始终在一线从事开发:对数 ...
- [转帖](1.2)sql server for linux 开启代理服务(SQL AGENT),使用T-SQL新建作业
https://www.cnblogs.com/gered/p/12518090.html 回到顶部 [1]启用SQL Server代理 sudo /opt/mssql/bin/mssql-conf ...
- [转帖]linux之iftop命令
https://rumenz.com/rumenbiji/linux-iftop.html Linux安装iftop > yum install iftop -y > iftop 界面如下 ...
- Windows 挂载minio 到本地磁盘
Windows 挂载minio 到本地磁盘 背景 新公司建议使用minio 进行一些业务操作 已经在各位领导同事的帮助下找到了linux本地s3fs挂载和k8s使用csi方式挂载到pod内的方式. 今 ...
- Jmeter学习之一_连接与测试Redis
Jmeter学习之一_连接与测试Redis 简介 下载: https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.zip 注意事项: D ...
- [转帖]strace 命令详解
目录 1.strace是什么? 2.strace能做什么? 3.strace怎么用? 4.strace问题定位案例 4.1.定位进程异常退出 4.2.定位共享内存异常 4.3. 性能分析 5.总结 1 ...