腾讯安全技术笔试题

一、单项选择(判断)

1.Linux命令traceroute主要利用了IP协议中的TTL协议字段来实现。

解析:√正确。程序是利用增加存活时间(TTL)值来实现其功能的。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并发送一个ICMP TTL数据包给原数据包的发出者。

2.Linux系统中,进程只能通过系统调用由用户态切换到内核态,并且处于安全考虑,内核态有单独的进程栈空间,不复用用户态栈空间。

解析:×错误。用户态向内核态切换的三种情况:1.系统调用;2.产生异常;3.外设产生中断。

3.在Javascript中执行如下代码encodeURI("hello world!");运行结果为hello%20world%21是否正确。

解析:×错误。结果为“hello%20world!”


二、不定项选择

1.应用程序开发过程中,下面哪个是最好的安全实践。

A.使用srand函数初始化后再使用rand函数生成随机数。

B.使用C标准的系列字符串处理函数strcpy/strcat/sprintf/scanf/gets处理外部输入。

C.使用system函数执行外部输入的命令。

D.使用自定义的私有加密算法而不是标准加密算法来增强安全性。

解析:A。

C标准的系列字符串处理函数,不检查目标缓冲区的大小,容易引入缓冲区溢出的安全漏洞。
字符串拷贝函数:strcpy, wcscpy
字符串拼接函数:strcat, wcscat
字符串格式化输出函数:sprintf, swprintf, vsprintf, vswprintf, 
字符串格式化输入函数:scanf, wscanf, sscanf, swscanf, fscanf, vfscanf, vscanf, vsscanf
stdin流输入函数:gets
这类函数是公认的危险函数,应禁止使用此类函数(微软从Windows Vista的开发开始就全面禁用了危险API)。
最优选择:使用ISO/IEC TR 24731-1定义的字符串操作函数的安全版本,如strcpy_s、strcat_s()、sprintf_s()、scanf_s()、gets_s() 等。

2.以下程序在64位机器下编译、执行后的输出是

#include
#include
using namespace std;
int main(){
    char str[]="This is a string";
    char *ptr=str;
    cout<

A.This is a string; This is a string; 16 8

B.T; This is a string; 17 17

C.This is a string; T; 17 8

D.This is a string; T; 16 4

解析:C。sizeof(str),计算到“\0”位置,因此是16+1;64位系统,指针即为8个字节。

3.关于New、Malloc、Delete、Free操作描述不正确的是

A.都是在堆上进行动态内存操作的

B.Malloc在进行内存分配时需要指定字节数,并会对分配的内存进行初始化

C.New会自动调用对象的构造函数

D.Free调用时不会自动调用对象的析构函数

解析:

4.黑客使用powershell攻击绕过杀毒软件检测,以下说法错误的是

A.在系统的applocker中禁止脚本可以防御powershell攻击

B.设置powershell的Execution Policy为Restricted,不允许修改的前提下黑客无法执行powershell代码

C.Applocker可以防护流行的“挖矿”木马

D.管理员删除powershell.exe可以防御powershell攻击

5.IA64架构下,哪个寄存器是用作栈顶记录

A.RBP

B.RIP

C.RAX

D.RSP

6.TCP协议状态变迁,在established状态下主动发送FIN时,进入哪个状态

A.TIME_WAIT

B.FIN_WAIT

C.CLOSING

D.CLOSE_WAIT

解析:B

腾讯安全技术笔试题_第1张图片

 

7.近段时间Memcache出现漏洞被利用发起大规模攻击,主要利用哪个协议进行攻击

A.ICMP

B.TCP

C.UDP

D.SNMP

解析:C

8.对于C++程序而言,编译成exe后可以发现,通常局部变量的初始值会放在(),而全局变量的初始值会放在()

A.堆,栈

B.栈,text区

C.堆,code区

D.栈,堆

解析:B

9.在Debian中,想要查看PID为1000的进程的内存布局,请补全命令缺失部分:cat ()/maps

A./etc/1000

B./proc/pid/1000

C./proc/1000

D./etc/pid/1000

解析:C

10.对于ARM指令 MOV R1,R0,LSL #2,已知R0的值为7,R1的值为5,R2的值为3.那么这步操作执行完以后R1的值为

A.15

B.35

C.21

D.28

11.64位程序的char*(字符串类型指针)、函数指针、int32_t*类型分别占用多少个字节的内存

A.char*类型占用最小

B.三种类型不同,所以占用内存不同

C.函数指针和int32_t*占用内存相同

D.char*占用8字节

12.全局变量BYTE X=4,线程A、B、C几乎同时依次执行①MOV EAX,X②INC EAX ③MOV X,EAX这三条指令,导致了“条件竞争”的安全问题,请写出三个线程执行完之后,所有可能值

A.4,4,5

B.5,5,5

C.4,5,6

D.5,5,6

13.以下哪个不属于防御json劫持的办法

A.Cookie鉴权

B.Referer校验

C.CSRF Token

D.以上都不属于

14.常用于网页挂马的HTML标签不包括下面哪一个

A.