Web安全攻防:从漏洞到实战全解析
第一部分基础理论与核心漏洞 (Web安全基础)这部分是面试的基石务必做到原理清晰、防御明确。1. SQL注入 (SQL Injection)原理补充程序开发过程中未对用户输入进行严格校验和过滤导致攻击者提交的恶意SQL语句被数据库解析执行。分类按回显联合查询注入、报错注入、布尔盲注、时间盲注。按类型数字型、字符型、搜索型。其他堆叠注入;分隔多条语句、二次注入数据先存入后被调用时触发、宽字节注入利用GBK等编码吃掉转义符\、HTTP头注入User-Agent, Referer等。防御与修复预编译首选方案使用PDO、PreparedStatement将SQL语句模板化参数与语句分离从根本上杜绝注入。严格输入校验采用白名单方式限制输入类型、长度、格式。最小权限原则数据库连接账户仅授予必要的SELECT、INSERT、UPDATE权限禁止FILE、EXEC等危险权限。错误信息屏蔽自定义错误页面避免将数据库报错信息直接返回给客户端。部署WAF。2. XSS (跨站脚本攻击)原理攻击者在网页中注入恶意客户端脚本当用户浏览该页面时脚本在浏览器中执行。类型与区别反射型Payload在URL中需要诱骗用户点击。非持久化。存储型Payload存储在数据库中如留言板用户访问页面即触发。持久化。DOM型纯前端漏洞通过修改DOM环境执行恶意代码不经过后端。防御输出编码将输出到HTML中的数据根据上下文进行HTML实体编码-lt;、JavaScript编码等。输入过滤结合业务场景使用白名单过滤用户输入。HttpOnlySet-Cookie时开启HttpOnly属性防止JS读取Cookie。内容安全策略 (CSP)通过HTTP头限制资源加载和执行来源。3. CSRF (跨站请求伪造) 与 SSRF (服务端请求伪造)CSRF原理利用用户已登录的身份凭证Cookie诱使其点击链接或访问页面从而完成非用户本意的操作如改密、转账。防御CSRF Token在表单或请求头中加入随机Token服务端验证。验证Referer/Origin头。SameSite Cookie设置SameSiteStrict或Lax。SSRF原理服务端对用户提供的URL校验不严导致攻击者可构造请求以服务端为跳板探测或攻击内网服务。利用与绕过利用file://、dict://、gopher://等协议通过进制转换、IP变形127.0.0.1-2130706433或DNS重绑定绕过限制。防御白名单限制限制请求的目标域名/IP。禁用危险协议仅允许HTTP/HTTPS。统一错误回显。4. 文件上传漏洞原理服务器未对上传文件的类型、内容进行充分校验导致攻击者上传可执行脚本Webshell并获取服务器权限。绕过技巧WAF绕过补充黑名单绕过大小写.Php、双写.pphphp、特殊后缀.php5,.phtml、.htaccess/.user.ini解析、点/空格绕过Windows特性、::$DATAWindows NTFS流。白名单绕过截断%00要求PHP5.3.4、解析漏洞配合Nginx1.jpg/.php。内容校验绕过制作图片马copy /b 1.jpg1.php 2.jpg条件竞争上传文件在检查间隙被瞬间访问执行。防御使用白名单校验文件后缀及MIME Type。重命名文件使用随机字符串避免保留原始后缀。将上传目录设置为不可执行脚本。内容二次检查如getimagesize()。5. 反序列化漏洞 (重点)PHP反序列化利用魔法方法__wakeup,__destruct,__toString,__construct等在对象创建、销毁或特定操作时自动执行的特性构造Pop Chain属性导向编程链达到代码执行目的。Java反序列化重中之重原理ObjectInputStream.readObject()方法在反序列化时若Classpath中存在可利用的第三方库Gadget如Commons-Collections会触发特定类的回调方法形成调用链导致RCE。Shiro反序列化CVE-2016-4437 / Shiro-550原理rememberMe功能使用了硬编码的AES密钥kPHbIxk5D2deZiIxcaaaA。攻击者构造恶意序列化对象 - AES加密 - Base64编码 - 替换Cookie。服务端解密并反序列化触发RCE。550 vs 721550利用固定Key直接攻击721是利用Padding Oracle Attack爆破Key需要合法Cookie。Fastjson反序列化原理type字段指定类进行反序列化时未作严格校验。攻击者可通过type指定TemplatesImpl或JdbcRowSetImpl等类通过JNDI注入加载远程恶意字节码执行。WebLogic反序列化主要涉及T3/IIOP协议RMI通信过程中的反序列化缺陷。第二部分内网渗透与权限提升内网渗透思路流程化入口突破获取Webshell或RCE权限。信息收集定位域控net time /domain,nltest /dclist:domain、查看域内用户/组net user /domain、查补丁、查进程、查杀软。代理搭建FRP、Neo-reGeorg、EW等工具建立隧道打通内网访问。横向移动凭证窃取Procdump Mimikatz读取LSASS内存获取Hash/明文。PTH (Pass The Hash)利用NTLM Hash直接认证SMB/WMI。PTT (Pass The Ticket)导出Kerberos票据并导入内存使用。漏洞利用MS17-010 (永恒之蓝)、CVE-2019-0708 (蓝屏警告)。权限维持计划任务、启动项、黄金/白银票据域环境。Windows提权系统内核对比补丁号找未修复的内核提权EXP如MS16-032。服务提权PowerUp.ps1检查服务路径引号缺失、可写服务注册表。计划任务检查以高权限运行的定时脚本是否可写。令牌窃取利用Incognito扩展窃取高权限Token。Linux提权SUID提权find / -perm -us -type f 2/dev/null查找SUID程序利用Nmap、find、vim等SUID特性提权。Sudo提权sudo -l查看当前用户可执行的免密命令如sudo vim-:!bash。Cron任务检查定时任务脚本是否可写。内核提权Dirty Cow (脏牛) 等。第三部分应急响应与蓝队视角判断告警误报结合资产信息目标端口是否开放、系统版本是否匹配、攻击特征Payload是否为扫描器特征码、响应结果状态码、回显内容及威胁情报IP是否已知攻击源综合研判。应急响应流程 (PDCERF模型)准备 (Preparation)资产清单、基线备份。检测 (Detection)安全设备告警、流量异常、系统卡顿。抑制 (Containment)隔离受害主机断网、封IP。根除 (Eradication)查杀进程、删除Webshell/病毒文件、清理计划任务/启动项。恢复 (Recovery)修复漏洞、恢复数据、恢复上线。跟踪 (Follow-up)溯源报告、加固整改。Webshell排查基于文件对比备份diff、查近期修改文件find、查webshell特征函数eval,assert,base64_decode。基于流量Wireshark过滤POST请求体中的加密/编码流量。基于日志检查访问日志中请求单一文件且返回200的异常IP。内存马排查Servlet/Filter型通过Arthas、JVM-Sandbox等工具动态查看内存中注册的异常Filter/Servlet。Agent型排查Java进程加载的可疑Agent Jar包。第四部分工具使用与流量特征流量特征总结研判重点冰蝎3.0/4.0Content-Type: application/octet-stream。Accept头特征如冰蝎4.0:q.2。AES加密密钥为密码MD5前16位。哥斯拉Cookie末尾常带分号;响应体为0字节或加密数据。蚁剑UA头默认antswordPayload中常见ini_set、base64_decode。CS (Cobalt Strike)Beacon心跳包特征GET请求URL规律间隔如/j.ad?、Malleable C2 Profile流量伪装。Nmap常用参数补充-sV服务版本探测。-O操作系统探测。-p-全端口扫描。-A激进探测模式OSV脚本。--scriptvuln调用漏洞检测脚本。第五部分综合与场景补充护网监测岗职责实时监控关注安全设备态势感知、WAF告警及时分诊。初步研判结合资产和Payload判断攻击是否成功区分扫描与攻击。上报与处置发现真实攻击立即上报封禁IP协助应急。报告撰写记录攻击IP、时间、行为、处置结果。溯源反制思路IP情报查询微步在线、奇安信TI等查询IP是否为VPS、IDC或傀儡机。域名反查查询该IP历史上绑定过的域名通过WHOIS找注册信息。ID追踪利用攻击者留下的ID网名、邮箱在Github、百度网盘、社交平台进行社工搜索。蜜罐诱捕在可控环境下部署蜜罐反制获取攻击者浏览器指纹、社交账号、甚至通过水坑攻击反制攻击者终端。支付宝/微信转账校验通过转账验证姓氏攻击者手机号已知时。