公司买的官网被政府网安检测出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注入漏洞修复的更多相关文章

  1. 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 ...

  2. 关于ECSHOP中sql注入漏洞修复

    标签:ecshop sql注入漏洞修复 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程 ...

  3. Beescms_v4.0 sql注入漏洞分析

    Beescms_v4.0 sql注入漏洞分析 一.漏洞描述 Beescms v4.0由于后台登录验证码设计缺陷以及代码防护缺陷导致存在bypass全局防护的SQL注入. 二.漏洞环境搭建 1.官方下载 ...

  4. 网站sql注入漏洞修复方案之metinfo 6.1.0系列

    近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危的sql注入漏洞,攻击者可以利用该漏洞对网站的代码进行sql注入攻击,伪造恶意的sql非法语句,对网站的数 ...

  5. [CMS] UsualToolCMS-8.0 sql注入漏洞【转载】

    原文地址:http://lyscholar.cn/2019/07/30/代码审计-usualtoolcms存在sql注入漏洞/ 0x01 漏洞环境 版本信息:UsualToolCMS-8.0-Rele ...

  6. PHPCMS V9.6.0 SQL注入漏洞分析

    0x01 此SQL注入漏洞与metinfo v6.2.0版本以下SQL盲注漏洞个人认为较为相似.且较为有趣,故在此分析并附上exp. 0x02 首先复现漏洞,环境为: PHP:5.4.45 + Apa ...

  7. DT6.0关于SQL注入漏洞修复问题

    阿里云安全平台提示:Destoon SQL注入,关于: Destoon的/mobile/guestbook.php中$do->add($post);这行代码对参数$post未进行正确转义,导致黑 ...

  8. ThinkPHP最新版本SQL注入漏洞

    如下controller即可触发SQL注入: code 区域 public function test() { $uname = I('get.uname'); $u = M('user')-> ...

  9. ThinkPHP<6.0 SQL注入代码审计分析

    版本过多只分析大版本和使用人数较多的版本目前使用人数最多的3.2.3.审计时也是发现多个版本未公开漏洞 测试环境:  Mysql5.6/PHP5.5 首先明确的是在不使用PDO做参数绑定时ThinkP ...

  10. 【原创】风讯DotNetCMS V1.0~V2.0 SQL注入漏洞

      文章作者:rebeyond 注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到乌云-漏洞报告平台.I.S.T.O版权所有,转载需注明作者. 受影响版本:貌似都受影响. 漏洞文件:use ...

随机推荐

  1. 7 Englishi 词根

    1.跟直播,跟复习课,完成作业 2. 基础差加餐,听录播 3.如何听课 4.单词学习反复多次 如何记笔记 语块的汉语意思 单词的记忆方式和固定表达 俩种方式记忆单词 语块关联记忆 基础词根词缀(6节课 ...

  2. Web3初步实践总结

    大家好~Web3是2021年才开始的浪潮,我非常赞同Web3的去中心化的理念,并且最近从Web2全面转向Web3了. 现在与大家分享我的实践的经验,希望对大家有所帮助,谢谢! 目录 为什么要转向Web ...

  3. vue-element-admin完整开源项目介绍、本地部署和初步探索

    1 说明: 1.1 从一个广受好评的开源项目:vue-element-admin的本地化,来初步分析vue的相关知识. 2 github地址和下载本地部署: https://github.com/Pa ...

  4. SpringBoot RabbitMQ 实战

    RabbitMQ RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台 ...

  5. Windows Terminal 配色方案

    { "background": "#FFF2E2", "black": "#000000", "blue&qu ...

  6. (保姆级)服务器-Zabbix6.0使用Python脚本实现带图片的邮箱的报警

    前言 近期在琢磨Zabbix邮箱报警的功能,但是网上的教程通常是4.0或5.0版本Zabbix,并使用Python2.7环境,运行在新版本Zabbix6.0上有颇多问题,为此我基于原先教程修改基于Za ...

  7. [转帖]京东大佬细说:Nginx反向代理时保持长连接,看完直呼"学到了!"

    https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247488405&idx=1&sn=7081ff4e0ac1de ...

  8. Intel 移动CPU天梯榜

    Intel酷睿i9-13980HX 2023 2121 Intel酷睿i9-13900HX 2023 2051 Intel酷睿i9-13950HX 2023 2005 4 + Intel酷睿i9-12 ...

  9. [转帖]Oracle AWR报告提取方法

    https://www.cnblogs.com/jyzhao/p/4030022.html 本文旨在用来指导项目人员自行提取Oracle数据库的AWR报告. 1.当前连接实例的AWR报告提取:@?/r ...

  10. [转帖]Shell if 条件判断

      Shell  语言中的if条件 一.if的基本语法: if [ command ];then    符合该条件执行的语句 elif [ command ];then    符合该条件执行的语句 e ...