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 ...
随机推荐
- 编写Java代码时应该避免的6个坑
通常情况下,我们都希望我们的代码是高效和兼容的,但是实际情况下代码中常常含有一些隐藏的坑,只有等出现异常时我们才会去解决它.本文是一篇比较简短的文章,列出了开发人员在编写 Java 程序时常犯的错误, ...
- java进阶(24)--ArrayList集合、LinkList集合、Vector集合
一.基础 1.ArrayList集合底层是Object[]数组 2.默认容量10(优先:Add第一个元素,初始化未0,jdk13) 3.构造方法:无参(默认).有参 4.ArrayList集合扩容比例 ...
- kafka 的基本概念及使用场景
本文为博主原创,未经允许不得转载: 1. Kafka 的使用场景: 1.日志收集:一个公司可以用Kafka收集各种服务的log,通过kafka以统一接口服务的方式开放给各种 consumer,例如ha ...
- 【java】 向上转型的运用
应用 :求面积 1,抽象类 Geometry . public abstract class Geometry { public abstract double getArea(); } 2,矩形 ...
- asp.net core 开启gzip压缩
// 第一步: 配置gzip与br的压缩等级为最优 services.Configure<BrotliCompressionProviderOptions>(options => { ...
- MySQL高可用搭建方案之(MMM)
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 注意:这篇转载文章,非原创 首发博客地址 原文地址 前言 MySQL的高可用 ...
- [转帖]JVM随笔 --- 安全点(safe point)与 安全区域( safe region)
https://zhuanlan.zhihu.com/p/461298916 11 人赞同了该文章 最近回顾 JVM safe point 与 safe region 又有一些新的感悟与收获,特别写篇 ...
- OB指定开源版本MySQL模式单节点安装
OB指定开源版本MySQL模式单节点安装 yum源处理 yum install -y yum-utils yum-config-manager --add-repo https://mirrors.a ...
- [转帖]SkyWalking告警使用
SkyWalking告警 SkyWalking提供了强大的监控告警功能,在监控到应用出现问题的时候,会调用webhook或者gRPC hook或者Wechat DingDing等工具报告警告信息 而且 ...
- [转帖]前后台切换命令(ctrl+z jobs bg fg &)
当我在终端里面运行某个命令的时候,结果不是很快就能出来的那种,或者是一大堆字在屏幕上狂翻.这个时候,有时ctrl+c也不起作用,那我会用ctrl+z退出来,这个很有效,但是说实话我不知道为什么这个可以 ...