Web 安全攻防实战
王昊天
螣龙安科创始人兼 CEO
25016 人已学习
新⼈⾸单¥68
课程目录
已完结/共 106 讲
第二章:Web安全之后端安全 (46讲)
Web 安全攻防实战
登录|注册
留言
20
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 14 | 文件上传漏洞高阶:文件流绕过、字符串截断绕过、文件头检测绕过
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | Web安全前端基础:HTML
04 | Web安全前端基础:CSS、JavaScript
05 | 探究网站的运作原理:用Python写一个简单的Web App
06 | Web框架的运作原理:用Django快速搭建一个网站
07 | HTTP协议是怎么工作的?
08 | 常见的Web安全漏洞都有哪些?
09 | Web渗透工具入门:Burp Suite、cURL、Postman
10 | Web渗透插件入门:Wappalyzer、HackBar
11 | 文件上传漏洞:漏洞原理&一句话木马
12 | 文件上传漏洞初阶:后缀名绕过&原理探究
13 | 文件上传漏洞中阶:前端验证绕过、.htaccess绕过、大小写绕过
14 | 文件上传漏洞高阶:文件流绕过、字符串截断绕过、文件头检测绕过
15 | 文件上传漏洞:初探源码审计
16 | 文件上传漏洞:初探Fuzz
17 | Web安全后端基础:数据库的基本概念
18 | Web安全后端基础:极简MySQL入门
19 | SQL注入漏洞的原理及其危害
20 | 从协议视角看注入:GET型注入攻击及防御
21 | 从协议视角看注入:POST型注入攻击及防御
22 | SQL注入实战:判断SQL注入点&防御方式
23 | 宏观视角看注入:5种不同的SQL注入类型
24 | SQL注入实战:利用时间盲注绕过无报错无回显场景
25 | SQL注入实战:隐蔽的HTTP头盲注
26 | SQL注入实战:利用数据库的bug进行报错注入
27 | SQL注入实战:实施报错注入攻击
28 | SQL注入实战:威力巨大的堆叠注入
29 | SQL注入实战:游离在常规分类外的OOB注入
30 | SQL注入实战:浅谈OOB注入原理
31 | SQL注入实战:OOB注入之环境准备
32 | SQL注入实战:OOB注入关键函数解析之load_file
33 | SQL注入实战:实施OOB注入攻击
34 | SQL注入实战:如何绕过WAF之混淆注入原理
35 | SQL注入实战:如何绕过WAF之union、where、limit过滤绕过
36 | SQL注入实战:如何绕过WAF之group by、select、单引号、hex、unhex、substr绕过
37 | SQL注入实战:如何绕过WAF之空格、等号、双写、双重编码绕过
38 | SQL注入实战:如何绕过WAF之数据库底层编码注入攻击
39 | SQL注入实战:如何绕过WAF之二次注入攻击
40 | SQL注入实战:激动人心的命令执行
41 | SQL注入实战:webshell类型命令执行与交互
42 | SQL注入实战:UDF类型命令执行与交互
43 | SQL注入实战:玩转Linux权限管理之用户和组
44 | SQL注入实战:玩转Linux权限管理之文件权限
45 | SQL注入实战:自动化注入攻击之了解sqlmap
46 | SQL注入实战:玩转sqlmap之携带cookie
47 | SQL注入实战:玩转sqlmap之通过level设定检测深度
48 | SQL注入实战:玩转 sqlmap之读写server文件
49 | SQL注入实战:玩转sqlmap之实战脱库
50 | SQL注入实战:自动化注入攻击之FuzzDB+Burp组合拳
51 | SQL注入实战:欣赏优秀的Web后门之核心功能
52 | SQL注入实战:欣赏优秀的Web后门之免杀
53 | SQL注入实战:面向NoSQL数据库的注入攻击
54 | SQL注入实战:浅谈SQL注入防御方式及原理之预编译
55 | SQL注入实战:浅谈SQL注入防御方式及原理之过滤
56 | 加密算法与随机数
57 | Spring框架安全攻击和防御 - 什么是框架级漏洞
58 | Spring框架安全攻击和防御 - CVE-2017-8046利用
59 | Spring框架安全攻击和防御 - CVE-2017-8046分析
60 | 反射型XSS漏洞原理、案例及防御措施
61 | 存储型XSS漏洞原理、案例及防御措施
62 | DOM型XSS漏洞原理、案例及防御措施
63 | 伪协议与编码绕过
64 | XSS蠕虫实战案例分析
65 | XSS混淆编码
66 | CSRF跨站请求伪造漏洞原理、攻击演练
67 | 同源策略及跨源访问
68 | XSS及CSRF综合利用案例分析:点击劫持
69 | HTML5新标签及相应的安全分析(一)
70 | HTML5新标签及相应的安全分析(二)
71 | XSS之模板注入 - 初探Node.js模板引擎
72 | XSS之模板注入 - 模板引擎与XSS的关系
73 | XSS之模板注入 - 经典注入手法
74 | Javascript与RCE(远程代码执行)
75 | BlackHat议题追踪:XSS的危害不够大? - 构造攻击链
76 | BlackHat议题追踪:XSS的危害不够大? - CSRF到XSS
77 | BlackHat议题追踪:XSS的危害不够大? - XSS到RCE
78 | SSRF服务端请求伪造
79 | Apache安全专题 - 配置错误诱发的漏洞
80 | Apache安全专题 - CVE-2017-15715
81 | Nginx安全专题 - CRLF注入攻击
82 | Nginx安全专题 - CVE-2017-7529
83 | Tomcat安全专题
84 | PHP安全专题:了解PHP环境
85 | PHP安全专题:远程(本地)文件包含
86 | PHP安全专题:学习黑魔法函数
87 | PHP安全专题:序列化及反序列化漏洞
88 | PHP安全专题:浅谈PHP安全编码
89 | Java Web安全专题:Java Web基础
90 | Java Web安全专题:浅谈代码审计思路
91 | Node.js安全专题:Node.js基础
92 | Node.js安全专题:Express及其组件
93 | Node.js安全专题:Node.js安全开发技术
94 | Node.js安全专题:Node.js漏洞审计
95 | DDoS之协议层拒绝服务攻击:SYN泛洪、UDP泛洪、ICMP泛洪
96 | DDoS之应用层拒绝服务攻击:Slowloris攻击、HTTP Post DoS
97 | 如何做好认证与会话管理?
98 | 访问控制:水平权限&垂直权限
99 | 互联网公司运营安全、业务安全、业务逻辑安全策略规范
100 | 如何做好用户隐私保护?—— 开发者视角
101 | 如何做好用户隐私保护?—— 用户体验及产品设计视角
102 | 网络钓鱼防范:钓鱼网站、邮件钓鱼的防控
103 | 怎样建立安全开发流程(SDL)?
104 | 漏洞修补应当遵循怎样的流程?
105 | 如何建立安全监控规范?
106 | 结束语
本节摘要

1. UltraEdit 下载地址:
http://www.ultraedit.cn/downloads.html
2. test.php test.png 文件下载地址:
https://github.com/geektime-geekbang/WebSecurity/tree/master/Chapter_2_code
3. 这个网站列出了所有类型文件的 16 进制文件头:
https://www.filesignatures.net/index.php?page=all
课件和 Demo 地址
https://gitee.com/geektime-geekbang/WebSecurity

展开
登录 后留言

全部留言(20)

  • 最新
  • 精选
͡° ͜ʖ ͡°
文件流绕过这种方式 应该如何实践利用呢 在上传的时候,我没有搞清楚具体应该如何操作

作者回复: 文件流只适用于Windows环境下,比如站点禁止上传扩展名为.php的文件,那我们通过文件流的方式,将文件的扩展名修改为.php::$DATA,就可以成功绕过过滤,而对于windows系统来说这就是一个普通的文件,依旧会被作为php文件解析

2020-07-23
3
jxon-H
老师好,请教一个问题,文件截断和php版本是不是也是关系,我用的是php7,无论是get还是post方法的,截断功能功能不生效了。另外,对于您说讲解的这些漏洞,能不能针对每种漏洞列一个适用范围,例如服务器的平台信息,操作系统,语言版本,语言参数设置情况等等?谢谢。

作者回复: %00截断是和php版本有关联型的,是5.2.x版本的一个漏洞,php5.3.24代码中已经修复,修复的代码位于ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER函数的开始处。后面涉及到的漏洞,我会留意添加相关漏洞的信息和适用范围。

2020-07-16
3
3
stefen
如果文件上传目录设置成只有600只有读写权限 这些漏洞应该都不会存在吧

作者回复: 安全很大一部分上就是权限的问题。就是让不具有权限的用户进行操作。

2020-08-01
1
仄言
shell.php.jpg 修改 shell.png%00.jpg,这样上传到服务器是shell.png, webshell还是解析不出哈

作者回复: 这种安全问题要看服务器是否真的有这类漏洞才行哦·~·

2021-08-19
Mr.Fisher刘
老师您好,我不太明白的是,正常上传的文件需要后缀名是.php的才能执行里边的代码,在视频后段为什么做了文件聚合但是后缀是.png的也可以执行php语句呢? 我理解的文件聚合主要是为了绕过文件头的检测,但是后缀是.png为什么可以执行语句呢?

作者回复: 服务端根据后缀名,把它放到对应的执行器执行,一些绕过方式使服务器将png后缀文件放到php解析器解析执行也能达到

2021-08-03
汉堡哥哥🍔
老师,为什么我用burpsuite截下来的数据没有文件名啊?和您截的完全不一样。

作者回复: 没有图,无法判断,但可以检查流程顺序,和使用的文件,利用的漏洞种类等级,是否和演示中的一致呢。

2020-08-21
ShenJH
老师这个文件流绕过该具体怎么实施呢?主文件用1.txt,附着一个文件流1.php,这样上传时可以绕过黑名单,但上传之后这个1.php是无法解析的。报错信息是forbidden,you don't have permission to access /upload/1.txt:1.php on this server

作者回复: 需要自己搭建windows+php环境的,课程提供是基于linux的。

2020-08-20
jaxzhai
老师讲的字符串截断绕过哪里,如果是截断shell.php.jpg文件,一样上传不上去啊。这样没有什么意义吧。我可以直接上传shell.png啊

作者回复: 直接上传shell.png系统只会将其作为普通的图片,文件的扩展名必须要是.php才会被当做php文件进行解析。

2020-07-23
jaxzhai
我想知道,老师讲的字符串截断绕过哪里有什么意义呢? 要是截断php文件,一样没有绕过吧? 我测试的是这样的。

作者回复: a.php%00.jpg可以通过文件扩展名的过滤,.jpg会作为文件的扩展名进行匹配。但因为截断的存在文件名会被理解为a.php,会使用php解释器来解析该文件。

2020-07-23
天堂中人
JAVA能不能构造出这种上传漏洞

作者回复: 这里只是举例,这些漏洞可能会因为开发的失误而存在,与具体的语言无关。

2020-07-23
收起评论