小米2020校招安全工程师笔试题二

1.strncpy(char *dest, const char *src, size_t n)

  • dest -- 指向用于存储复制内容的目标数组。
  • src -- 要复制的字符串。
  • n -- 要从源中复制的字符数。

        strncpy(b,a+1,10); // 从a+1 这个位置开始10个字符复制到b中

        为考虑内存越界,安全性问题,所以第三个参数为目的最大长度或者目的最大长度减一,防止当源buf大于目的buff时越界。

        同时对目标字符串后面的最后一个位置添加  \0 用来结束整体的字符串

     sizeof 用于计算内存占用大小,对于各种数据类型都有效,是编译时的静态操作;而 strlen 用于计算字符串的字符个数,只对以 '\0' 结尾的字符串有效,是运行时的动态操作。

2.java数组

        int数组对应的默认值是 0

3.Mysql数据库事务的四大特性(ACID)

        事务:把一组密不可分的操作系列集合在一起,这些操作要么全部执行,要么全部不执行。

        1.原子性:事务是内定义的操作是一个整体,是不可分割的。

        2.一致性:同一个事务,多次读取数据库中的同一个数据,读取的内容应该是一致的,不变的。

        3.隔离性:不同事务之间相互独立,互不干扰。

        4.持久性:事务提交后,事务内的操作对数据库的修改被永久保存在数据库文件中。

4.UDP报文最大长度64K,报文头部占8字节

5.

        1.运行 Redis 服务器时,最好不要使用 root 权限。运行服务器以非特权用户身份有助于降低潜在的安全风险,因为在 root 权限下运行的服务器可能会受到更多的攻击和潜在的漏洞利用。应该创建一个专用的非特权用户来运行 Redis 服务器。

        2.SSH 私钥文件应该保持私有,权限设置为 600 或 400,而不是 655 或 755。如果将权限设置得太宽松,其他用户可能会访问到你的私钥文件,从而危及你的 SSH 帐户的安全。

        3.使用 Ansible 对服务器进行远程管理。Ansible 是一种常见的自动化工具,用于配置和管理远程服务器。它可以按照最佳安全实践进行配置,并且通常是一种安全的方式来管理服务器。

        4.将 SSH 配置文件设置为禁止 root 登录。禁止 root 直接登录是一种安全最佳实践,因为它限制了攻击者对系统的访问。通常应该使用普通用户登录,然后使用 sudo 或其他特权升级方法来执行需要 root 权限的操作。

6.缓冲区溢出保护手段主要有:

  1. NX (No Execute):这是一种硬件加速的技术,用于标记内存区域为“不可执行”或“可执行”。这样,即使攻击者成功地注入恶意代码到内存,这些代码也无法执行。

  2. Stack Canary:这是一种特殊的保护方法,通过在栈帧之间插入一个“哨兵值”(Stack Canary)。如果发生缓冲区溢出,这个哨兵值会被覆写。在函数返回之前会检查这个值,如果被改变,程序会终止,从而防止了可能的缓冲区溢出攻击。

  3. PIE (Position-Independent Executable):虽然这个技术主要是为了实现可执行文件的地址空间布局随机化(ASLR),但它也可以作为一种间接的缓冲区溢出保护手段。当结合 ASLR 使用时,攻击者很难预测注入代码的确切地址。

  4. IPTABLES:虽然 iptables 是一种用于配置 Linux 内核***的工具,与缓冲区溢出保护没有直接关系。然而,在一定程度上,通过限制或过滤网络流量,它可能能减少某些类型的网络攻击,包括缓冲区溢出攻击。但这不是专门针对缓冲区溢出设计的防护手段。

        综上所述,NXStack Canary 明确地用于缓冲区溢出保护,而 PIE 可以间接地提供一些保护。IPTABLES 与缓冲区溢出保护没有直接关系。

7.嗅探BLE通信时,最重要的跳频信息存放在 CONNECT_REQ 包内

8.ARM寄存器

$r13代表SP指针,指向栈顶;$15代表PC指针,指向程序接下来要执行的指令地址。

        ARM微处理器共有37个32位寄存器,通用寄存器包括R0~R15,可以分为3类:
        (1)未分组寄存器R0~R7
        (2)分组寄存器R8~R14
        (3)程序计数器PC(R15)

        R14称为子程序链接寄存器LR(Link Register),当执行子程序调用指令(BL)时,R14可得到R15(程序计数器PC)的备份

9.cookie的基础属性有哪些?

1、domain属性:决定该cookie作用在哪个域。

2、path属性:决定该cookie字段作用在哪个路径下面。

3、secure属性:决定该cookie只能通过https传输。

4、HttpOnly属性:决定该cookie不能通过js读取。

5、expires属性:决定该cookie的过期时间

10.渗透测试的流程

        信息收集-漏洞发现-漏洞利用-获取权限-维持权限-横向移动-目标达成-清理痕迹

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值