分阶段学习
总体学习大纲
阶段一 | ||
---|---|---|
1 | 认识漏洞 | 漏洞定义,漏洞产生原因,漏洞利用方式,web题目做题思路 |
2 | 信息泄露 | 信息泄露类型,信息泄露漏洞利用 |
3 | 数据爆破 | BurpSuit数据抓包,BurpSuit数据爆破利用,401认证数据爆破 |
4 | web环境搭建 | php的语言基础,linux基础 |
5 | php的命令执行 | php的命令执行,命令执行bypass,不同命令长度限制下的命令执行 |
6 | php的代码执行 | 5类代码执行的利用方式,包括危险函数型代码执行,字符过滤型代码执行,长度限制型代码执行,函数禁用型代码执行以及位运算绕过代码执行使用蚁剑进行远程一句话木马利用 |
7 | 无回显下的命令执行 | 无回显命令执行的五大信道利用反弹shell及排错 |
8 | php文件包含基本利用 | 文件包含漏洞与php语法结构,php伪协议利用 |
9 | php文件包含高级利用 | 文件包含的可控点,日志包含,临时文件包含,upload_progress包含,pear文件包含公开姿势1,2及未公开姿势3 |
10 | php的文件上传 | 黑名单绕过,0字节截断,iconv字符转换截断,白名单过滤,IIS解析漏洞、ApacheHttpd解析漏洞、Nginx解析漏洞,ImageMagick解析漏洞 |
11 | 文件上传高级利用 | 配置文件绕过,内容过检测,二次渲染,配合Phar文件包含 |
12 | php敏捷开发 | 从零开发php博客系统 |
13 | sql基础与sql注入 | sql注入完全覆盖手册,sql注入的绕过 |
14 | php面向对象 | php类与对象,php抽象类、接口、trait,类的继承与多态,类属性权限,匿名类 |
阶段二 | ||
15 | php的序列化与发序列化 | 类的序列化与魔术方法,反序列化绕过反序列化字符逃逸 |
16 | php反序列化高级利用 | phar的反序列化利用session反序列化利用 |
17 | thinkphp的漏洞利用php代码审计 | thinkphp的基础设计与编码thinkphp的反序列化漏洞thinkphp的通用漏洞 |
18 | ssrf攻击面利用 | ssrf的四个攻击面利用ssrf的五个绕过方式 |
19 | jwt原理及利用 | jwt的原理jwt的四大利用方式 |
20 | xxe漏洞利用 | 文件读取与盲注 |
21 | ssti 模板注入 | python的PIN计算,ssti利用及绕过 |
阶段三 | ||
22 | python的反序列化 | python反序列化的安全问题 |
23 | NodeJS与原型污染 | Nodejs开发基础,原型污染原理及原型污染链挖掘 |
24 | java基础 | java基础语法,servlet开发基础 配置开发环境 java的MVC |
25 | java原生序列化与反序列号 | java的流,java的反序列化利用3大方式 |
26 | java的RMI | 远程方法调用基础,远程对象RMI客户端与服务端通讯,JAVA的RMI的反序列化 |
27 | java的JNDI注入 | JNDI结构,JNDI注入+RMI实现远程命令执行,基于JNDI的log4j漏洞利用 |
28 | java的Spring | Spring基础 |
29 | javaSpring漏洞利用 | Spring的内省机制、Spring-2022的cve漏洞分析与利用 |
30 | 内网渗透与权限维持 | 内网渗透时的基本操作,Linux常见权限提升 |
信息收集
获得目标(域名/IP)
考虑到cdn的因素,在获得目标域名后
第一步是获取真实IP
- 多地ping找真实ip:爱站超级ping、Ping.cn、多地Ping站长工具 、dig.ping
- 查DNS解析记录(nslookup 域名)
- 利用国外主机解析
- 利用网站邮件头信息(邮箱注册、找回密码、RSS邮件订阅等功能)
其二是查询旁站等信息
- 指纹识别:潮汐指纹、云悉指纹识别
- 子域名、旁站:(指纹识别网址一般都提供查找子域名和旁站,也可以自己搜索一下)
- 搜索引擎:FOFA网络空间测绘系统、ZoomEye("钟馗之眼")、Shodan、Censys
主机发现
nmap扫描
利用nmap扫描目标,获得其开放端口及相关信息,从而决定下一步渗透方向
官方命令手册
Chapter 15. Nmap Reference Guide | Nmap Network Scanning
nmap脚本 NSEDoc Reference Portal: NSE Categories — Nmap Scripting Engine documentation eg:
nmap --script=vuln
常用命令
sudo nmap --min-rate 10000 -p- 10.10.10.19 #端口扫描
sudo nmap -sT -sV -O -p22,3128,8080 10.10.10.19
#-sT tcp扫描,-sV版本扫描,-O系统扫描,-p指定端口,可以指定上一条扫描出的开放端口
sudo nmap -sU -p22,3128,8080 10.10.10.19
#-sU udp扫描
web打点前的信息收集
页面源代码: F12、 禁止右键时修改url格式:view-source:url
看请求包和响应包
robots.txt防爬虫
源码泄漏:
tar、tar.gz、zip、rar
.svn:url.svn 工具svnhack
.git:url/.git/xxx 工具githack
vim缓存:.swp、.swo、.swn 临时文件是在vim编辑文本时就会创建的文件, 如果程序正常退出,临时文件自动删除,如果意外退出就会保留 当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容
以
index.php
为例 (注意:index前有 " . ") 第一次产生的缓存文件名为.index.php.swp
第二次意外退出后,文件名为.index.php.swo
第三次产生的缓存文件则为.index.php.swn
mdb:mdb文件是早期asp+access构架的数据库文件,文件泄露相当于数据库被脱裤了
一些网站信息泄漏:
- 一些技术文档可能由于开发、运维人员失误放了一些东西在里面
- 探针:如雅黑:url/tz.php
- 管理员邮件、管理员帐号
- (url/editor)某编辑器editor最新版默认配置下,如果目录不存在,则会遍历服务器根目录
目录爆破:(字典是关键,自定义字典可以用这个工具生成:pydictor)
- dirsearch
- dirmap
- 7kbscan-WebPathBrute:Web路径暴力探测工具
- nccgroup/dirble:快速目录扫描和抓取工具 (github.com)
- DirBuster —— kali自带
- Dirb —— kali自带
- feroxbuster —— kali自带
漏洞查询: SearchSploit —— kali自带
web基础
开发环境基础
linux基础
web渗透
PHP
命令执行
获得webshell后,针对可能存在的关键词限制/长度限制 进行绕过
关键词限制绕过
通常是利用语言以及系统特性进行绕过,如引号、异或计算、通配符等
引号,在linux下
单引号:会将其中内容都当做字符串,忽略所有命令和特殊字符,单引号中的变量是无效的
双引号:会解析其中的特殊字符和变量,如果要原样输出特殊字符需要用
\
转义反引号:会将反引号中的字符串当作命令执行,反引号类似
$(command)
(php同) (shell中有两种方法作命令替换:把shell命令用反引号或者$(…)结构括起来,其中,$(…)格式受到 POSIX标准支持,也利于嵌套。)eg:
<?php
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag/i", $c)){
eval($c);
}利用正则匹配来过滤关键词,可利用引号拼接bypass
?c=system("tac fl''ag.php");
linux下一些字符的作用:
* # 通配符,匹配任意字符
? # 占位符,匹配任意一个字符---作用类似正则 (可绕过文件名过滤,如:tac *、?at flag.php)
%0a # (换行符)
$ # 变量调用符号
| # 第一条命令结果作为第二条命令的输入
|| # 第一条执行失败,执行第二条命令
; # 连续指令功能。
& # 连接的两条命令都会执行
&& # 当第一条执行成功后执行后续命令
> # 重定向输出符号(覆盖)
>> # 重定向输出符号(追加)
代码执行
文件包含
文件上传
类、序列化和反序列化
JAVA
IDEA
Maven
Java Web
反射
ASM/Javassist
JNDI:8u191低版本和高版本怎么打(反序列化/本地工厂),以及如何审计
RMI是什么
Java Agent:启动原理和RASP的实现原理
JMX/JDWP
反序列化基础:gadget链、JEP290是什么
FastJson反序列化
WebLogic:二次反序列化、XML Decoder、IIOP/T3
Xstream反序列化
Hessian反序列化:dubbo
SnakeYAML反序列化
Shiro:Shiro经典漏洞、Padding Oracle漏洞形成原理、如何通过Shiro注入内存马
Struts2
Spring:Spring4Shell、Spring EL、SpringBoot Actuator利用
Tomcat:Tomcat AJP RCE
内存马原理:原理是什么、有哪些内存马
内存马如何查杀
Log4J
其他组件漏洞:Apache Solr、Flink
进阶:tabby、codeql等静态分析