CTF 中的随机数问题
随机数问题前言在 CTF 比赛中,有些时候可能会考一些关于 随机数的问题,其实考察的是两个函数,即 mt_rand() 和 mt_srand()。
前者用于生成随机数,后者则用于给随机数发生器播种。
函数的认识mt_rand()mt_rand — 通过梅森旋转(Mersenne Twister)随机数生成器生成随机值
参数
作用
min
可选的、返回的最小值(默认:0)
max
可选的、返回的最大值(默认:mt_getrandmax())
具体参考:https://www.php.net/manual/zh/function.mt-rand.php
示例:
1234567<?php echo mt_rand() . " ";echo mt_rand() . " ";echo mt_rand() . " ";echo mt_rand() . " ";echo mt_rand() . " ";?>
程序运行结果:
可以看到,每次程序运行得到的结果都不一样, ...
CTF 中的变量覆盖考点
变量覆盖定义变量覆盖指的是可以用我们的传参值替换程序原有的变量值。
变量覆盖的场景能造成变量覆盖的相关函数:
extract()
parse_str()
$$
mb_parse_str()
import_request_variables() deprecated in >= PHP 5.4.0
array_merge()
register_globals
相关函数的认识extractextract — 从数组中将变量导入到当前的符号表
参数
作用
array
一个关联数组,此函数会将数组的键名作为变量名,相应的值作为变量的值。 对每个键/值对都会在当前的符号表中建立变量
other
其他参数请参考官方文档
详细请参考:https://www.php.net/manual/zh/function.extract.php
示例:
123456789<?php $arr = array('name' => 'x1ong', 'age' => '20' ...
CTF 中的弱类型比较和 MD5 绕过
PHP 中的弱类型比较
=== 在进行比较的时候,会先判断两边的数据类型是否相等,再进行比较。
== 在进行比较的时候,会先将字符串类型转换成相同,再比较。
如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换数值并且比较按照数值来进行。
12345678<?php var_dump("admin" == 0); // true var_dump("1admin" == 1); // true var_dump("admin1" == 1); // falsevar_dump("admin1" == 0); // truevar_dump("0e123456" == "0e4456789");?>// 以上代码可自行测试
当一个字符串被当做一个数值来取值,其结果和类型如下:
如果该字符串没有包含". ", "e", "E" 并且其数值在整型的范围之内,该 ...
CCNA 学习记录 - 结课综合实验
距离寒假结束还有不到16天,如今,CCNA 的课程全部结束了,对于自己来说,收获很大,个人认为,学习网安还是需要了解一些交换路由基础的。明天继续学习 安全相关的内容 加油 X1ong 。
网络拓扑
网络需求
总部网络和杭州办事处网络都通过 o_route 做 NAT 转换实现上网。
出口路由器 o_route 与互联网路由器做主备路由
总部网关部署在核心交换机上、杭州办事处网关部署在出口路由上。
其他需求请根据拓扑实现。
需求实现设置主机名JR-1123456Switch>enSwitch#conf tEnter configuration commands, one per line. End with CNTL/Z.Switch(config)# Switch(config)#hostname 1-JR1-JR(config)#
JR-21234567Switch>Switch>enSwitch#conf tEnter configuration commands, one per line. End with CNTL/Z.Switch(conf ...
CCNA 学习记录 - NAT 转换
引言 随着Internet的发展和网络应用的增多,IPv4地址枯竭已经成为制约网络发展的瓶颈。尽管IPv6可以从根本上解决IPv4地址空间不足的问题,但目前众多的网络设备和网络应用仍是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术的使用是解决这个问题的主要技术手段。
网络地址转换技术NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。
应用场景
企业或家庭所使用的网络为私有网络,使用的是私有地址;运营商维护的网络为公共网络,使用的是公有地址。私有地址不能在公网中路由。NAT一般部署在连接内网和外网的网关设备上。
静态 NAT
静态 NAT 实现了私有地址和公有地址的一对一映射。一个公网IP只会分配给唯一且固定的内网主机。
动态 NAT
动态NAT基于地址池来实现私有地址和公有地址的转换。
PAT
端口地址转换(PAT,Port Address ...
CCNA 学习记录 - ACL 访问控制列表
引言企业网络中的设备进行通信时,需要保障数据传输的安全可靠和网络的性能稳定。访问控制列表 ACL(Access Control List)可以定义一系列不同的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的处理,从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。
ACL 应用场景
假设我们不想让 192.168.1.0/24 网段的主机访问到 服务器 A 只允许其网段访问到互联网,只需要在 路由器上 配置 ACL 即可。同时,如果想让 192.168.2.0/24 不能访问互联网,只能访问服务器区域,也能通过 ACL 实现。
ACL 是一个基于包过滤的规则,ACL可以通过定义规则来允许或拒绝流量的通过。
ACL可以根据需求来定义过滤的条件以及匹配条件后所执行的动作。
ACL 的分类
分类
编号范围
参数
基本ACL
1-99
源IP地址等
拓展ACL
100-199
源IP地址、目的IP地址、协议、 源端口、目的端口等
相关配置网络拓扑
目前,是已实现全网互通。
基础 ACL基础 ACL 编号为 1-99。
需求: ...
CCNA 学习记录 - 小型网络配置实例
不知不觉,寒假已经过半,距离开学还有20多天,再过几天也是除夕了, 回顾上半个寒假主要是在学习 CCNA 以及写了两个web 靶场。弹指一挥间,提前祝大家新年快乐。
小型网络配置实例需求
网络规划经过规划,标记如下:
配置主机名SW112345Switch>enSwitch#conf tEnter configuration commands, one per line. End with CNTL/Z.Switch(config)#hostname SW1SW1(config)#
SW212345Switch>enSwitch#conf tEnter configuration commands, one per line. End with CNTL/Z.Switch(config)#hostname SW2SW2(config)#
SW312345Switch>enSwitch#conf tEnter configuration commands, one per line. End with CNTL/Z.Switch(config)#ho ...
CCNA 学习记录 - 交换基础
引言常见的以太网设备包括Hub、交换机等。交换机工作在数据链路层,它有效地隔离了以太网中的冲突域,极大地提升了以太网的性能。
日前,Hub(集线器)设备很少见,它可能出现在小型办公室当中。
小型交换网络
交换机工作在 OSI 七层模型中的数据链路层,用来转发数据帧。因此交换机,也被称为二层设备。
交换机的转发原理转发行为
交换机的转发行为涉及到泛洪(Flooding)、转发(Forwarding)和丢弃(Discarding)这三个主要方面,
泛洪(Flooding): 当交换机收到某个接口发送的一个数据帧,但它的 MAC地址表 中没有目标 MAC地址 的对应记录时,交换机会执行泛洪操作。这意味着它将数据帧发送到所有连接的端口,除了接收到该数据帧的端口之外的所有端口。这样确保了目标设备能够接收到数据帧,同时也用于学习新的MAC地址。
转发(Forwarding): 当交换机在 MAC地址表 中找到了 目标MAC地址 的对应记录时,它会直接将数据帧转发到与目标地址相关联的端口。这是一种精确的目标转发,可以大大减少网络中的冗余流量,提高网络效率。
丢弃(Discarding): 有时候 ...
CCNA 学习记录 - 静态路由和动态路由
引言 以太网交换机工作在数据链路层,用于在网络内进行数据转发。而企业网络的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中,此时就需要使用路由器来连接不同的网络,实现网络之间的数据转发。而数据转发就需要涉及到路由和路由器。
路由相关概念局域网和广播域以下拓扑中分别存在局域网 LAN1 和 局域网 LAN2 以及 局域网 LAN3(路由器相连的一个网段,也是一个局域网),交换机的每个局域网都是一个广播域,广播报文是无法经过路由器的,也就是说,路由器不转发广播报文,故而该拓扑中是两个广播域。
路由选路
假设 RA 路由器要去往 RD 路由,那么通过 RB 和 RC 都可以去往 RD,作为源路由器的 RA 就需要进行 选路,通过 带宽、延迟、管理距离等因素进行综合判断。选择最优的一条路线,这就是路由器的选路。
IP 路由表既然路由器的作用是用来进行转发数据的,那么就需要知道将数据转发给哪个路由器,而存储这个路由表项的就是路由表。路由表中包含了路由器可以到达的网络(网段),如果到达的目的网络不在路由表当中,则该数据会被路由器丢弃。并返回 目标不可达。
在路由器设备 ...
web安全靶场之暴力破解篇
简单的四位数字访问靶场,页面提示用户名是admin,密码是四位纯数字。
接着输入用户名 admin ,密码随便输入,使用 burp 抓包即可,右击空白处,选择 Send to intruder
接着来到 Intruder 模块,由于这里我们知道用户名为 admin,但是不知道密码,故而攻击模式选择 Sniper 模块即可。
然后选中密码的值,点击 Add 设置为变量。
将密码的值设置为变量之后,我们点击 Payloads 设置密码字典。由于密码是某个范围的纯数字,因此 Payload Type 选择 Numbers。
最后点击 Start attack 即可。
最后等待暴破即可,由于登陆成功和登陆失败返回的内容长度是不一样的,故而可以通过长度值排序,定位到登陆成功的那条。
Top100访问靶场,提示用户名是 admin 密码是弱口令,我们这里可以加载弱口令字典进行暴破。具体字典可以通过 github 自行收集,我这里使用我特意制作的字典。
同上一关一样,先进行抓包,然后将其发送到 Intruder 模块。然后依旧将密码处设置为变量。
点击 Payloads 设置密码字 ...