一、判断题
1、DNS既使用TCP协议,又使用UDP协议。
答案:正确
解析:注意到DNS名字服务器使用的熟知端口号无论对UDP还是TCP都是53.这意味着DNS均支持UDP和TCP访问。 (《TCP/IP详 解卷1》)
DNS在区域传输的时候使用TCP协议,其他时候使用UDP协议。
DNS区域传输的时候使用TCP协议:
1.辅域名字服务器会定时(一般3小时)向主域名服务器进行查询以便了解主域名服务器数据是否有变动。如有变动,会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求应答的数据量要多得多。
2.TCP是一种可靠连接,保证了数据的准确性。
域名解析时使用UDP协议:
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过三次握手,这样DNS服务器负载更低,响应更快。理论上说,客户端也可以指定向DNS服务器查询时用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。
2、小明使用JavaScript判断当前网页是否属于www.example.org。假设location、document均未被代码重载或覆盖,它的判断方式为:
if (location.protocol ==="https" || location.protocol ==="http" && document.domain.indexOf("www.example.org") != -1)
pass;
能够判断吗?
答案:
3、在Web容器日志中有如下GET请求:
"/?filter=md5&s=Index/think\Request/input&data=1"
认为它是正常thinkphp请求?
答案:
4、透明代理模式、反向代理模式、主机防护模块都可应用到WAF的部署架构?
答案:
解析:· WAF部署模式分类
根据WAF工作方式及原理不同可以分为四种工作模式:透明代理模式、反向代理模式、路由代理模式及端口镜像模式。前三种模式也被统称为在线模式,通常需要将WAF串行部署在WEB服务器前端,用于检测并阻断异常流量。端口镜像模式也称为离线模式,部署也相对简单,只需要将WAF旁路接在WEB服务器上游的交换机上,用于只检测异常流量。
所以这里主机防护模块是不正确的。
5、OpenWRT是一个嵌入式Linux发行版,常用作路由系统,自带WiFi防蹭网功能?
答案:
解析: OpenWrt 项目由 2004 年 1 月开始, 第一个版本是基于 Linksys 提供的 GPL 源码及 uclibc 中的 buildroot 项目, 这个版本称为 “stable” 版, 在网上至今仍有很多项目使用这个版本, 较为有名 Freifunk-Firmware 和 Sip@Home[参见百度百科]
关于OpenWrt有个中文应用技术网(www.openwrt.org.cn)
二 不定项选择
1、哪些密码体制,除了有保密功能,还具有鉴别的功能?
答案:
2、在ARM环境下,sp=0x80000000,则执行LDMFD sp!;{R0~R7, LR} 后,sp=()
答案:
解析: 根据ATPCS规则,我们一般使用FD(FullDescending)类型的数据栈!所以经常使用的指令就有STMFD和LDMFD。这两个指令一般用于进行程序搬移等大规模操作前的cpu现场保护和操作结束后的现场恢复,属于非单一连续的压栈和出栈。
3、智能厂商解决“特斯拉”线圈此类小黑盒攻击的方案有()
答案:收到强电压冲击导致内部元件失效,所以解决方案主要是增加电磁冲击防护。
解析:特斯拉线圈是用来产生瞬时高压闪电的,可以简单理解为一个变压器,而小黑盒产生的是高频电磁脉冲辐射(非电离辐射,对身体没有影响),也就是EMP,可以瞬间让周围的电子设备失效。 如果电路没有做好电磁屏蔽的话,外面的磁场也会对电路板里的电流形成干扰。要是磁场产生的电流过大,还会造成电路板里面的元器件失灵或者损坏,对于智能锁的影响之一就是重启智能锁电路造成的开门。防护大概分成两类吧:
第一类,就是在设计中加入“保护电路”,让电路板不容易受到电磁波的影响。
第二类,就是增加安全屏蔽罩。简单说就是用全金属包裹在电路板外面,电磁波就没办法进入它内部了。
4、nmap的哪些选项是使用了SSL协议?(-sV,-sT,-sn,-A)
答案:-sV可以探测出使用SSL协议的服务
解析:-sV 端口版本探测 ,使用TCP协议
-sT 使用TCP连接,使用TCP协议
-sn Ping扫描,禁用端口发现,使用ARP协议
-A 系统详细信息探测,使用TCP协议
所以这里应该是理解有误,应该是哪些可以探测到使用SSL协议的服务
5、下面用于安卓App动态测试的工具有?(Drozer, ApkTool, Androguard, JD-Gui)
答案:
解析: Drozer - 一款针对Android应用程序漏洞检测工具(安全检测框架),可以进行交互( 见https://labs.mwrinfosecurity.com/tools/drozer/)
ApkTool - Android的apk程序反编译工具,同时会用到dex2jar与JD-Gui工具,( dex2jar.jar,将apk中的classes.dex转化成Jar文件,再通过jd-gui工具反编译jar文件。)
Androguard - Apk的静态分析工具。
JD-Gui - 一款JAVA反编译工具。
6、下面哪些函数可以实现MySQL注入带外通道攻击?
(UTL_INADDR、UPDATEXML、UTL_HTTP、LOAD_FILE)
答案:
解析: 有时候注入发现并没有回显,也不能利用时间盲注,那么就可以利用带外通道,也就是利用其他协议或者渠道,如http请求、DNS解析、SMB服务等将数据带出。
UTL_INADDR - 用于取得局域网或Internet环境中的主机名和IP地址.
UPDATEXML - 可以实现MySQL的报错注入
UTL_HTTP - Oracle中可以通过UTL_HTTP发送http请求
LOAD_FILE - 可以实现MySQL注入
7、下面哪些协议属于网络层协议?(Ping、SSL、Https、SNMP)
答案:
解析:
(1)应用层:TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS、SSH、HTTPS
(2)表示层:
文本:ASCII,EBCDIC
图形:TIFF,JPEG,GIF,PICT
声音:MIDI,MPEG,QUICKTIME
(3)会话层:NFS、SQL、RPC 、X-WINDOWS、ASP(APPTALK会话协议)、SCP
(4)传输层:TCP、UDP、SPX 、SSL、TSL(实际上SSL、TSL并不适用于OSI,难以具体界定属于哪一层。 《计算机网络-自顶向下方法》中提到:SSL在技术上位于应用层,但从开发者的角度看,它是一个提供TCP服务的运输层协议。)
(5)网络层:IP、IPX、ICMP(Ping命令使用ICMP协议)、ARP、RARP、RIP、OSPF(Open Shortest Path First开放式最短路径优先)
(6)数据链路层:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、帧中继
(7)物理层:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45
8、有些MySQL诸如点使用sqlmap这类工具可以获取到表结构是因为?
答案:
解析:
9、远程管理Linux是,()方式采用加密数据?(Rlogin、SSH、Telnet、Rsh)
答案:
分析:
Rlogin - 最初是是现在unix系统中的远程登录协议。由于客户端进程和服务器进程已经事先知道了对方的操作系统类型,因此也就省去了选项协商机制。总的来说,它与telnet协议类似,不过内部实现要相对简单。明文传输
Telnet - 是通过客户端与服务器之间的选项协商机制,实现了提供特定功能的双方通信。明文传输
SSH - Secure Shell, SSH协议是建立在应用层和传输层上的安全协议,加密传输
Rsh - Remote shell,明文传输
10、下面不属于安卓的远程攻击面的有?(URI Schema、JSAPI、开放端口、Exported Receiver)
答案:
解析:
11、关于PHP审计,下面说法()
答案:
解析:
12、下面不属于DNS记录类型的是()(MX、AAAA、EXT、NS)
答案:
解析:
缩写 | 全称 |
|
SOA | Start Of Authority Record | 起始授权记录 |
A(v4)、AAAA(v6) | Address Record | 地址记录 |
CNAME | Canonical Name Record | 规范(别名)记录 |
MX | Mail eXchange Record | 邮件交换记录 |
NS | Name Server Record | 域名服务器记录 |
PTR | PoinTer Record | 记录用于定义与IP地址相关的名称 |
13、假定一个构造函数为:
A(int aa, int bb)
{
a = aa++;
b = a * ++bb;
}
则执行Ax(3, 4)语句后,x.a,x.b的值为?
答案:
解析:
14、在ARM环境下,以下哪些指令可以从 Non Secure World(如Linux内核)切换至 Secure World(如TrustZone)
(SMC、HVC、SVC、TMC)
答案:
解析:
15、为了避免某些浏览器主动嗅探页面类型,需要在返回包中带上哪个响应头?
(X-Frame-Options、Content-Security-Policy、Access-Control-Allow-Origin、X-Content-Type-Options)
答案:
解析:
16、渗透测试中,哪些命令可以用于搜索敏感配置文件?
(locate *.conf、whereis *.conf、find l -name *.conf、search *.conf)
答案:
解析:
17、哪种指纹识别方式防御假指纹攻击效果最好?(电容、超声波、光学、电容+RF射频)
答案:
解析:
18、假设参数id存在union注入,下列哪些请求可以绕过正则
"\bunion(\s|\d)*(.|\n)+?\bselect"
并对MySQL正常解析?
A、 id=1 inion%a0select 1, 2
B、 id=1 + union(select 1, 2)
C、 id=1 union/**/ select 1, 2
D、 id=1.0union select 1,
答案:
解析:
19、关于DDOS攻击描述正确的是?
答案:
解析:
20、执行完C代码 printf("%d", total) 输出total的值为多少?
unsigned char total = 0;
unsigned char MAX = 0x100;
unsigned char i = 0;
while (1) {
total +=i++;
if (i == MAX) break;
}
printf("%d\n",total);
答案:128
解析:字符变量实际上也被当做int变量处理,无符号字符占一个字节,也就是8bit,而且最高位是0,即表示的最大正整数为127(0111 1111),而对十六进制数0x100,字节数为4,也就是32bit,因此实际上MAX的有效为只有其后八位,全0.故所有变量初始都是空字符。在判断i == MAX时先有i++,所以下一次i == MAX前,i=255(1111 1111),total=129(1000 0001),在下一次,i == 0,total = total + i
也就是 1111 1111
+1000 0001
=1000 0000 =128
21、在Redhat Linux中,哪些命令可以查看kernel信息?(ls kernel、kernek、check、uname)
答案:
解析:在给出的命令中,只有uname -a可以,这只要在系统下操作即可
22、关于路由器的说法
答案:
解析:
23、哪些工具可以破解密码?
答案:
解析:
John the Ripper - John the Ripper is a fast password cracker, currently available for many flavors of Unix, Windows, DOS, and OpenVMS. ( https://www.openwall.com/john/)
Patator - 暴力破解测试工具,Patator本身使用Python开发,需要自己提供字典库
Hydra - hydra是黑客组织thc的一款开源密码攻击工具,功能十分强大,支持多种协议的破解,在KALI的终端中执行hydra -h可以看到详细介绍
Ophcrack - Ophcrack is a free Windows password cracker based on rainbow tables. It is a very efficient implementation of rainbow tables done by the inventors of the method. It comes with a Graphical User Interface and runs on multiple platforms.
24、关于https和http协议区别的描述
答案:
解析:
25、ipv6不包含哪种类型?(广播、多播、单播、任播)
答案:广播
解析: IPV6的地址编制打破分类概念,所以没有广播。
26、有关多态性(指的是语言编译方面)
答案:
解析:
27、如果一个页面设置了CSP,哪些代码内的JS会因 script-src 'unsafe-inline' 这个关键字而被浏览器执行?
答案:
解析:CSP:Contetn-Security-Policy,内容安全策略
29哪些协议可以用来屏蔽通信?(ICMP、SSH、DNS、HTTP)
答案:SSH
解析:
29、以下哪种语言可以用来开发以太坊区块链智能合约?(Solidity、PH、C++、Python)
答案:
解析: Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。 它的语法接近于Javascript,是一种面向对象的语言。( https://solidity.readthedocs.io/en/v0.5.7/)
30、有关UDP协议的描述
答案:
解析:
三、填空
1、对于暴露的Activity组件而言,如果定义了data android:schema并且category设置为android.intent.category,(______)则可能存在被远程攻击的风险。
答案:
解析:
2、请实现一个安全的计算两个数最小值的宏,逻辑为
-三目运算符-- 条件?真值?假值
#define MIN(x, y) ____
答案:#define MIN(x,y) ((x)<(y)?(x):(y))
解析:如果没有括号可能产生意想不到的结果
3、通常。将以整数右移31位或32位是不推荐的,因为他们的结果可能不符合开发者的预期,并可能导致非常隐蔽的安全问题。
审计下面代码:
int a = -1;
int b = a >>31;
int c = a >>32;
则 b + c = a >> 31 + a >> 32是否成立?如果成立请填Yes。如果不成立,则 int anwser = b + c - (a >> 31 + a >> 32) 的值为多少?对GCC、MSVC结果应一样。
答案:不成立,anwser=-1
解析:b+c=-2,而a >> 31 + a >> 32为-1【但是还不理解,求讲解】
有这么几个概念:左移: 丢弃最高位,0补最低位,如果移动的位数m超过数据本身的位数n,那么移动的数为m%n的结果,也就是如果对一个32bit的数移动33位,那么实际上移动了33%32=1位。
右移: 符号位向右移动后,正数的话补0,负数补1,也就是汇编语言中的算术右移.同样当移动的位数超过类型的长度时,会取余数,然后移动余数个位.这里右移32位可看作没有移动。
但是数据在内存中是保存的补码。故a的保存形式为0xffffffff。实际上不管怎么右移它将一直是-1。而a >> 31 + a >> 32为-1【但是还不理解,求讲解】
4、PHP用来过滤注入的两个函数是()()
答案:
解析:
5、Shell编程时使用方括号测试条件的规则是:方括号两边必须有()
答案:空格
解析:
6、HTTP协议最常用的两种请求方法()()(按字母顺序,全部大写)
答案:GET、POST
解析:
7、Ping命令是通过()协议实现的?
答案:ICMP
解析:
8、 TCP首部6个标志位,其中()置位时可以异常终止一个连接
答案:RST
解析:
四、问答
1、通过服务器固件(如BIOS)等方式植入木马后门已成为很多APT团伙的攻击手段,如何防范、检测这种后门?
2、(题目较长,记录并不完整)某公司有众多业务,相似业务的流量特性相近,现需要准确识别某公司业务流中TCP协议的ack标志位的异常流量,数据量足够多,且时效性要求较高。如何准确、高效识别出TCP流量中的异常流量?
以上部分内容也许并不详细,不过能提供一个大体的方向,
同时也希望读者对自己关于某些题的见解通过回复来一起
分享。