新書推薦:
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:NT$
265.0
《
慈悲与玫瑰
》
售價:NT$
398.0
《
启蒙的辩证:哲学的片简(法兰克福学派哲学经典,批判理论重要文本)
》
售價:NT$
347.0
《
心跳重置
》
售價:NT$
269.0
《
云中记
》
售價:NT$
347.0
《
中国古代妇女生活(中国古代生活丛书)
》
售價:NT$
214.0
《
你的认知正在阻碍你
》
售價:NT$
296.0
《
我们身边的小鸟朋友:手绘观鸟笔记
》
售價:NT$
356.0
|
編輯推薦: |
从入门到精通,内容全面。这是一本Web初学者可以看懂的书,本书从开发技术讲起,至安全技术终结。开发技术包含HTML、CSS、JavaScript等Web前端技术和基于PHP、JSP和Python的后端技术。安全方向则包含语言层面的漏洞、Web通用漏洞和框架漏洞。
内容翔实,详略得当。安全方面涵盖漏洞产生的原理、攻击和防御技术。攻击技术有手工攻击,也有脚本攻击和渗透工具的使用。
知识全面,既可以自学使用,又可以用于课堂教学。作者常年奋战在教学一线,有较丰富的教学经验,知道怎样编写教材才能让学生更容易掌握知识。本书语言通俗易懂,遇到知识常以例子先行,例子大多短小精悍,突出重点,减少学生学习时的实验时间。
|
內容簡介: |
本书为网络安全类书籍,内容主要为Web开发、漏洞攻击与防护,主要分为以下两大部分。第一部分为Web基础知识,以期为不熟悉Web但希望从事Web安全工作的读者打下学习基础。 第二部分为Web漏洞的攻击与防护技术,以期引领读者进入Web安全的大门。 两部分各有侧重,但并非完全独立。第一部分也有安全内容,第二部分也包含了必要的基础技术。 Web基础知识部分既包括HTML、CSS、JavaScript等前端技术,也包括PHP、JSP、Python等后端技术。书中涉及3种后端技术的目的是适应Web安全从业人员对知识广度的要求。 其中包含了PHP语言层面的漏洞、正则表达式漏洞。Python部分包含了Flask漏洞。 Web漏洞的攻击与防护技术部分主要包括HTTP与攻防、弱口令攻击、SQL注入与防护、防护与绕过技术、XSS跨站脚本攻击、CSRF跨站请求伪造攻击与防护、SSRF服务器端请求伪造与防护、文件上传与包含漏洞,以及常见Web框架(如Struts、ThinkPHP)中的远程代码执行漏洞的攻击和防护。 本书强调对读者实践能力的培养,每个漏洞介绍皆有攻击案例的演示。初学者先完成实验再深入理解,比纯粹的理论讲解更富有趣味性,也更容易培养其实用技能。 本书既适合作为高等学校计算机、网络空间安全、信息安全等相关专业的教材,也适合从事网络安全工作的技术爱好者自学。
|
目錄:
|
第1章Web开发和安全概述1
1.1计算机网络2
1.2TCP/IP网络体系结构2
1.3TCP/IP的网络地址4
1.3.1物理地址4
1.3.2IP地址4
1.3.3端口5
1.4基于TCP/IP的网络数据传输6
1.5Web与HTTP8
1.6Web常见漏洞及其防范9
1.6.1SQL注入攻击9
1.6.2跨站脚本攻击10
1.6.3弱口令漏洞10
1.6.4HTTP报头追踪漏洞11
1.6.5Struts远程命令执行漏洞11
1.6.6文件上传漏洞11
1.6.7私有IP地址泄露漏洞12
1.6.8未加密登录请求漏洞12
1.6.9敏感信息泄露漏洞12
1.7网络安全法律法规12
1.8CTF比赛简介13
1.9小结14
第2章HTML15
2.1HTML文件结构15
2.2文本排版17
2.3超链接18
2.4图像19
2.5表格20◆Web开发与安全目录2.6表单20
2.7标签21
2.8HTML5新特性示例22
2.9小结24
第3章CSS25
3.1CSS语法25
3.2CSS选择器28
3.2.1标签选择器28
3.2.2id选择器29
3.2.3类选择器29
3.2.4属性选择器30
3.2.5分组选择器31
3.2.6派生选择器32
3.3盒子模型32
3.4定位方式33
3.5导航条示例35
3.6小结36
第4章JavaScript37
4.1HTML中如何嵌入JavaScript38
4.2语法40
4.2.1变量声明与变量类型40
4.2.2表达式与语句42
4.2.3流程控制42
4.2.4函数声明与使用43
4.2.5JavaScript对象44
4.3常用函数与类46
4.3.1字符串46
4.3.2Date对象46
4.3.3Array对象47
4.3.4Math对象48
4.4DOM对象操作48
4.5Ajax异步加载技术49
4.6JavaScript与CTF解题示例50
4.6.1用户验证逻辑案例51
4.6.2巧用Console求解复杂算法52
4.6.3escape解密54
4.6.4John解密56
4.6.5JScript.Encode解密58
4.7小结62
第5章PHP入门63
5.1PHP简介与开发环境搭建63
5.1.1PHP简介63
5.1.2PHP安装过程64
5.2PHP语法68
5.2.1PHP执行过程68
5.2.2PHP变量与流程控制70
5.2.3PHP数组71
5.2.4PHP函数定义与调用73
5.2.5PHP常用系统函数74
5.3PHP内置对象75
5.3.1$_GET75
5.3.2$_POST76
5.3.3$_COOKIE78
5.3.4$_SESSION80
5.4PHP连接数据库82
5.4.1建立和断开连接82
5.4.2执行SQL查询83
5.4.3数据的添加、修改和删除83
5.4.4完整示例83
5.5PHP常见漏洞85
5.5.1intval字符串转整数漏洞85
5.5.2伪MD5碰撞86
5.5.3MD5相等的数组绕过87
5.5.4真MD5碰撞87
5.5.5正则表达式字符串截断漏洞91
5.5.6extract变量覆盖漏洞92
5.6小结92
第6章JSP入门93
6.1CGI与Servlet93
6.1.1使用CGI响应用户请求93
6.1.2Servlet94
6.1.3第一个Servlet94
6.2JSP简介100
6.3JSP内置对象104
6.3.1out104
6.3.2request105
6.3.3response107
6.3.4Cookie109
6.3.5session110
6.3.6application111
6.4JSP连接数据库112
6.4.1加载驱动与建立连接112
6.4.2执行SQL查询114
6.4.3插入、删除、更新数据115
6.5登录案例116
6.6小结117
第7章Python与Flask框架118
7.1Python语法快览118
7.1.1输出118
7.1.2输入119
7.1.3变量119
7.1.4数学运算121
7.1.5数学函数122
7.1.6字符串123
7.1.7列表125
7.1.8元组128
7.1.9字典129
7.1.10流程控制语句131
7.1.11函数133
7.1.12模块135
7.1.13读写文件137
7.1.14面向对象137
7.2Flask入门139
7.2.1安装139
7.2.2Hello Flask139
7.2.3多页面与路由140
7.2.4静态文件的显示142
7.2.5使用模板142
7.2.6请求144
7.2.7跳转145
7.2.8响应145
7.2.9会话146
7.3Flask数据库访问148
7.4Flask漏洞与攻防151
7.4.1Flask模板漏洞151
7.4.2Flask session漏洞156
7.4.3Flask验证码绕过漏洞156
7.4.4Flask格式化字符串漏洞156
7.4.5Flask XSS漏洞157
7.5小结159
第8章HTTP与攻防160
8.1HTTP简介160
8.1.1HTTP概述160
8.1.2请求结构161
8.1.3响应结构167
8.2Burp Suite的使用168
8.3BP基础配置169
8.4AcceptLanguage篡改173
8.5UserAgent伪造175
8.6Cookie伪造176
8.7伪造IP攻击与防范178
8.8小结179
第9章弱口令攻击180
9.1用户登录与弱口令攻击180
9.2基于脚本的弱密码攻击186
9.3无效验证码字典攻击188
9.4小结191
第10章SQL注入与防护192
10.1MySQL数据库192
10.2SQL注入原理193
10.3SQLiLABS的安装194
10.4基于回显的SQL注入195
10.5基于错误回显的SQL注入200
10.6服务器端SQL语句对注入的影响202
10.7基于布尔的SQL注入203
10.8基于延时的SQL注入209
10.9SQLMap自动化渗透技术216
10.9.1探查可以使用的渗透技术216
10.9.2泄露所有的数据库名219
10.9.3泄露数据库中所有的表名220
10.9.4泄露表格中所有的列220
10.9.5泄露表格中所有的数据221
10.9.6使用参数限定攻击技术223
10.9.7指明数据库类型226
10.9.8伪静态网页的注入228
10.9.9POST注入228
10.9.10SQLMap命令速查手册238
10.10防护与绕过技术238
10.10.1基于简单文本替换的注释过滤与绕过239
10.10.2关键词过滤与大小写绕过239
10.10.3关键词过滤与双写关键词绕过239
10.10.4空格过滤与绕过240
10.10.5伪注释241
10.10.6基于正则表达式的注释过滤与绕过242
10.10.7特殊符号的运用242
10.10.8圆括号过滤与绕过243
10.10.9or、and、xor和not过滤与绕过243
10.10.10等号过滤与绕过243
10.10.11字符串过滤与绕过244
10.10.12等价函数绕过245
10.10.13宽字节注入245
10.10.14大于号和小于号绕过247
10.11小结248
第11章跨站脚本攻击249
11.1XSS简介249
11.1.1反射型XSS249
11.1.2持久型XSS253
11.1.3DOM型XSS256
11.2XSS漏洞利用258
11.2.1Cookie窃取258
11.2.2会话劫持259
11.2.3钓鱼259
11.3payload构造技术260
11.4XSS防范技术262
11.4.1转义262
11.4.2关键词过滤263
11.4.3使用网上发布的专用过滤函数263
11.5小结265
第12章跨站请求伪造攻击与防护266
12.1CSRF简介与分类266
12.2CSRF的攻击原理266
12.2.1HTML CSRF267
12.2.2Flash CSRF267
12.3CSRF攻击案例268
12.3.1环境搭建268
12.3.2模拟商城270
12.3.3模拟商城的测试271
12.3.4CSRF攻击代码273
12.3.5攻击代码的安装274
12.4CSRF防御274
12.4.1验证码防御274
12.4.2Referer检查276
12.4.3添加token277
12.4.4使用POST方式替代GET方式277
12.5小结277
第13章服务器端请求伪造与防护278
13.1SSRF简介278
13.2SSRF入门示例279
13.3fsockopen和curl带来的SSRF漏洞282
13.4SSRF端口扫描器284
13.5SSRF局域网扫描器285
13.6万能协议Gopher利用287
13.7Gopher攻击其他协议293
13.8小结294
第14章文件上传与包含漏洞295
14.1上传漏洞简介295
14.2一句话木马上传298
14.3一句话木马盗取重要信息300
14.3.1查看源代码300
14.3.2获取passwd和shadow文件300
14.4MIME类型验证绕过301
14.5文件名验证绕过304
14.6文件包含漏洞306
14.7文件头验证绕过308
14.8文件上传漏洞的防范310
14.9小结312
第15章常见的Web框架漏洞313
15.1框架漏洞313
15.2Struts 2漏洞313
15.2.1测试环境搭建313
15.2.2S2001远程代码执行漏洞(CVE20074556)314
15.2.3S2007远程代码执行漏洞(CVE20120838)317
15.2.4S2008远程代码执行漏洞(CVE20120392)319
15.2.5S2012远程代码执行漏洞(CVE20131965)321
15.2.6S2013远程代码执行漏洞(CVE20131966)323
15.2.7S2015远程代码执行漏洞(CVE20132134(2135))325
15.2.8S2016远程代码执行漏洞(CVE20132251)327
15.2.9S2019远程代码执行漏洞(CVE20134316)328
15.2.10S2032远程代码执行漏洞(CVE20163081)330
15.2.11S2045远程代码执行漏洞(CVE20175638)331
15.3PHP漏洞333
15.3.1CVE201911043远程代码执行漏洞333
15.3.2ThinkPHP V5.0.23远程代码执行漏洞336
15.3.3ThinkPHP V5.x远程命令执行漏洞337
15.4小结339
后记340
|
內容試閱:
|
在我看来,世界最核心的东西无外乎物质、能量与信息。
輮木以为轮,磨铜以成镜,现代数控机床加工乃至光刻技术,这是物理变化。从炼汞烧铅妄图长生,到发明元素周期表,深入研究物质之变化,再到合成各种工业材料,这是化学变化。借助离子对撞机,创造新元素乃至发现新的基本粒子,人类深入物质的本质。
人类没有大力,所以驱使牛马。牛马力有穷尽,所以善用水、风等自然之力。水、风等自然之力无常,所以发明了蒸汽机、内燃机。煤炭、汽油运输不便,所以开发出电这种便捷能源,区区一根铜线就可以传输巨额能量。物质的研究最终给人类带来了与太阳同源的核能。至此,人类对能量的认识和利用已经达到相当高的程度。
人类的智慧传输,最早靠肢体和语言,而后发明文字,信息可传至万年以后。古时用烽烟、驿站,抑或鸿雁传书,这是古人传递信息的方式。后有电报、电话,直到计算机、互联网的发明,信息传递速度已超乎想象。人类因此而步入信息时代。
而今,信息技术已然成为第一生产力,信息的安全却被忽视了。就如人盖屋,先求遮风挡雨,后考虑防火防盗。这是事物发展的必然规律。现今已经到了不得不重视信息安全的时候了。
2015年,网络空间安全升级为一级学科,全国布控。然而,该学科师资短缺、教材稀缺,给课程建设和教学开展带来了不少困难。
此时,编者所教授的“Web开发与安全”课程,难觅教材。 学生一来不懂Web开发,二来不懂Web安全,所以合二者内容于本书之中。
本书在组织上,先介绍Web开发,再介绍相关Web安全,Web开发中又渗透着Web攻击技术。
对于培养Web开发人员而言,本书涉及了前端的HTML、CSS、JavaScript技术,有别于深入开发的书籍,在后端内容部分涉及了3种后端技术,包括PHP、JSP和Python,既讲述语言层面的漏洞,又讲述框架(如ThinkPHP、Flask、Struts)的漏洞。 那么,为什么要涉及这么多的内容呢? 这与网络安全从业人员的知识结构有关。作为网络安全从业人员,可能无须对开发非常精深,但什么东西都要略懂。开发人员或许用十几年熟悉一门开发技术即可胜任自己的工作,但网络安全人员面对的渗透测试任务可能涉及各种语言、各种框架,这不是由自己决定的。不能说我就是一个Struts框架的渗透人员,就不能渗透ThinkPHP。因此,本书弃其深,取其精,求其广。
对于培养Web安全人员而言,本书多了Web开发的内容。因为如果不懂这些基础,渗透也就无从谈及。 在我看来,对网络安全从业人员的素养要求要远超对开发人员的素养要求。开发人员懂得基本原理和实际用法即可驾驭一种语言或一个框架,而网络安全从业人员却要从寻常之中发觉漏洞。因此,本书先讲开发,再讲安全,次第而行。
文中涉及语言层面漏洞,以及SQL注入、XSS、CSRF、SSRF漏洞和典型框架漏洞。 网络空间安全专业的Web课程可以此为凭借。 有兴趣的读者也可以自行购书学习。
书中案例简洁而平实,读者在学习时要逐一验证体会。理解任何理论的最佳方法无外乎落实于实际行动。同时,欢迎读者订阅本书微信公众号“Web开发与安全”,以便获得更多资料。
编者编写本书,一是为顺应趋势,二是希望有助于网络空间安全学科的发展,三是方便自己教学使用。如有谬误之处,还请诸位同仁不吝赐教。
编者2022年3月
|
|