目录 第1章SQL注入攻击与防护/1 1.1SQL注入攻击背景与相关技术分析1 1.1.1SQL注入攻击的定义1 1.1.2SQL的特点1 1.1.3SQL注入攻击产生的原理2 1.1.4SQL注入攻击的危害3 1.2SQL注入攻击经典案例重现3 1.2.1试验1: testfire网站有SQL注入风险3 1.2.2试验2: testasp网站有SQL注入风险5 1.2.3试验3: CTF MicroCMS v2网站有SQL注入风险8 1.3SQL注入攻击的正确防护方法10 1.3.1SQL注入总体防护思想10 1.3.2能引起SQL注入的错误代码段11 1.3.3能防护SQL注入的正确代码段12 1.3.4SQL注入最佳实践12 1.4SQL注入攻击动手实践与扩展训练12 1.4.1Web安全知识运用训练12 1.4.2安全夺旗CTF训练13 第2章XSS攻击与防护/14 2.1XSS攻击背景与相关技术分析14 2.1.1XSS攻击的定义14 2.1.2JavaScript语言的特点14 2.1.3XSS攻击产生的原理与危害15 2.1.4XSS攻击的分类15 2.1.5XSS漏洞常出现的地方16 2.2XSS攻击经典案例重现16 2.2.1试验1: testfire网站存在XSS攻击风险16 2.2.2试验2: webscantest网站存在XSS攻击危险18 2.3XSS攻击的正确防护方法20 2.3.1XSS攻击总体防护思想20 2.3.2能引起XSS攻击的错误代码段20 2.3.3能防护XSS攻击的正确代码段20 2.3.4富文本的XSS防御25 2.3.5通过CSP设置防御XSS攻击27 2.3.6XSS攻击最佳实践27 2.4XSS攻击动手实践与扩展训练27 2.4.1Web安全知识运用训练27 2.4.2安全夺旗CTF训练28 Web安全开发与攻防测试目录第3章认证与授权的攻击与防护/29 3.1认证与授权攻击背景与相关技术分析29 3.1.1认证与授权的攻击定义29 3.1.2认证与授权的特点29 3.1.3认证与授权攻击产生的原理31 3.2认证与授权攻击经典案例重现34 3.2.1试验1: Zero网站能获得管理员身份数据34 3.2.2试验2: CTFPostbook用户A能修改用户B的数据35 3.2.3试验3: CTF Postbook用户A能用他人身份创建数据37 3.3认证与授权攻击的正确防护方法39 3.3.1认证与授权总体防护思想39 3.3.2能引起认证与授权的错误代码段40 3.3.3能防护认证与授权的正确代码段40 3.3.4认证与授权最佳实践42 3.4认证与授权攻击动手实践与扩展训练42 3.4.1Web安全知识运用训练42 3.4.2安全夺旗CTF训练43 第4章Open Redirect攻击与防护/44 4.1Open Redirect攻击背景与相关技术分析44 4.1.1Open Redirect攻击的定义44 4.1.2Open Redirect攻击产生的原理44 4.1.3Open Redirect常见样例45 4.1.4Open Redirect的危害45 4.2Open Redirect攻击经典案例重现45 4.2.1试验1: testasp网站未经认证的跳转45 4.2.2试验2: testaspnet网站未经认证的跳转47 4.3Open Redirect攻击的正确防护方法49 4.3.1Open Redirect总体防护思想49 4.3.2能引起Open Redirect的错误代码段49 4.3.3能防护Open Redirect的正确代码段49 4.4Open Redirect攻击动手实践与扩展训练50 4.4.1Web安全知识运用训练50 4.4.2安全夺旗CTF训练50 第5章IFrame框架钓鱼攻击与防护/52 5.1IFrame框架钓鱼攻击背景与相关技术分析52 5.1.1IFrame攻击的定义52 5.1.2IFrame攻击产生的原理52 5.1.3钓鱼网站传播途径53 5.2IFrame框架钓鱼攻击经典案例重现53 5.2.1试验1: testaspnet网站有框架钓鱼风险53 5.2.2试验2: testasp网站有框架钓鱼风险55 5.3IFrame框架钓鱼攻击的正确防护方法57 5.3.1IFrame框架钓鱼总体防护思想57 5.3.2能引起IFrame框架钓鱼的错误代码段57 5.3.3能防护IFrame框架钓鱼的正确代码段57 5.4IFrame框架钓鱼攻击动手实践与扩展训练57 5.4.1Web安全知识运用训练57 5.4.2安全夺旗CTF训练58 第6章CSRF/SSRF攻击与防护/59 6.1CSRF/SSRF攻击背景与相关技术分析59 6.1.1CSRF/SSRF攻击的定义59 6.1.2CSRF/SSRF攻击产生的原理59 6.1.3CSRF/SSRF攻击的危害61 6.2CSRF/SSRF攻击经典案例重现61 6.2.1试验1: 南大小百合BBS存在CSRF攻击漏洞61 6.2.2试验2: 新浪weibo存在CSRF攻击漏洞63 6.3CSRF/SSRF攻击的正确防护方法64 6.3.1CSRF/SSRF攻击总体防护思想64 6.3.2能引起CSRF/SSRF攻击的错误代码段66 6.3.3能防护CSRF/SSRF攻击的正确代码段67 6.4CSRF/SSRF攻击动手实践与扩展训练68 6.4.1Web安全知识运用训练68 6.4.2安全夺旗CTF训练68 第7章HTML/CRLF/XPATH/Template注入攻击与防护/70 7.1HTML/CSRF/XPATH/Template注入攻击背景与相关技术分析70 7.1.1HTML/CRLF/XPATH/Template注入攻击的定义70 7.1.2HTML/CRLF/XPATH/Template注入攻击产生的原理71 7.1.3HTML/CRLF/XPATH/Template注入攻击的危害73 7.2HTML/CSRF/XPATH/Template注入攻击经典案例重现73 试验: testfire网站存在HTML注入攻击73 7.3HTML/CSRF/XPATH/Template注入攻击的正确防护方法75 7.3.1HTML/CRLF/XPATH/Template注入总体防护思想75 7.3.2能引起HTML/CRLF/XPATH/Template注入的错误代码段75 7.3.3能防护HTML/CRLF/XPATH/Template注入的正确代码段75 7.4HTML/CSRF/XPATH/Template注入攻击动手实践与扩展训练76 7.4.1Web安全知识运用训练76 7.4.2安全夺旗CTF训练76 第8章HTTP参数污染/篡改攻击与防护/78 8.1HTTP参数污染/篡改攻击背景与相关技术分析78 8.1.1HTTP参数污染/篡改攻击的定义78 8.1.2HTTP参数污染/篡改攻击产生的原理78 8.1.3HTTP参数污染/篡改攻击的危害79 8.2HTTP参数污染/篡改攻击经典案例重现80 8.2.1试验1: Oricity网站URL篡改暴露代码细节80 8.2.2试验2: CTF Postbook网站查看帖子id可以参数污染81 8.3HTTP参数污染/篡改攻击的正确防护方法82 8.3.1HTTP参数污染/篡改总体防护思想82 8.3.2能引起HTTP参数污染/篡改的错误代码段83 8.3.3能防护HTTP参数污染/篡改的正确代码段83 8.4HTTP参数污染/篡改攻击动手实践与扩展训练83 8.4.1Web安全知识运用训练83 8.4.2安全夺旗CTF训练84 第9章XML外部实体攻击与防护/85 9.1XML外部实体攻击背景与相关技术分析85 9.1.1XML外部实体攻击的定义85 9.1.2XML的特点85 9.1.3XML外部实体攻击产生的原理85 9.1.4XML外部实体攻击的危害87 9.2XML外部实体攻击经典案例重现87 9.2.1披露1: CVE20165002 Apache XMLRPC特定版本有 XXE攻击漏洞87 9.2.2披露2: CVE201812463 Fortify Software Security Center 特定版本有XXE攻击漏洞88 9.3XML外部实体攻击的正确防护方法89 9.3.1XML外部实体攻击总体防护思想89 9.3.2能引起XML外部实体攻击的错误代码段89 9.3.3能防护XML外部实体攻击的正确代码段89 9.4XML外部实体攻击动手实践与扩展训练89 9.4.1Web安全知识运用训练89 9.4.2安全夺旗CTF训练90 第10章远程代码执行攻击与防护/91 10.1远程代码执行攻击背景与相关技术分析91 10.1.1远程代码执行攻击的定义91 10.1.2远程代码执行攻击产生的原理91 10.1.3远程代码执行攻击的危害91 10.2远程代码执行攻击经典案例重现92 10.2.1试验1: CTF Codys First Blog网站有RCE攻击192 10.2.2试验2: CTF Codys First Blog网站有RCE攻击293 10.3远程代码执行攻击的正确防护方法95 10.3.1远程代码执行攻击总体防护思想95 10.3.2能引起远程代码执行攻击的错误代码段95 10.3.3能防护远程代码执行攻击的正确代码段95 10.4远程代码执行攻击动手实践与扩展训练97 10.4.1Web安全知识运用训练97 10.4.2安全夺旗CTF训练97 第11章缓存溢出攻击与防护/99 11.1缓存溢出攻击背景与相关技术分析99 11.1.1缓存溢出攻击的定义99 11.1.2缓存溢出攻击产生的原理99 11.1.3缓存溢出攻击方式100 11.2缓存溢出攻击经典案例重现100 11.2.1披露1: CVE201912951 Mongoose特定版本有缓存 溢出攻击漏洞100 11.2.2披露2: CVE201912044 Citrix NetScaler Gateway 特定版本有缓存溢出攻击漏洞101 11.3缓存溢出攻击的正确防护方法102 11.3.1缓存溢出攻击总体防护思想102 11.3.2能引起缓存溢出攻击的错误代码段102 11.3.3能防护缓存溢出攻击的正确代码段102 11.4缓存溢出攻击动手实践与扩展训练103 11.4.1Web安全知识运用训练103 11.4.2安全夺旗CTF训练103 第12章路径遍历攻击与防护/105 12.1路径遍历攻击背景与相关技术分析105 12.1.1路径遍历攻击的定义105 12.1.2路径遍历攻击产生的原理105 12.1.3路径遍历攻击的常见变种105 12.2路径遍历攻击经典案例重现106 12.2.1试验1: testphp网站目录列表暴露106 12.2.2试验2: 言若金叶软件工程师成长之路网站photo 目录能被遍历107 12.3路径遍历攻击的正确防护方法110 12.3.1路径遍历攻击总体防护思想110 12.3.2能引起路径遍历攻击的错误代码段110 12.3.3能防护路径遍历攻击的正确代码段110 12.4路径遍历攻击动手实践与扩展训练111 12.4.1Web安全知识运用训练111 12.4.2安全夺旗CTF训练111 第13章不安全的配置攻击与防护/113 13.1不安全的配置攻击背景与相关技术分析113 13.1.1不安全的配置攻击的定义113 13.1.2不安全的配置攻击产生的原理113 13.1.3不安全的配置攻击的危害113 13.2不安全的配置攻击经典案例重现114 13.2.1试验1: testphp网站出错页暴露服务器信息114 13.2.2试验2: testphp网站服务器信息泄露115 13.3不安全的配置攻击的正确防护方法117 13.3.1不安全的配置攻击总体防护思想117 13.3.2PHP服务器安全设置118 13.3.3服务器安全端口设置118 13.3.4MySQL数据库安全设置119 13.4不安全的配置攻击动手实践与扩展训练119 13.4.1Web安全知识运用训练119 13.4.2安全夺旗CTF训练119 第14章不安全的对象直接引用攻击与防护/121 14.1不安全的对象直接引用攻击背景与相关技术分析121 14.1.1不安全的对象直接引用攻击的定义121 14.1.2不安全的对象直接引用攻击产生的原理121 14.1.3不安全的对象直接引用攻击的危害122 14.2不安全的对象直接引用攻击经典案例重现122 14.2.1试验1: Oricity用户注销后还能邀请好友122 14.2.2试验2: testphp网站数据库结构泄露123 14.3不安全的对象直接引用攻击的正确防护方法125 14.3.1不安全的对象直接引用总体防护思想125 14.3.2能引起不安全的对象直接引用攻击的错误代码段125 14.3.3能防护不安全的对象直接引用攻击的正确代码段125 14.4不安全的对象直接引用攻击动手实践与扩展训练126 14.4.1Web安全知识运用训练126 14.4.2安全夺旗CTF训练126 第15章客户端绕行攻击与防护/128 15.1客户端绕行攻击背景与相关技术分析128 15.1.1客户端绕行攻击的定义128 15.1.2客户端绕行攻击产生的原理129 15.1.3客户端绕行攻击的危害129 15.2客户端绕行攻击经典案例重现129 15.2.1试验1: Oricity网站JavaScript前端控制被绕行129 15.2.2试验2: Oricity网站轨迹名采用不同验证规则130 15.3客户端绕行攻击的正确防护方法132 15.3.1客户端绕行总体防护思想132 15.3.2能引起客户端绕行攻击的错误代码段132 15.3.3能防护客户端绕行攻击的正确代码段132 15.4客户端绕行攻击动手实践与扩展训练133 15.4.1Web安全知识运用训练133 15.4.2安全夺旗CTF训练134 第16章应用层逻辑漏洞攻击与防护/135 16.1应用层逻辑漏洞攻击背景与相关技术分析135 16.1.1应用层逻辑漏洞攻击的定义135 16.1.2应用层逻辑漏洞攻击产生的原理135 16.1.3应用层逻辑漏洞攻击的危害135 16.2应用层逻辑漏洞攻击经典案例重现137 16.2.1试验1: Oricity网站有内部测试网页137 16.2.2试验2: 智慧绍兴积分管理页随机数问题138 16.2.3试验3: CTF Codys First Blog网站有admin绕行漏洞139 16.3应用层逻辑漏洞攻击的正确防护方法141 16.3.1应用层逻辑漏洞总体防护思想141 16.3.2能引起应用层逻辑漏洞攻击的错误代码段141 16.3.3能防护应用层逻辑漏洞攻击的正确代码段142 16.4应用层逻辑漏洞攻击动手实践与扩展训练142 16.4.1Web安全知识运用训练142 16.4.2安全夺旗CTF训练142 第17章弱/不安全加密算法攻击与防护/144 17.1弱/不安全加密算法攻击背景与相关技术分析144 17.1.1数据加密算法简介144 17.1.2Base64编码(基础)145 17.1.3单向散列函数MD5/HMAC/SHA1/SHA256/SHA512等146 17.1.4对称加密算法 DES/3DES/AES147 17.1.5非对称加密 RSA148 17.1.6数字证书(权威机构CA)149 17.1.7弱/不安全加密算法攻击产生的原因150 17.1.8弱/不安全加密算法攻击的危害150 17.2弱/不安全加密算法攻击经典案例重现150 17.2.1试验1: CTF Postbook删除帖子有不安全加密算法150 17.2.2试验2: CTF Postbook用户身份Cookie有不安全加密算法152 17.3弱/不安全加密算法攻击的正确防护方法155 17.3.1弱/不安全加密算法攻击总体防护思想155 17.3.2能引起弱/不安全加密算法攻击的错误代码段156 17.3.3能防护弱/不安全加密算法攻击的正确代码段156 17.4弱/不安全加密算法攻击动手实践与扩展训练156 17.4.1Web安全知识运用训练156 17.4.2安全夺旗CTF训练157 第18章暴力破解攻击与防护/158 18.1暴力破解攻击背景与相关技术分析158 18.1.1暴力破解攻击的定义158 18.1.2暴力破解的分类158 18.1.3暴力破解攻击的常见场景与危害160 18.2暴力破解攻击经典案例重现161 18.2.1试验1: testfire网站登录页面有暴力破解风险161 18.2.2试验2: CTF MicroCMS v2网站有暴力破解风险162 18.3暴力破解攻击的正确防护方法163 18.3.1暴力破解总体防护思想163 18.3.2能引起暴力破解攻击的错误代码段164 18.3.3能防护暴力破解攻击的正确代码段164 18.4暴力破解攻击动手实践与扩展训练166 18.4.1Web安全知识运用训练166 18.4.2安全夺旗CTF训练167 第19章HTTP Header攻击与防护/168 19.1HTTP Header攻击背景与相关技术分析168 19.1.1HTTP Header安全的定义168 19.1.2HTTP Header安全的常见设置168 19.2HTTP Header攻击经典案例重现173 19.2.1试验1: testfire网站Cookies没HttpOnly173 19.2.2试验2: testphp网站密码未加密传输174 19.3HTTP Header攻击的正确防护方法176 19.3.1HTTP Header安全总体防护思想176 19.3.2能引起HTTP Header的错误代码段176 19.3.3能防护HTTP Header安全的正确代码段176 19.4HTTP Header攻击动手实践与扩展训练177 19.4.1Web安全知识运用训练177 19.4.2安全夺旗CTF训练177 第20章CORS攻击与防护/179 20.1CORS攻击背景与相关技术分析179 20.1.1CORS攻击的定义179 20.1.2CORS简介179 20.1.3CORS攻击产生的原理181 20.1.4CORS带来的风险181 20.1.5CORS三个攻击场景182 20.2CORS攻击经典案例重现184 20.2.1披露1: CVE20186089 Google Chrome特定版本有 CORS攻击漏洞184 20.2.2披露2: CVE20188014 Apache Tomcat特定版本有 CORS攻击漏洞184 20.3CORS攻击的正确防护方法185 20.3.1CORS攻击总体防护思想185 20.3.2能引起CORS攻击的错误代码段186 20.3.3能防护CORS攻击的正确代码段187 20.4CORS攻击动手实践与扩展训练187 20.4.1Web安全知识运用训练187 20.4.2安全夺旗CTF训练187 第21章文件上传攻击与防护/189 21.1文件上传攻击背景与相关技术分析189 21.1.1文件上传攻击的定义189 21.1.2WebShell简介189 21.1.3文件上传攻击产生的原理189 21.1.4造成文件上传攻击的常见原因190 21.2文件上传攻击经典案例重现191 21.2.1试验1: Oricity网站上传文件大小限制问题191 21.2.2试验2: 智慧绍兴电子刻字不限制文件类型193 21.3文件上传攻击的正确防护方法194 21.3.1文件上传攻击总体防护思想194 21.3.2能引起文件上传攻击的错误代码段195 21.3.3能防护文件上传攻击的正确代码段195 21.4文件上传攻击动手实践与扩展训练196 21.4.1Web安全知识运用训练196 21.4.2安全夺旗CTF训练197