笔试题

前言

记录一下刷笔试题遇到的一些题目(题目不一定全,看心情挑选)

百度(不知道时间)

DNS欺骗的方式有哪些

host文件篡改、本机DNS服务器IP地址篡改、DNS通讯包篡改

cookie和session两种。他们又是如何起作用的?各有哪些优缺点?

起作用:保存在客户端

优点:极高的扩展性和可用性(数据持久性、不需要任何服务器的资源,可配置到期规则,简单性、基于文件的轻量结构,通过良好的编程控制保存在cookie中的session对象的大小,通过加密和安全传输技术,减少cookie被破解的可能性,cookie里面不存放敏感数据被盗取也不会有什么重大损失。

缺点:cookie的长度和数量有限制;如果被截取篡改会导致丢失session的所有信息;有时不能保存在客户端上

session

起作用:保存在服务器中;依赖session id,而这个东西存放在cookie中

优点:长度,比较安全

缺点:性能问题

影响到cookie值作用范围的因素有哪些?请一一说明。

path属性:把cookies的作用范围限制到服务器的目录,从而允许你把cookies限制到网站的某个应用程序

Domain属性:默认时cookies是与特定的域相关联的,Domain属性可以限制cookie的域范围

从安全角度来考虑,一个大型网站的单点登录可能会引入哪些安全问题?如何设计安全的在线单点登录系统?

问题:cookie泄露影响所有子站、单点故障造成系统瘫痪

设计:利用单用户多Openld方案。即每次用户通过用户名/密码登录时,产生一个OpenId保存在Redis里,并且设定过期时间,这样多个终端登录就会有多个OpenId与之对应,不再会存在一个OpenId失效所有终端验证都失效的情况。

PS:Openld是:将用户的身份标识信息简化为OpenId存放于客户端,当用户登录某个子系统时,将OpenId传送到服务端,服务端根据OpenId构造用户验证信息

网易

下列哪些命令可以清除widnows日志

1
wevtuil

有关DLL劫持,下列说法正确的是

程序会最先加载windows目录中的dill文件

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。现有一个test.sh文件,且有可执行权限,文件中内容为:

#!/bin/bash
aa=’Hello World !’
请问下面选项中哪个能正常显示Hello World !

1
. ./test.sh >/dev/null 1 && echo $aa

预防Ddos的方法可以有

限制同时打开syn半连接的数目

TCP释放连接第二次挥手时ACK(),第三次挥手时ACK()?

信是1,信是1

后退N帧协议的发送窗口大小是(),接收窗口的大小是()?

1
>1,=1

下列对TCP/IP结构及协议分层不正确的是

传输层是TCP、UDP、TLS、ssh

以下命令用于设置环境变量的是

export

Ext3日志文件系统的特点是

高可用性

下列有关软连接描述正确的是

不能对目录创建软连接

如何在多线程中避免发生死锁

允许进程同时访问某些资源

下列有关线程的说法正确的是:

sleep()方法使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法时,需要捕捉InterruptedException异常。

数字签名 elgamal算法的原理是

扩展欧几里得定理

下面关于traceroute命令,描述正确的是

显示到达目的地址经过的路由器

android虚拟机位于那一层

Libraries

rootkit通常运行在那一层

ring0

以下哪项是对抗ARP欺骗有效的手段

使用静态ARP缓存

Stack Canary 的作用是什么?

缓解栈越界写入

已知shell脚本名称为test.sh, 现在想在脚本执行时先输出test.sh自身脚本名,应该怎么做

1
echo $0

shell脚本中,需求如下:如果 ls testfile 执行成功输出True,否则输出Fail,下列哪项正确

1
ls testfile; [[ $? -eq 0 ]] && echo True || echo Fail

以下场景中不会导致内存泄露的是

在Activity被destory的时候未将全局变量设成null

下面指针所指向的内存,哪一块是可以修改的()

1
int* const c

下面可以匹配正则表达式是?

1
<img src="http://image.163.com"></img>
1
<img src="[^"]*"></img>

采用数字签名为Android应用程序签名是一个有效的防止恶意应用破坏系统的方式,那么下面有关数字签名的描述错误的是

Android程序包使用的数字证书需要一个权威的数字证书机构签名认证

下列关于安卓打包混淆说法错误的是

如果不想输入文件被压缩,可以使用-dontobfuscate配置命令

情景题

1
2
3
4
5
下列关于Android安全机制说法错误的是
进程沙箱隔离机制,使得Android应用程序在安装时被赋予独特的用户标识(UID),程序运行在独立的进程空间,但是可以访问其他应用程序的资源文件。
你做为一个团队的Android端开发工程师,现在发现你们的APK出现了破解和二次打包的情况。
现在团队需要你制定一套如何防止破解,如何防止被二次打包的方案。请你根据你所了解的技能,来制定一套解决方案。
方案包含但不限于:提高逆向分析难度、反静态分析、反调试、防二次打包等等。

代码混淆+加固

小米(2018)

Mysql sql注入中使用延时注入时常用的语句是

1
2
sleep(5)
benchmark(100000000,md5(1))

下列文件中哪种文件在 IIS 6.0 中会被当做 ASP 脚本解析?

1
2
news.asp
news.asp;.jpg

IIS 6.0 存在目录解析、文件解析、文件类型解析等,会被当做asp文件进行解析。
(1)目录解析:目录名包含.asp .asa .cer这种字样,该目录下所有文件都被当做asp来进行解析;
(2)文件解析:文件名如:xxx.asp;yyy.jpg 的文件,会忽略分号后面的后缀,将该文件当成asp脚本进行解析
(3)文件类型解析:asa、cdx、cer也会被当成asp脚本进行解析,例如:test.asa 、 test.cdx 、 test.cer

以下说法正确的是

linux系统中的/var/log/lastlog日志记录了所有用户最后登录的记录,可以用lastlog命令查看

/var/run/utmp日志记录了正在登录本系统中的用户信息,可以用last -f命令查看

假设在x86系统上,寄存器AX=2, BX=208H, 运行下面的指令后,AX中的结果是:

1
8

【别问我为什么是8,我也不清楚,牛客网上根本没有指令,这题完全是瞎蒙的,还懵错了】

关于Nginx的安全加固,以下说法正确的是

nginx的Worker进程不能以root权限启动

图片等静态资源目录不能给脚本执行权限

禁止访问.git、.svn和.sql目录,可以防止因运维操作不当造成的代码或数据泄漏

Windows平台通过栈溢出想要利用包含stack cookie保护的函数都有哪些可能的方式

暴力猜解cookie内容

更改函数内部变量改变逻辑

SEH覆盖

以下请求是一个订单提交的请求,请观察该请求包,说出你认为可能存在的安全风险点

POST http://test.mi.cn/insert.html HTTP/1.1
Host: test.mi.com
Referer: http://test.mi.cn/index.php?data=58
Cookie: uid=1504174654;

addressid=1&productid=123&num=1&price=120

CSRF

订单金额篡改

越权操作

SQL注入

SSL PINING用于对抗哪种攻击

MITM

钓鱼攻击

抓包修改参数

以下属于DDOS攻击方式的有

NTP放大攻击

水坑攻击

下列哪些权限需要在AndroidManifest.xml清单文件中申明?

sdcard写

网络访问

nmap 是端口扫描工具,并不能扫描漏洞

不是【但答案跟我说是,我懵了,nmap不是直接–script=vuln 参数 就可以扫洞吗?很懵逼】

Base64、MD5、AES 均属于常见的加密算法

不是【中招了,Base64是编码方式不是加密算法】

SSRF 不但可以用于信息内网探测,还能达到远程命令执行的效果

在给FTP服务器设计ACL时,如果FTP服务器采用了的主动模式,则对客户端只需要开放21端口即可

不是【还要开20端口传送数据】

只要给网站使用了CDN就可以防御ARP挂马攻击了

不是【CND是内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。ARP是通过伪造IP地址和MAC地址实现ARP欺骗。就算是隐藏了真实的IP,只要在传输过程中添加一个代理,就有可能造成ARP挂马。】

Redis以root权限监听在内网地址上是安全的,不用设置密码。

不是

CC攻击的原理是利用了TCP/IP的协议缺陷,造成被攻击服务器资源耗尽的拒绝服务攻击方式。

不是

CC攻击时模拟多用户请求大量数据操作的情景,服务器一直在忙着处理这些大量的请求,所以不是利用TCP/IP的协议缺陷。

在php中可以使用当前时间作为随机数种子产生随机数是安全的

不是

安全的使用复制类函数只需要做到目标缓冲的大小大于源缓冲的大小

不是【不一定正确,如在C中使用memcpy函数时还要保证内存地址不重叠】

小米(2020)

以下那种strncpy的使用方法是正确的

1
2
strncpy(dest, src, sizeof(dest)-1); 
dest[sizeof(dest)-1] = '\0';

移动APP中的SSL Pining指的是

HttpURLConnection或webview进行网络通信时校验服务器SSL证书公钥

某个数列有1000个各不相同的元素,由低至高按序排列,现要对该数列进行二分查找,,在最坏的情况下,需查看多少个元素?

1
10

解析:2^10=1024,比1000大,所以10

MySQL数据库的四种特性不包括以下哪个?

事务性【四种特性分别是原子性、一致性、隔离性和持久性】

嗅探BLE通信时,最重要的跳频信息存放在()包内

CONNECT_REQ

当你在家中向www.baidu.com的机器发送一个tcp包时,从你机器出发的数据包mac地址是

家中路由器的MAC地址

如下操作哪些是不符合常见安全规范的操作

将redis服务器运行在root权限下
将SSH的秘钥文件设置为655而不是755

redis未授权的利用方法包括以下哪几种

写入ssh密钥

向web目录中写入webshell

向crontab中写入计划任务

了通信安全,设备与云端采用 HTTPS 方式传输指令与数据,以下做法错误的是

1
2
3
curl -k https://iot.mi.com/ -d xxx
wget --no-check-certificate http://ota.mi.com/firmware.bin -O /tmp/xxx
libcurl (CURLOPT_SSL_VERIFYPEER / CURLOPT_SSL_VERIFYPEER = false)

以下哪些属于缓冲区溢出保护手段?

1
2
3
PIE
NX
STACK CANARY

使用正则表达式匹配一个IPv4地址。

/^((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]).){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/

0.0.0.0 \d

10.0.0.0 1\d

122.0.0.0 1\d{2}

249.0.0.0 2[0-4]\d

255.0.0.0 25[0-5]

加上.循环三次,最后一次不加小数点

如何遍历一个HashMap?

keySet entrySet都行

cookie的基础属性有哪些?主要是为了解决哪方面的安全问题?

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

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

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

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

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

【我一直以为他是问我cookie有什么基础属性,然后cookie是为了解决哪方面的安全问题。然后我懵了,cookie不是方便用户下一次访问不用输入用户名和密码吗,为啥就可以解决安全问题了,然后就不知道怎么做了。】

简述你所理解的XSS的类型,并谈谈它们各自的特点

反射xss,一次性
存储xss,持久性
DOMxss,不与后端交互

请描述如何开展一下渗透测试的流程,每个流程节点的字数不超过十个字

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

【老实说不用撰写报告的吗?】

以下那种获取随机数方案是较为安全的

1
/dev/urandom

哪个是常用的android代码混淆个工具

1
proguard【原因,这个是免费的】

Android APP常见的调试手段有

重打包apk并设置AndroidManifest.xml的debuggable属性为true
ida或smalidea动态调试
frida hook框架
xposed hook框架

在mysql注入中选出与其他三个不同的漏洞验证函数( )

1
sleep【这个只是休眠,不进行任何命令的执行】

给出如下声明: String s = “Example”; 合法的代码是哪个?

1
s = s +1【字符串相加】

在Java多线程中,请用下面哪种方式不会使线程进入阻塞状态

1
yield()【暂停当前执行的线程对象,并执行其他线程】

使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是?

1
UPDATE STUDENT SET AGE=AGE+1

下列那些算法是属于加密算法

1
2
3
AES
RSA
【Md5是散列算法,叫做哈希算法不是加密算法,而SHA256其实就是一个哈希函数】

以下说法中,关于HTTP返回码301与302正确的是

301代表永久性转移
对于301请求,搜索引擎或者浏览器都可以把跳转后的地址缓存下来,下一次不必发送这个请求

下列那些端口服务可能导致命令执行

1
2
3
redis
mysql
rsync

Android四大组件包括Activity、Service和

1
2
Receiver
ContentProvid

爬虫与反爬虫是否熟悉?常见的反爬虫手段都有哪些?

爬虫

使用任何技术手段,批量获取网站信息的一种方式

反爬虫

使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。

反爬手段

通过UA 识别爬虫

设置IP访问频率,如果超过一定频率,弹出验证码

通过并发识别爬虫

请求的时间窗口过滤统计

限制单个ip/api token的访问量

识别出合法爬虫

蜜罐资源

Android应用Receiver注册的两种形式是

静态注册和动态注册

mysql注入中sleep和benchmark函数的异同

sleep函数指定睡眠时间的秒数,benchmark函数是指定语句执行的次数。两者都可以用于延时注入

深信服(2020)

谈谈在WEB类安全问题的应急处置过程中web日志溯源攻击路径的思路?

在对WEB日志进行安全分析时,可以按照下面两种思路展开,逐步深入,还原整个攻击过程。

首先确定受到攻击的时间范围,以此为线索,查找这个时间范围内可疑的日志,根据可疑ip、攻击特征等进一步排查(WEB日志会记录客户端对WEB应用的访问请求,这其中包括正常用户的访问请求和攻击者的恶意行为。通过大量的分析,我们发现攻击者在对网站入侵时,向网站发起的请求中会带有特定的攻击特征,如利用WEB扫描器在对网站进行漏洞扫描时往往会产生大量的404错误日志,当有攻击者对网站进行SQL注入漏洞探测时,WEB访问日志中通常会出现and 1=1等字样),最终锁定攻击者,确认攻击的手段,还原攻击过程。

心脏滴血漏洞产生的原因,危害都有哪些

Heartbleed漏洞,这项严重缺陷(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。通过读取网络服务器内存,攻击者可以访问敏感数据,从而危及服务器及用户的安全。敏感的安全数据,如服务器的专用主密钥,可使攻击者在服务器和客户端未使用完全正向保密时,通过被动中间人攻击解密当前的或已存储的传输数据,或在通信方使用完全正向保密的情况下,发动主动中间人攻击。攻击者无法控制服务器返回的数据,因为服务器会响应随机的内存块。
漏洞还可能暴露其他用户的敏感请求和响应,包括用户任何形式的POST请求数据,会话cookie和密码,这能使攻击者可以劫持其他用户的服务身份。在其披露时,约有17%或五十万通过认证机构认证的互联网安全网络服务器被认为容易受到攻击。电子前哨基金会,ArsTechnica,和布鲁斯·施奈尔都认为心脏出血漏洞是“灾难性的”。
漏洞让特定版本的openSSL成为无需钥匙即可开启的“废锁”,入侵者每次可以翻检户主的64K信息,只要有足够的耐心和时间,就可以翻检足够多的数据,拼凑出户主的银行密码、私信等敏感数据。

简单地说就是【可以随机泄露内存中的64k数据,而且可通过重复读取获得更多内存数据,openssl又是存储用户请求中的明文数据,其中包括源码,登录时用的明文账号密码,登录后服务器返回的合法认证因素,软件序列后,机密文件,甚至是可以突破一些系统保护机制的关键数据。还可能暴露其他用户的敏感请求和响应,包括用户任何形式的POST请求,会话cookie和密码,这使攻击者可以劫持其他用户的服务身份。】

Apache,IIS,Nginx的文件解析漏洞都是如何解析和利用的?

Apache 解析漏洞

对URL从右往左逐层判断解析,不可解析就一直往左解析判断,直到能正确解析出文件

上传木马文件时,将合法后缀放在URL最右,绕过本地文件上传限制和服务器的类比黑名单验证
,Apache服务器就会逐层从右往左解析,如xx.php.jpg.rar的一个木马文件最后会到php成功解析,那么
木马也就成功执行了。

IIS解析漏洞

一种是IIS5.x/6.0解析漏洞

在网站下建立文件夹啊名称中带有.asp,.asa等可执行的脚本文件后缀为后缀的文件夹,其目录内的任何扩展
名的文件都被当作可执行文件来解析

另外还有文件解析,IIS6.0下分号后面的不解析,也就是xx.asp;.jpg被当成xx.asp来解析
除了asp还有.asa,.cer,.cdx都可被解析

一种是IIS7.0/IIS7.5的畸形漏洞解析

在Fast-CGI开启下,会在例如URL为http://www.xxx.com/xx.jpg/.php中将xx.jpg当成php解析

Nginx解析漏洞

在Nginx0.5,0.6以及0.7 ⇐ 0.7.65,0.8 ⇐ 0.8.37上存在空字节代码执行漏洞

也就是在访问如以下[http://www.xxx.com/xx.jpg%00.php](http://www.xxx.com/xx.jpg.php)中会将xx.jpg当作php文件解析
它将.jpg%00看成一段字符

在CVE-2013-4547 Nginx下
还存在着将如下URL http://www.xx.com/a.jpg%00\0.php中的a.jpg当作php执行漏洞

从哪些方面可以进行CSRF漏洞防御?

CSRF漏洞防御主要可以从三个层面进行,即服务端的防御、用户端的防御和安全设备的防御。
1.检测HTTPreferer 字段同域。根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。在通常情况下,访问一个安全受限页面的请求必须来自于同一个网站。比如某银行的转账是通过用户访问http://bank.test/test?page=10&userID=101&money=10000页面完成,用户必须先登录bank.test,然后通过点击页面上的按钮来触发转账事件。当用户提交请求时,该转账请求的Referer值就会是转账按钮所在页面的URL(本例中,通常是以bank. test域名开头的地址)。而如果攻击者要对银行网站实施CSRF攻击,他只能在自己的网站构造请求,当用户通过攻击者的网站发送请求到银行时,该请求的Referer是指向攻击者的网站。因此,要防御CSRF攻击,银行网站只需要对于每一个转账请求验证其Referer值,如果是以bank. test开头的域名,则说明该请求是来自银行网站自己的请求,是合法的。如果Referer是其他网站的话,就有可能是CSRF攻击,则拒绝该请求
2.限制sessioncookie的生命周期。CSRF攻击是有条件的,当用户访问恶意链接时,认证的cookie仍然有效,所以当用户关闭页面时要及时清除认证cookie
3.使用验证码。虽然攻击者已经通过获取cookie得到用户的身份,但是通过在你的表单中包括验证码,事实上网站已经消除了跨站请求伪造攻击的风险。可以在任何需要执行操作的任何表单中使用这个流程。
4.cookie关键字段设置HttpOnly属性。可以在一定程度防御CSRF。

5.对敏感的请求增加安全的token,可以通过自定义http首部字段实现。

b站

a标签的href和onclick属性同时存在时哪个先触发?

同时触发

以下关于跨域说法错误的是?

http://www.bilibili.com和https://www.bilibili.com是相同的域名,属于同源

百度(2021春)

设计一个用户登录界面,你会考虑什么安全问题,给出解决方案

sql注入原理,什么是宽字节注入

sql绕过的方法和sql防御的三种方法(至少三种)

xss是什么,他跟csrf有什么区别

访问www.baidu.com,从输入url到网页显示内容,这期间发生了什么事情

某企业遭遇大流量DDOS攻击,运维无法找出攻击源,请你设计一个方案快速找出攻击源

给一个二叉树,找出任意两个节点的最近父节点