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

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

系列文章目录


5d6488fcbdaf409cbfc35731f50c1799.jpg


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


文章目录

系列文章目录

前言

一、XSS漏洞

漏洞危害

解决方案

1.参数过滤

2.Cookie设置HttpOnly

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

漏洞证明

解决方案

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

漏洞证明

解决方案

四、逻辑漏洞

漏洞验证

解决方案

五、弱口令

六、任意文件上传

解决方案

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

(2)后缀白名单

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

(4)图片复制

总结


前言

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


一、XSS漏洞


800034e9ee0443a7bed9f00673f7c23a.png


漏洞危害

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


解决方案

  1. 1.关闭外网访问后台管理模块 ;
  2. 2.登录次数进行限制,例:登录错误超过5次,锁定账户5-10分钟;
  3. 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);
            }
        }


总结

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

相关文章
|
20天前
|
SQL 安全 算法
网络防御前线:洞悉漏洞、加固加密与提升安全意识
【4月更文挑战第8天】在数字化时代,网络安全与信息安全已成为维系信息社会正常运转的关键。本文从网络安全的漏洞发现、加密技术的应用以及提高个人和组织的安全意识三个维度出发,深入探讨了如何构建更为坚固的网络防御体系。通过对现有网络安全威胁的分析,我们揭示了漏洞挖掘的重要性,并介绍了当前流行的加密技术及其在保护数据完整性和隐私中的作用。同时,文章还强调了培养良好的安全习惯对预防潜在攻击的重要性。本文旨在为读者提供全面的网络安全知识框架,以便更好地应对日益复杂的网络威胁环境。
|
20天前
|
安全 算法 网络安全
网络防御的三重奏:漏洞管理、加密技术与安全意识
【4月更文挑战第7天】在数字化时代,网络安全和信息安全已成为企业和个人不可忽视的战场。本文将深入探讨网络安全的核心问题——漏洞管理,介绍现代加密技术的进展,并强调提升安全意识的重要性。通过分析网络攻击的常见手段,我们揭示了有效管理漏洞的策略;同时,评估了从对称加密到非对称加密,再到量子加密的技术演进。最后,文章指出,在技术和工具不断进步的同时,用户的安全意识仍是防御体系中不可或缺的一环。
|
2天前
|
存储 SQL 安全
网络防御先锋:洞悉网络安全漏洞与加固信息防线
【4月更文挑战第26天】 在数字化的浪潮中,网络安全和信息安全已成为守护每个组织和个人数据资产的堡垒。本文将深入探讨网络安全领域内常见的安全漏洞类型、加密技术的最新进展以及提升安全意识的重要性。通过对这些关键领域的剖析,读者将获得构建坚固信息防线的知识武装,以应对日益复杂的网络威胁。
13 5
|
2天前
|
存储 安全 算法
网络防御先锋:洞悉漏洞、加密术与安全意识
【4月更文挑战第25天】 在数字化时代,网络安全与信息安全成为维系现代社会运行的基石。随着技术的发展,攻击手法不断进化,网络安全漏洞愈发难以防范。本文将深入探讨网络安全中的关键要素:漏洞识别与利用、加密技术的进展以及提升个体和企业的安全意识。通过分析这些关键要素,我们旨在为读者提供一套全面的知识框架,以应对日益复杂的网络威胁,并推动构建更加稳固的信息安全环境。
|
3天前
|
存储 安全 算法
构筑网络堡垒:洞悉网络安全漏洞与加密技术的融合之道
【4月更文挑战第25天】在数字时代的浪潮中,网络安全已成为维护信息完整性、确保数据流通安全的关键。本文深入探讨了网络安全领域内常见的安全漏洞及其成因,并分析了现代加密技术如何作为防御工具来弥补这些漏洞。同时,文章还强调了培养全民网络安全意识的重要性,以及通过教育与实践相结合的方式来提升整体社会的网络安全防护能力。
|
6天前
|
SQL 安全 算法
网络防线的构筑者:洞悉网络安全漏洞与加固信息防护
【4月更文挑战第22天】在数字化浪潮下,网络安全和信息安全成为维护社会稳定、保障个人隐私的重要基石。本文将深入探讨网络安全中存在的漏洞问题,介绍现代加密技术,并强调提升全民安全意识的必要性。通过对这些关键知识点的分享,旨在为读者提供一个关于如何构建和维护一个安全网络环境的全面视角。
|
10天前
|
存储 监控 安全
网络安全与信息安全:防范漏洞、应用加密、提升意识
【4月更文挑战第18天】 在数字化时代,网络安全与信息安全保障已成为维护国家安全、企业利益和个人隐私的关键。本文深入探讨网络安全的多面性,包括识别和防御网络漏洞、应用加密技术保护数据以及提升全民网络安全意识的重要性。通过对这些关键领域的分析,文章旨在为读者提供实用的策略和建议,以增强其网络环境的安全防护能力。
10 0
|
10天前
|
运维 安全 Cloud Native
安全访问服务边缘(SASE):网络新时代的安全与连接解决方案
SASE(安全访问服务边缘)是一种云基安全模型,结合了网络功能和安全策略,由Gartner在2019年提出。它强调身份驱动的私有网络、云原生架构和全面边缘支持,旨在解决传统WAN和安全方案的局限性,如高延迟和分散管理。SASE通过降低IT成本、提升安全响应和网络性能,应对数据分散、风险控制和访问速度等问题,适用于移动办公、多分支办公等场景。随着网络安全挑战的增加,SASE将在企业的数字化转型中扮演关键角色。
|
13天前
|
SQL 安全 Java
Java安全编程:防范网络攻击与漏洞
【4月更文挑战第15天】本文强调了Java安全编程的重要性,包括提高系统安全性、降低维护成本和提升用户体验。针对网络攻击和漏洞,提出了防范措施:使用PreparedStatement防SQL注入,过滤和转义用户输入抵御XSS攻击,添加令牌对抗CSRF,限制文件上传类型和大小以防止恶意文件,避免原生序列化并确保数据完整性。及时更新和修复漏洞是关键。程序员应遵循安全编程规范,保障系统安全。
|
14天前
|
存储 监控 安全
网络安全与信息安全:防范漏洞、强化加密、提升意识
【4月更文挑战第14天】随着信息技术的飞速发展,网络已成为日常生活和工作不可或缺的一部分。然而,网络安全威胁也随之增加,给用户的数据安全带来挑战。本文将深入探讨网络安全中的漏洞问题、加密技术的应用以及提升个人和企业的安全意识的重要性,旨在为读者提供全面的网络安全知识,帮助构建更加坚固的信息防线。
20 6