一、选择题(每题1分,共20分)
-
以下编程语言中,最不适合用于Web开发的是?
- A:PHP
- B:JSP
- C:JavaScript
- D:C/C++
- 答案:D
- 解析:C/C++主要用于系统编程和应用程序开发,而PHP、JSP和JavaScript都专门为Web开发设计。
-
以下属于编码算法的是?
- A:BASE64
- B:MD5
- C:SHAI
- D:RSA
- 答案:A
- 解析:BASE64是一种编码算法,用于将二进制数据编码为ASCII字符。MD5和SHA1是哈希算法,RSA是加密算法。
-
以下哪种攻击,不能视为“代码注入”?
- A:SQL注入
- B:XSS
- C:CSRF
- D:文件包含
- 答案:C
- 解析:CSRF(跨站请求伪造)不是代码注入攻击,而是利用用户的身份在未授权的情况下执行操作。
-
以下关于HTTP协议的说法,有明显错误的是?
- A:HTTP是应用层协议,通常承载于TCP协议之上,常用端口号是80
- B:HTTPS协议是HTTP协议的升级版本,解决了HTTP协议固有的安全问题
- C:HTTP协议存在先天性弊端,如采用明文传输数据,且身份认证缺乏校验
- D:采用HTTP协议通信时,存在被中间人攻击的风险
- 答案:B
- 解析:虽然HTTPS确实增强了HTTP的安全性,但其描述不够准确,HTTPS使用SSL/TLS加密,而不是简单的“升级”。
-
以下哪种Web请求,会受浏览器同源策略的约束?
- A:使用HTML的标签,跨域请求一张图片
- B:使用HTML的
<script>
标签,跨域请求一个Javascript 文件 - C:使用HTML的
<iframe>
标签,跨域请求一个HTML页面 - D:使用 Javascript的 XMLHttpRequest方法,跨域请求一段JSON信息
- 答案:D
- 解析:XHR请求受到同源策略的限制,而其他选项(如
<img>
、<script>
和<iframe>
)在某些情况下可以跨域。
-
以下关于SSRF的说法,哪一个是正确的?
- A:无法实现本地文件的获取
- B:无法用于绕过Chrome 浏览器的沙箱机制
- C:无法攻击运行在内网或本地的应用程序
- D:无法对内网的Web应用进行指纹识别
- 答案:B
- 解析:SSRF(服务器端请求伪造)可以通过利用服务器的请求能力,潜在地绕过沙箱机制。
-
相比较而言,以下哪款工具,最不可能用于Web渗透攻击?
- A:中国菜刀
- B: SQLMap
- C: Burpsuite
- D:NoScript
- 答案:D
- 解析:NoScript是一个浏览器扩展,用于阻止脚本执行,而其他工具(如中国菜刀、SQLMap和Burpsuite)则用于渗透测试。
-
以下关于HTTPS的说法,哪一个是错误的?
- A:在正式传输数据前,通信双方先进行身份确以
- B:通信双方在密钥协商过程中,使用非对称密钥传输数据
- C:通信双方在密钥协商后,使用非对称密钥传输数据
- D:HTTPS 通信常用端口号是443
- 答案:C
- 解析:在密钥协商后,双方使用对称密钥进行数据传输,而非非对称密钥。
-
以下关于Cookie 和Session的说法,有明显错误的是:
- A:Cookie 用在客户端,用于辨别用户身份和维持状态
- B:Session 用在服务端,用于辨别用户身份和维持状态
- C:浏览器Cookie 的Secure 属性是为了防止Cookie被JavaScript读取和修改
- D:必从安全性角度考虑,应该多使用Session;从性能角度考虑,应该多使用Cookie
- 答案:C
- 解析:Secure属性是为了防止Cookie在非HTTPS连接中被传输,而不是防止JavaScript读取。
-
以下关于DNS的说法,有明显错误的是:
- A:DNS 协议典型的端口号是53,既使用UDP协议,也使用TCP协议
- B:全球有13台DNS根服务器,其中1台主根服务器,12台辅根服务器,上面保存了全球绝大部分域名对应的IP地址
- C:DNS的查询方式有两种:递归查询和迭代查询
- D:DNS 是Domain Name System的缩写,是提供域名和IP地址相互映射的一个分布式数据库
- 答案:B
- 解析:虽然全球有13台根服务器,但并不是所有的域名信息都保存在这些服务器上。
-
以下哪个条SQL语句(运行环境:Mysql),一般不会引发数据库报错?
- A. select exp((select * from(select userO)a)
- B. select updatexml(0x3a,concat(1,(select userO))),1)
- *C. select 1 from (select count(*),concat(select userO),floor(rand(0)2))x from information schema.tables group by x)a
- D. select’<?php@eval($_POST['c']);?>’ into outfile 'd:Nwww\m.php
- 答案:D
- 解析:选项D是将内容写入文件,不会引发语法错误,而其他选项由于语法问题可能会报错。
-
哪个符号,被黑客广泛地用于SQL注入测试?
- A:下划线符
- B:反斜线符
- C:单引号符
- D:非上述答案
- 答案:C
- 解析:单引号符(')常用于SQL注入,以结束字符串并注入恶意SQL代码。
-
以下关于浏览器安全机制的说法,有明显错误的是?
- A:沙箱(Sandbox)是一种隔离对象/线程/进程的机制,目的是控制其访问系统资源的权限
- B:各个浏览器对同一种安全机制的实现方式并不一定相同
- C:地址空间布局随机化(AddressSpace Layout Randomization)和数据执行保护(Data Execution Prevention)是浏览器上特有的安全机制
- D:MemGC(Memory Garbage Collector)是一种内存管理机制
- 答案:C
- 解析:地址空间布局随机化和数据执行保护并不是浏览器特有的机制,它们在操作系统层面也有实现。
-
以下文件类型(后缀),不会被黑客用作Webshell的是?
- A:PHP文件
- B:JSP文件
- C:TXT文件
- D:非上述答案
- 答案:C
- 解析:TXT文件通常不被用作Webshell,因为它们不能被服务器执行。
-
以下工具或命令,不能用来做中间人攻击的是?
- A:Wireshark
- B:Burpsuit
- C:MITMProxy
- D:Fiddler
- 答案:A
- 解析:Wireshark是一个网络流量分析工具,不能直接用于中间人攻击,而其他工具可以。
-
以下关于PHP文件包含漏洞的说法,有明显错误的是?
- A:PHP的文件包含漏洞,通常由include()、 include_once()、require()、require_once()这四个函数引发
- B: PHP的文件包含漏洞利用时,被包含的文件必须是Web服务器能够解析的特定的文件类型
- C: PHP的文件包含漏洞的利用方式,可以分为包含本地文件和包含远程链接两种
- D:PHP 文件包含漏洞形成的条件是:PHP 代码中通过动态变量的方式引入需要包含的文件,且用户能够控制该动态变量的值
- 答案:B
- 解析:文件包含漏洞可以包含任意文件,不限于特定的文件类型。
-
下列关于XXE说法错误的是?
- A:攻击者可以利用XXE的方式实施 SSRF 攻击
- B:利用超大外部DTD文件加载实施拒绝服务攻击时,要求DTD文件格式必须是Well-formed
- C:在blindXXE场景下,攻击者可以通过URL或FTP迂回获取文件内容
- D:攻击者可以在外部文档定义实体时引用参数实体
- 答案:D
- 解析:参数实体通常不被允许在外部文档中被引用。
-
以下关于0Auth的说法,有明显错误的是?
- A. OAuth 是一种认证(Authentication)协议,可以使第三方网站在不获得用户在目标网站账户密码的情况下,使用目标网站的资源
- B. OAuth 2.0定义了四种授权方式:授权码模式(authorization code)、简化模式(implicit)、密码模式(resource owner password credentials)、客户端模式(client credentials)
- C. OAuth2.0的授权码模式(authorization code)是功能最完整、流程最严密的授权模式
- D. OAuth免去了用户注册过程,提高了用户体验,因此颇受欢迎
- 答案:A
- 解析:OAuth是一种授权(Authorization)协议,而非认证协议。
-
以下关于XSS的说法,有明显错误的是?
- A:XSS 攻击发生在Web客户端,是客户端Web安全的头号敌人
- B:XSS攻击类型可以粗略地分为反射型XSS,存储型XSS,DOM-Based XSS
- C:XSS安全问题都是JavaScript引发的
- D:XSS的危害大,包括网页挂马、窃取Cookie、传播Web蠕虫、发动DDoS等
- 答案:C
- 解析:虽然JavaScript是XSS攻击的主要载体,但XSS问题不仅限于JavaScript。
-
下列关于clickjacking说法错误的是?
- A. clickjacking的利用方式主要有图片覆盖劫持、FLASH点击劫持、浏览器拖拽劫持、触屏劫持等。
- B. "Cross Site Double Clicking Attack"利用了人类对于快速视觉变化难以作出反应的特性,通过弹窗方式打破framebusting限制诱使用户双击,从而达到攻击目的。
- C. X-FRAME-OPTIONS 和Frame Busting 是应对ClickJacking攻击的常用防御方式。
- D. 利用clickjacking 不可能拿到Android设备的控制权。
- 答案:D
- 解析:clickjacking可以在某些情况下影响移动设备的操作,存在一定的风险。
二、名词解释(每题2分,共6分)
-
SQL注入:一种安全漏洞,攻击者通过在SQL查询中插入恶意代码,操控数据库执行未授权的操作,从而获取、修改或删除数据。
-
SSO (Single Sign-On,单点登陆):一种用户身份验证过程,允许用户使用一个账户在多个应用程序中进行身份验证,简化用户体验,减少多次登录的需求。
-
浏览器同源策略:一种安全机制,限制一个网站的脚本只能访问同源(协议、域名和端口相同)的资源,以防止恶意网站窃取敏感信息。
三、简答题(每题4分,共12分)
-
请简述XSS攻击的类型,并分别阐述其原理。
- 反射型XSS:攻击者将恶意脚本嵌入到URL中,当用户点击该链接时,恶意脚本在浏览器中执行。
- 存储型XSS:恶意脚本被存储在服务器上(如数据库),当用户访问页面时,脚本被加载并执行。
- DOM-Based XSS:通过修改客户端的DOM结构,直接在用户的浏览器中执行恶意脚本。
-
请简述鱼叉式网络钓鱼(Spear Phishing)和水坑攻击(Watering Hole)原理。
- 鱼叉式网络钓鱼:攻击者针对特定目标发送伪装的邮件,诱使用户点击链接或下载恶意附件,窃取信息或植入恶意软件。
- 水坑攻击:攻击者识别目标用户常访问的网站,感染这些网站以传播恶意代码,当目标用户访问时,便会被攻击。
-
请分别简述CSRF(Cross-Site Request Forgery,跨站请求伪造)和SSRF(Server-Side Request Forgery,服务端请求伪造)原理。
- CSRF:攻击者诱使用户在已认证的会话中执行非预期的操作,利用用户的身份进行未授权的请求。
- SSRF:攻击者诱使服务器向内部或外部地址发起请求,可能导致敏感信息泄露或内部服务被攻击。
四、论述题(共12分)
-
某研究所承担了很多国家重要科研项目,是境外APT组织重点针对的目标。如果请你为该单位设计网络安全体系,你会采取哪些措施来降低与Web相关的APT(Advanced Persistent Threat)攻击风险?(3分)这些措施各有什么作用?(3分)之间又有什么联系?(3分)
-
措施:
- 定期进行安全审计和渗透测试。
- 实施多因素身份验证(MFA)。
- 加强员工的安全意识培训。
-
作用:
- 安全审计和渗透测试可以识别系统漏洞,及时修复。
- MFA增加了身份验证的复杂性,降低账户被攻破的风险。
- 安全意识培训提升员工对网络钓鱼等攻击的识别能力。
-
联系:
- 安全审计发现的漏洞可通过MFA和培训来加强防护。
- 培训员工识别钓鱼攻击,减少因人而导致的安全事件。
-
-
经过《Web安全技术》课程的学习,你认为自己最大的收获是什么?(3分)
- 我最大的收获是对Web安全的全面理解,包括常见的攻击方式及其防护措施。这让我意识到安全不仅是技术问题,更是管理和策略的问题,必须综合考虑。