信息服务上线渗透检测网络安全检查报告和解决方案2(安装文件信息泄漏、管理路径泄漏、XSS漏洞、弱口令、逻辑漏洞、终极上传漏洞升级)

news2024/11/15 18:44:29

系列文章目录

在这里插入图片描述

  1. 信息服务上线渗透检测网络安全检查报告和解决方案

文章目录

  • 系列文章目录
  • 前言
  • 一、XSS漏洞
    • 漏洞危害
    • 解决方案
      • 1.参数过滤
      • 2.Cookie设置HttpOnly
  • 二、安装文件目录信息泄漏
    • 漏洞证明
    • 解决方案
  • 三、后台管理路径泄漏、暴力破解、明文传输
    • 漏洞证明
    • 解决方案
  • 四、逻辑漏洞
    • 漏洞验证
    • 解决方案
  • 五、弱口令
  • 六、任意文件上传
    • 解决方案
      • (1)上传页面增加token,上传处理程序比对
      • (2)后缀白名单
      • (3)检测内容是否包含木马
      • (4)图片复制
  • 总结


前言

临近年关,不知是黑客兄弟们闲来无事,还是各个部门要年总总结,总之是在放假之际,系统漏洞陆续爆出。一言蔽之,总是自己技术不过关考虑不周导致的。


一、XSS漏洞

在这里插入图片描述

漏洞危害

  1. 窃取管理员帐号或Cookie,入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。
  2. 窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作。
  3. 网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。

在网址url参数后,如果对相对应的参数未做过滤,即直接执行javascript脚本,给系统带来的潜在风险。如:

http://test.com/?m=User&a=userForget<script>alert(1)</script>

解决方案

  • 在表单提交或者url参数传递前,对需要的参数进行过滤;
  • 增加前后端验证机制;

1.参数过滤

将常见的威胁系统安全的脚本符合进行过滤,代码如下:

/**
 * 安全过滤函数
 * @param $str
 */
function safe_replace($str)
{
    $disallow_str = array('%20', '%27', '%2527', '*', '"', "'", ';', '<', '>', "{", '}', '\\');
    if (is_array($str)) {
        return $str;
    } else {
        for ($i = 0; $i < count($disallow_str); $i++) {
            if (stripos($str, $disallow_str[$i]) !== false) {
                die('传递参数非法,禁止访问。');
            }
        }
        return $str;
    }
}

2.Cookie设置HttpOnly

HttpOnly是Cookie中一个属性,用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。但是,HttpOnly的应用仍存在局限性,一些浏览器可以阻止客户端脚本对Cookie的读操作,但允许写操作;此外大多数浏览器仍允许通过XMLHTTP对象读取HTTP响应中的Set-Cookie头。

在这里插入图片描述
Cookie的设置方式(本文采用较为简单的一种方式,其他方式另行查询)

        SetCookie("admin_name", $row["user_name"], time() + 604800, "/", '', '', TRUE);
        SetCookie("admin_phone", $row["user_phone"], time() + 604800, "/", '', '', TRUE);
        SetCookie("admin_id", $row["user_id"], time() + 604800, "/", '', '', TRUE);
        SetCookie("admin_menu", $row["user_menu"], time() + 604800, "/", '', '', TRUE);

二、安装文件目录信息泄漏

漏洞证明

在这里插入图片描述

解决方案

这是程序开发约定俗成的常见漏洞,比如:

  • 默认索引页是index.php或default.php;
  • 默认安装文件夹目录是install;
  • 默认后台管理文件目录是admin或manage;

  • 硬币的两面性告诉我们,解决这个问题的根源,就是换一个“你知我知”的文件名称即可。不能改变的,做参数过滤,可以改变的重命名。

三、后台管理路径泄漏、暴力破解、明文传输

漏洞证明

  1. 管理后台路径泄漏容易让攻击者很快找到后台,获取更多的有价值的信息;
  2. 检查到目标应用的后台登录入口。管理员应用程序一般用于网站的后台管理,具有全部的权限。这些应用程序可能包含一些敏感信息或具有较低的安全保护,攻击者可以通过该文件获取敏感信息或者进入网站后台,进行恶意操作。
  3. 明文传输一般存在web网站登录页面,用户名或者密码采用了明文传输,容易被嗅探软件截取。攻击者可能结合中间人攻击,窃取明文传输的密码,从而非授权登录系统,执行破坏性操。
    在这里插入图片描述

解决方案

  1. 关闭外网访问后台管理模块 ;
  2. 登录次数进行限制,例:登录错误超过5次,锁定账户5-10分钟;
  3. 建议密码传输进行加密,建议使用https、建议在网站前端进行js密码加密加密后在上传;

四、逻辑漏洞

漏洞验证

使用默认密码登录系统后,在强制修改密码时,存在手机验证码验证机制,但手机验证码可以使用bp拦截工具进行获取,从而得到修改密码的功能。
在这里插入图片描述

解决方案

直接进行后端校验,不要前端校验完再后端校验。

  • 采用session方式生成验证码;
  • 限制发送短信和IP绑定的次数;

五、弱口令

弱口令,指用户出于偷懒的行为,随时输入123456、88888等常见,容易被暴力破解字典记录,不费吹灰之力就可以破解的密码。

在用户注册、修改等行为时,系统增加密码验证的强度即可。

       <div class="layui-form-item">
            <label for="L_pass" class="layui-form-label">密码</label>
            <div class="layui-input-inline"><input type="password" id="L_pass" name="pass" lay-verify="pass" autocomplete="off" class="layui-input"></div>
            <div class="layui-form-mid layui-word-aux"><span class="x-red">* 密码必须同时包含大写、小写、数字和特殊字符其中三项且至少6位</span></div>
        </div>

密码必须同时包含大写、小写、数字和特殊字符其中三项且至少6位

        form.verify({
            user_phone: [/^1[3|4|5|6|7|8|9]\d{9}$/, '手机必须11位,只能是数字!']
            ,smscode: [/[\S]+/, "验证码为6位数且5分钟内有效"]
            ,pass: [/(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{6,30}/, '密码必须同时包含大写、小写、数字和特殊字符其中三项且至少6位']
            ,repass: function(){
                if($('#L_pass').val()!=$('#L_repass').val()){
                    return '两次密码不一致';
                }
            }
            ,user_email: [/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"],
        });

六、任意文件上传

在这里插入图片描述

解决方案

(1)上传页面增加token,上传处理程序比对

 $_SESSION['upToken'] = md5(rand(111111, 999999));
  $tpl->assign('upToken', $_SESSION['upToken']);
       //01.获取验证token
        if ($token != $_SESSION['upToken'] || $token == "") {
            $res['code'] = "1";
            $res['msg'] = "非法传参页面,请刷新重新上传";//$token . 'a-a' . $_SESSION['upToken'];
            //验证码自动销毁;
            session_destroy();
            die(json_encode_lockdata($res));
        }
<script>
	var upToken='{$upToken}';
</script>

(2)后缀白名单

  //白名单;
        $allow_type = array('application/pdf', 'image/png', 'image/jpeg', 'video/mp4');
        $allow_ext = array('pdf', 'jpg', 'png', 'mp4');
        //02.服务器端检查上传文件类型;
        if ($uploaded_tmp == "") {
            $res['code'] = "1";
            $res['msg'] = "无法获取上传文件";
            die(json_encode_lockdata($res));
        }

(3)检测内容是否包含木马

     //03.检测内容是否包含木马;
        if (checkHex($uploaded_tmp) != 0) {
            $res['code'] = "1";
            $res['msg'] = "文件包含危险信息";
            die(json_encode_lockdata($res));
        }

(4)图片复制

//重新制作一张图片,抹去任何可能有危害的数据

 if ((strtolower($uploaded_ext) == 'jpg' || strtolower($uploaded_ext) == 'jpeg' || strtolower($uploaded_ext) == 'png') &&
            ($uploaded_type == 'image/jpeg' || $uploaded_type == 'image/png') && getimagesize($uploaded_tmp)) {
            
            if ($uploaded_type == 'image/jpeg') {
                $img = imagecreatefromjpeg($uploaded_tmp);
                imagejpeg($img, $temp_file, 80);
            } else {
                $img = imagecreatefrompng($uploaded_tmp);
                imagepng($img, $temp_file, 80);
            }

            imagedestroy($img);

            //文件转储;
            if (rename($temp_file, $imgUrl . "/" . $fileName)) {
                $res['code'] = "0";
                $res['imgUrl'] = $imgUrl . "/" . $fileName;
                $res['data'] = ["src" => $imgUrl . "/" . $fileName, "title" => $fileName];//富文本上传调用
                $res['msg'] = '上传成功!';
                die(json_encode_lockdata($res));
            } else {
                $res['code'] = "1";
                $res['msg'] = '上传文件异常';
                die(json_encode_lockdata($res));
            }

            //删除所有暂时文件
            if (file_exists($temp_file)) {
                unlink($temp_file);
            }
        }

总结

所谓攻防,如果知道攻,那么防是简单的;如果对攻不甚了解,那么就无所谓防。感谢在系统上线,不同网络安全检测团队对系统不同方面的检测和及时反馈,让自己的系统不断的优化和调整,不断地成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/171856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LINUX学习之文件处理常用命令(三)

ls 命令描述 ls命令是linux系统中用来列出文件和目录的常用命令&#xff0c;它可以显示文件和目录的名称、权限、大小、修改时间等信息 以下是ls命令的常用参数: -a &#xff1a;列出全部的文件&#xff0c;连同隐藏文件-d &#xff1a;仅列出文件目录&#xff0c;而不是列…

【K哥爬虫普法】辛苦钱被中间商抽走八成,还因此锒铛入狱

我国目前并未出台专门针对网络爬虫技术的法律规范&#xff0c;但在司法实践中&#xff0c;相关判决已屡见不鲜&#xff0c;K 哥特设了“K哥爬虫普法”专栏&#xff0c;本栏目通过对真实案例的分析&#xff0c;旨在提高广大爬虫工程师的法律意识&#xff0c;知晓如何合法合规利用…

【Python百日进阶-数据分析】Day229 - plotly的动画

文章目录一、动画1.1 基本动画1.2 使用 Plotly Express 制作动画条形图1.3 当前动画限制和注意事项二、为动画添加控制按钮2.1 简单的播放按钮2.2 曲线上的移动点2.3 沿平面曲线移动 Frenet 框架2.4 使用滑块和按钮三、MRI 体积切片的可视化一、动画 使用 Plotly Express 制作…

23种设计模式(九)——抽象工厂模式【对象创建】

文章目录 意图什么时候使用抽象工厂真实世界类比解决方案抽象工厂模式的实现抽象工厂模式的优缺点亦称: Abstract Factory 意图 抽象工厂是创建型设计模式,它强调了一系列相关产品对象(属于同一个产品族)的创建过程,它和工厂方法模式的侧重点不同,工厂方法模式更加侧重于…

JUC面试(四)——ABA问题

ABA问题 从AtomicInteger引出下面的问题 CAS -> Unsafe -> CAS底层思想 -> ABA -> 原子引用更新 -> 如何规避ABA问题 假设现在有两个线程&#xff0c;分别是T1 和 T2&#xff0c;然后T1执行某个操作的时间为10秒&#xff0c;T2执行某个时间的操作是2秒&#…

Python---人生重开模拟器(简版)

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;本专栏主要更新一些python的基础知识&#xff0c;也会实现一些小游戏和通讯录&#xff0c;学时管理系统之类的&#xff0c;有兴趣的朋友可以关注一下。 人生重开模拟器思维导图前言一、设置初始属性1.…

〖百宝书-思维锻炼③〗——三心理论——成功的来源

大家好&#xff0c;我是涵子&#xff0c;今天我们来聊聊三心理论。 &#x1f4ac; 人生格言&#xff1a;Stay foolish, stay kind.&#x1f4ac; &#x1f4eb; 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;和大家一起学习&#xff0c;一起进步&#x1f440; &a…

Ae 效果详解:CC Snowfall

效果/模拟/CC SnowfallEffects/Simulation/CC Snowfall示例CC Snowfall &#xff08;下雪效果&#xff09;&#xff0c;可用来模拟带景深、光效和运动模糊的下雪效果。Flakes 雪花片数用于设置雪花片的数量。默认值 10000。Size 大小用于设置雪花片的大小。默认值 3.00。Variat…

连续系统PID的Simulink仿真-3

利用简化S函数&#xff0c;实现连续系统PID的Simulink仿真-2中S函数同样的功能。利用S函数简化形式实现被控对象的表达、控制器的设计及仿真结果的输出。在简化S函数中&#xff0c;flag-0时为S函数初始化&#xff0c;其中 sys包括6个参数:第1个参数表示连续系统的阶数;第2个参数…

DBCO-PEG-4ARM,四臂聚乙二醇二苯基环辛炔,4Arm PEG-DBCO

●中文名&#xff1a;四臂-聚乙二醇-二苯基环辛炔 ●英文名&#xff1a;4Arm PEG-DBCO&#xff0c;DBCO PEG 4ARM ●外观以及性质&#xff1a; ​4Arm PEG-DBCO产物呈固体或粘性液体&#xff0c;取决于PEG分子量&#xff0c;高分子DBCO功能化PEG&#xff0c;“点击化学"…

【JavaScript】事件相关知识详解

&#x1f4bb; 【JavaScript】事件相关知识详解&#x1f3e0;专栏&#xff1a;JavaScript &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向&#xff1a;目前主攻前端…

CES 2023:高通从移动互联深入布局未来智驾

作为全球规模最大、影响最为广泛的国际消费电子展&#xff0c;CES曾经因为三年疫情而无奈中断&#xff0c;如今终于在2023年1月重返美国拉斯维加斯。而不管是CES 2023的3200多家参展企业&#xff0c;还是数量超过10万的现场观众&#xff0c;当他们走出位于拉斯维加斯会议中心西…

02Docker镜像

Docker基础2&#xff08;镜像&#xff09; 一、Docker镜像介绍 1.1 简介 镜像是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配…

《Buildozer打包实战指南》第六节 buildozer.spec配置文件中的其他参数

目录 android.permissions android.features android.api android.minapi android.sdk android.ndk android.ndk_api android.private_storage android.ndk_path android.sdk_path android.ant_path android.skip_update android.accept_sdk_license android.a…

【Linux】基础:线程的概念

【Linux】基础&#xff1a;线程的概念 摘要&#xff1a;本文介绍Linux下的线程概念&#xff0c;首先将会线程在系列教材中的定义进行抛出&#xff0c;从常规的操作系统进行理解线程的概念&#xff0c;在具体说明Linux下的进线程的管理与组织方式&#xff0c;以及由于该组织方式…

2022年度笔记本十大热门品牌销量排行榜

近年来&#xff0c;由于大环境的改变&#xff0c;线上教育、线上办公等的需求使得平板电脑出货量逐步提升。同时&#xff0c;5G时代来临&#xff0c;万物互联是未来的趋势&#xff0c;手机由于操作系统和交互上的局限性&#xff0c;笔记本电脑将会扮演更加重要的角色。未来&…

Arduino开发ESP8266连接无线路由器

实现ESP8266连接一个WIFI路由器ESP8266选择多个路由器中信号将强的进行连接源代码如下/* ESP8266模块连接网络实验1、代码段1实现连接无线路由器实验2、代码段2实现esp8266搜索已存在网络中质量较好的并进行连接*/#include <ESP8266WiFi.h> // 提供 Wi-Fi 功能的库#inclu…

监控安防人员入门基础

1、 决定视频流畅程度的是以下哪个属性&#xff1f; A、分辨率 B、率上限 C、帧率 D、编码方式 题解&#xff1a;一幅完整的视频画面为一帧&#xff0c;每秒显示的帧的数目为帧率&#xff0c;帧率越高&#xff0c;视频更流畅。因此答案是&#xff1a;C 2、 关于图像分辨率和…

solr业务域配置

SolrSolr作为一个Java开发的高性能&#xff0c;用于对查询性能进行优化的全文搜索服务器&#xff0c;它的使用需要配置业务域&#xff1a;第一步是添加中文分析器上传中文分析器并解压&#xff0c;复制jar包到solr的lib文件夹下&#xff1a;cp IKAnalyzer2012FF_u1.jar /usr/lo…

FA-PEG-DBCO,DBCO-PEG-Folate,叶酸聚乙二醇环辛炔

●中文名&#xff1a;叶酸聚乙二醇环辛炔&#xff0c;叶酸聚乙二醇二苯基环辛炔&#xff0c;DBCO-PEG-叶酸 ●英文名&#xff1a;FA-PEG-DBCO &#xff0c; Folate-PEG-DBCO&#xff0c;DBCO-PEG- FA&#xff0c;DBCO-PEG-Folate&#xff0c;DBCO-PEG- Folic acid ●外观以及…