Day 1

DNS:域名ip解析协议

域名

www.baidu.com www是一级域名

tieba.baidu.com tieba是二级域名

shehui.tieba.baidu.com shehui是三级域名

本地host文件

image-20230706095025146

可以重定向解析,优先级高于dns

加速器就是通过修改host文件做到重定向,使其访问国内的缓存而非国外

CDN 缓存节点技术 一般无法获取真正的主机ip

绕CDN

Day3

有时访问域名和IP到达的是不同文件夹

使用御剑扫描时

ip地址访问可以发现更多内容,而域名访问只能发现一个文件夹下的所有文件

根据网站中间件解析协议的不同,对不同后缀名的文件做出不同的反应,或解析或不解析,或直接下载,或报错

例如

自定义一个可执行文件xiaodi8,为他添加asp的脚本文件路径后使其夺舍asp

xiaodi8解析不了是因为没有脚本文件 这里已经给它添加了asp.dll的路径 所以会按照asp脚本格式运行

装IIS时,会自动创建一个来宾用户

当lls采取匿名访问的策略,我们访问网页时,以来宾用户身份访问服务器上的文件

服务端可以自定义来宾用户的权限,这也是防护端用的一种技巧,他不提权的话菜刀啥的就用不了了

没有权限后,攻击方如何应对

思路:将后门换个目录,因为他不可能将无权限应用到那些有脚本文件的目录甚至根目录,若应用,网站都不能正常访问

网站漏洞:

网站源码

操作做系统

中间件

数据库

web源码

获取源码

代码审计

cms识别

image-20230724104624060

如果是框架,就直接利用框架漏洞

如果不是就去判断开源还是内部

可以用搜索引擎找到用相同源码的其他网站

过程

1 右键审查 查看网络 抓包 用搜索引擎搜索加载的特定文件

手动获取CMS

2

系统数据库

image-20230725113332842

判断操作系统:

如果有网站

1 改大小写,linux对网站敏感而windows对大小写不敏感

2 通过ttl

image-20230725115025194

判断不准确

3 用nmap扫描

nmap -O ip

判断数据库:

1.根据脚本类型判断

2.根据开放端口判断

第三方漏洞:安装在服务器上的或网站上的

nmap -O -sV ip

可查询目标ip服务器上的的端口开放性以其对应服务和版本

安装在网站上的要扫描网站的路径

今日实战:
成功部署vulbum,并通过本机访问虚拟机的端口,打开目标页面

1
2
3
docker-compose up --build -d
它会在启动容器之前自动构建缺失的镜像
确保您在包含docker-compose.yml文件的目录中运行这些命令,这样Docker Compose才能正确地找到并读取配置文件。
1
cve-2017-12615_tomcat_1 is up-to-date 

在这种情况下,cve-2017-12615_tomcat_1 是您所部署的tomcat服务的容器名称。up-to-date 表示镜像已经存在,没有需要更新的内容,因此不需要重新构建镜像。

这是正常行为,并且意味着tomcat服务已经成功地运行在Docker容器中。您可以通过运行以下命令来检查容器的状态:

1
2
docker-compose ps

Name Command State Ports —————————————————————————– cve-2017-12615_tomcat_1 catalina.sh run Up 0.0.0.0:8080->8080/tcp,:: :8080->8080/tcp

可以确认 cve-2017-12615_tomcat_1 容器正在运行,并且 tomcat 服务已经成功地在该容器中运行。

以下是您提供的输出信息的解释:

  • Name: cve-2017-12615_tomcat_1 是容器的名称,这是由Docker Compose自动为tomcat服务的容器生成的名称。
  • Command: catalina.sh run 是在容器内运行的命令。这是Tomcat Web服务器的启动命令。
  • State: Up 表示该容器当前正在运行。
  • Ports: 0.0.0.0:8080->8080/tcp, ::8080->8080/tcp 表示容器的端口映射。在这种情况下,tomcat 服务在容器内部监听 8080 端口,而通过Docker的端口映射,可以通过主机的 8080 端口来访问tomcat服务。

因此,您现在可以通过在浏览器中输入 http://localhost:8080http://<您的服务器IP>:8080 来访问 tomcat 服务的Web界面。您应该能够看到Tomcat服务器的默认欢迎页面。

1
2
ip addr

在输出中,找到与主机通信的网络接口,通常命名为eth0ens33,并找到该接口的IPv4地址。这就是虚拟机的IP地址。

加密算法

1 大部分的网站都采用了MD5的加密方式

MD5 MD5是不可逆的

那些网上的MD5解密就是爆破

碰上16位或者32位的密文时,考虑MD5

2 SHA:

SHA1 SHA256 SHA384 SHA512

后面的数越大生成的密文越长

3 时间戳:

常见于数据库中记录登录时间的,是一串数字

4 url编码:

%+两位字符

字符可能是数字或字母

5 base64编码

密文会随着明文增长而变长

特征:结尾会出现一个或两个等号

6 Unicode编码

%u+四个数字

7 AES

有四个数据 填充方式 数据块 密码 偏移量

前两个还可以猜一猜

后两个不知道没法玩

8 DES

需要密文

信息收集

image-20230924225913320

先看有无网站

若有

先查看有无CDN

若有CDN 进行绕过 可尝试挂梯子,接口查询,黑暗引擎,子域名

若无CDN开始信息收集 则尝试获取程序源码 程序源码分为开源和非开源

获取源码:

1 扫描备份文件 为了防止网站文件遗失 网站往往有备份

2 CMS识别后下载

3 小众网站 违法网站等 特殊渠道

开源的便可以直接分析源码或在本地搭建测试

获取操作系统 搭建平台 数据库类型

第二种情况是网站封装成app

用取证工具直接干 提取web

再找不到web 就要反编译和逆向

最后一种情况

啥也没有

查看有无第三方应用

image-20230924230639148

更新了

web应用/架构搭建

image-20231025224609944

漏洞大部分来自于源码

代码造成了漏洞

根据response

文件夹 403存在 404不存在

文件 200存在 404不存在

3xx跳转

5xx内部错误

抓包/封包

抓包

image-20231027101458735

image-20231027102041031

对于app

可以用模拟器,挂自己本机代理 用bp final可抓

小程序 用茶杯 还有一种是之前打卡用的那种方法

假如是非web协议的

用wireshark或者克莱网络分析系统

他是直接监测网络接口的

image-20231027102114170

封包

抓模拟器里的app

像那种页游

一种是傻瓜式封包

使用工具: 封包监听工具 科莱

我们可以发现 当人物移动的时候,有一个数据包是一直变化的

因为我们要时刻与他的游戏服务器保持交互

点击监听 然后回城

移动到其他地方 在发送一遍 发现回城了

获取具体到操作的数据包

基于此有些游戏外挂就是这么做的

第二种

模拟器安装proxydropid

本机启动ccproxy

image-20231027103057956

模拟器里的port要与cc里的sorket端口设置一样

总结

image-20231027101658252

有http协议 走常规流程

无http协议 扫ip 看资产

密码

image-20231028153610487

image-20231028154510640

md5是不可逆的,他的破解是枚举

案例一 md5

案例二 md5+discuss 要获得那个盐才能解密

获得salt之后

在MD5密文后面加:salt即可解密

案例三 基于操作系统的

win7及以后的用户密码都采用NTML加密

image-20231028165220114

案例四

非对称加密算法 加解密都很有难度

image-20231028165338496

image-20231028165510126

密码和偏移量是无法试出来的

image-20231028165615660

image-20231028171558935

php加密后,可以用在线网站解密

应用价值:作为开发者,保护自己的产品,作为攻击者,利用加密绕过waf

解密.net使用llSpy解密dll文件 类似于反编译

jsfuck与jother很像,只是少了{}

jsfuck .com 解密网站

信息打点 web架构篇

操作系统

中间件

脚本语言

数据库

源码名称

数据库中间件

搭建组合或端口扫描

image-20231030225524162

案例一 个人博客 架构 源码

用浏览器附带工具审查

image-20231030230431771

发现语言

通过更改访问文件的大小写

或者TTL

来判断操作系统

关系型数据库: 1.Oracle数据库默认端口号为,1521; 2.MySQL数据库默认端口号为,3306; 3.SQLServer数据库默认端口号为,1433; 4.postgreSQL数据库默认端口号为,5432;

NOSQL数据库: 1.MongoDB默认端口号为:27017; 2.Redis默认端口号为:6379; 3.memcached默认端口号为:11211;

可以通过扫描其相应端口是否开放来判断

image-20231030231616932

源码决定特性

特性决定手段

案例二 违法app 架构 源码

抓包

获得网站

然后和网站流程差不多

获取源码方式特殊

不在博客里写了

案例三 违法wz 架构 域名

去域名注册网站

可以获得whois信息和别的域名,大大增加资产

案例四 专属SRC 架构 域名

xs,根本挖不倒

信息打点 资产泄露篇

源码泄露途径

1
2
3
4
5
源码本身特性
管理员不好的习惯
管理员的不好配置
管理员的弱安全意识
管理员资源信息搜集

image-20231031091540036

直接获取 CMS识别

CMS识别

CMS识别平台

获得源码 黑盒变白盒

习惯不好 备份文件

7kbscan扫描其文件

用御剑也许

省流 别把网站备份到网站目录下 不然扫出来别人就直接下载了

配置不当 GIT泄露

image-20231031093651047

怎么判断有git目录

在网站后面输入/.git若返回403则目录存在

则可以

1
python.exe GitHack.py http://www.114514.com

然后就会获取源码

配置不当 SVN泄露

image-20231031095153507

类似于上面那个

没删 .svn文件夹的时候可以利用

配置不当 DS-Store泄露

.Ds_store 同上

PHP特性composer.json泄露

composer 乃是php的包管理工具

我们可与以通过它获得源码的一些信息

image-20231031180120587

该文件是一个说明性文件

会获取很多信息

以上的这些 从备份文件到这里 都是基于识别CMS失败的情况

下载配合-web inf泄露

image-20231031183756926

资源监控 Github泄露 语法搜索&关键字搜索 &社工

image-20231101193110505

image-20231101193132550

image-20231031192212195

信息打点 系统篇

获取网络信息-服务厂商&网络架构

服务厂商:

服务器的操作系统 以及位于的地点

如阿里云 腾讯云 机房 或随便租的

网络架构:
外网

随便访问

内网

机房里的一台机器在网关出口映射一些协议出来,把网站服务映射

扫这种网站会扫到外网出口,看不到网络信息

image-20231031231848510

案例1

1
https://www.ip138.com/

查询ip

image-20231031233651633

没有显示厂商可以看whois

有可能用的小厂的

案例2

image-20231031234416662

学校机房服务器搭建网站 绑定外网出口171

服务器本身地址是192

但是扫网站只能访问171

当进行安全测试时发现不对劲,出现误报或扫不到是

大概率是企业或学校的这种情况

这种没有办法

除非获得内网一台服务器的权限

获取服务信息-应用协议&内网资产

image-20231031232910460

协议就是扫端口

目标无法下手时,可以从他同一网段的服务器下手

可能有web协议,也可能有其他的一些协议

FTP SSH redis 各种服务

若获取同内网服务器权限

开始内网攻击

端口扫描工具 nmap

image-20231031235943467

image-20231101000042610

image-20231101000113478

旁注 使用在线网站查询

c段 使用kali masscan

获取阻碍信息-CDN&WAF&负载&防火墙

CDN

可以使用超级ping,从各地平同一个网站看指向的ip有什么不同

WAF

waf可以分类 有些大厂waf可以直接点了

判断waf

1 看图

2 脚本 wafwoof

负载均衡

kali ldb识别

image-20231101192040153

第9天:信息打点-CDN绕过篇&漏洞回链&接口探针&全网扫描&反向邮件

CND绕过

超级ping判断一下有CDN吗·

绕过

1 从子域名入手

有时候子域名不加速

一般子域名和主站保持统一ip

image-20231107221031471

2 从网站漏洞入手

未绑定CDN之前的域名解析记录

3 CDN本身

阿里云的号 基本不可能

4 挂梯子绕过

CDN配置的加速区域不全

5 黑暗引擎

image-20231107211442066

配置CDN时留下的痕迹

image-20231107211823648

适用于对方没有内网网卡的情况

若有内网网卡 获取的是服务器的内网ip

6 国外工作者的网站

Get Site IP - Find IP Address and location from any URL (get-site-ip.com)

直接出来 不建议 不保证准确率

7 fuckCDN 扫遍全网!

最终兵器

这玩意得下载

需要知道ip的一个范围进行包括

实在不知道就你妹的直接去ipip.net全球域名直接搞上去

案例一 ssrf漏洞&遗留文件

我们访问会碰到CDN 就让服务器自己找我们

在自己的服务器

image-20231107213046009

创建http服务 记录日志

上传ssrf.php文件

image-20231107213113574

原理是我们在搜索框里输入我们自己服务器的ip以及端口

然后我们的服务器里就出现了目标服务器的真实ip

案例二 邮件

image-20231107221928592

类似于案例一

你要让网站的邮件服务器主动给你发邮件

当我用邮箱和网站查出来不一样时

哪个才是正确的?
看备案

image-20231107223338210

找到真实ip之后

修改本地host文件

使其CDN无效化

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

外在抓包

bp fidder 茶杯

端口扫描

内在分析

AppInfoScanner

自动化app分析工具

1
python app.py android -i *.apk( apk文件的路径)

image-20231108231702486

先查一下壳

然后用

xposed

好像是脱壳/砸壳的

没看懂。。

还有安卓修改大师

可以改apk

看反编译代码

整体思路

根据数据包搜集服务器中间件信息

找到web网站

访问一下

看看有CDN吗

有就绕过

没有就端口扫描

后序主要围绕app代码逻辑和功能展开

image-20231110105556367

image-20231110105821603

第11天:信息打点-红队工具篇&Fofa&Quake&Kunyu&Suize水泽&Arl灯塔

网络空间搜索引擎

主要用到FOFA QUAKE

既可以单对单的资产探测

也可以单对多的漏洞批量挖掘 漏洞威胁检测

关联资产 特征资产 资产信息

集成工具 finger

github上的

集成四个引擎的工具

需要自己配置api

实现信息收集和漏洞的查找

Arl灯塔-自动化收集

有web页面的信息收集和漏扫引擎

能对部分漏洞做测试

有资源监控功能

image-20231114230601019

Suize水泽-自动化收集

比灯塔还强大

不仅收集常见信息

还收集企业查询信息

配置看起来有点麻烦

以及各种单点工具弥补缺点

第12天:PHP开发-个人博客项目&文章功能显示&数据库操作&数据接受

实现功能

前端文章导航

点入内容显示

更改ID显示不同内容

Navicat 操作数据库

dreamweaver 前端页面设计

phpStudy PHP搭建环境

数据库操作

image-20231115233041956

chunchunc语言

单引号当字符

双引号解析变量

sql查询信息并取出

result对sql语句执行结果接受

image-20231115233446785

通过传参展示网页不同内容

经典的sql注入漏洞

不过滤直接寄

image-20231115235301341

image-20231115234832753

第13天:PHP开发-个人博客项目&文件操作类&编辑器&上传下载删除读写

文件上传

image-20231115235728786

image-20231117192224401

第一种

自己写的

image-20231117193759115

验证不完全就会出现文件上传漏洞

第二种

套用编辑器

第三种

框架

编辑器和框架有问题就是有

没有就是没有

自己写的需要去测

文件下载

第一种

直连下载

先把文件全获取出来

下载哪个 直接点击

重定向

利用url

实现下载

比较简单的是 当你黑盒测试 你在URL中 输入到一个指定的目录 那么文件就会自动下载

直连下载

只有符合网页框架协议的exe,zip等文件才会直接下载

比较安全

第二种

传参下载

文件删除

image-20231118001233320

可以实现任意文件删除

文件读取

image-20231118001751942

文件写入

image-20231118001801979

文件包含

image-20231118002648434

1.txt换成变量

变量值 本地文件 远程文件

image-20231118002946984

图片🐎

防止:
限定包含文件类型

漏洞核心:

1 可控变量

比如直连下载无可控变量 所以安全

2 特定函数

3 函数的多样化

例如include require都能造成文件包含

第14天:PHP开发-个人博客项目&输入输出类&留言板&访问IP&UA头&来源

查询

image-20231118233049498

反映出反射性xss漏洞

特点

输入的参数能在网页中显示 可以执行js代码 实现xss漏洞

留言板

数据存储到数据库中

一调用数据库就会触发

及存储型xss漏洞

前面那个是暂时的

评论区 私信区 反馈建议等都是典型的输入输出类

有些网站为了用户体验及商业目的

会获取用户ip,ua头等

csrf

image-20231119004422709

image-20231119004537474

不过滤就寄了

XFF头伪造

网站中php中以XFF判断ip地址

可以伪造

服务器那种限制ip访问

是根据底层协议判断的

搞不了

image-20231119004956779

第15天:PHP开发-个人博客项目&登录验证&Cookie&Session&验证码安全

image-20231120232723110

不可能每个功能都进行登陆验证

image-20231120234429300

输对了进后台

输错了返回登陆页面

那我直接访问后台行不行呢?

不验证就成了 未授权访问

你妹的 肯定有登陆验证 但他不可能每次都输一遍账号密码

所有就有了cookie和session

image-20231120235800908

像这种的凭借cookie存不存在来判断的

我知道代码后

就形成了cookie修改 伪造

我伪造了依据 伪造出我成功登录的假象

案例1 伪造

image-20231121000321279

这种的抓包

cookie: user=1

直接就进后台了

案例二 劫持

cookie存在客户端的浏览器中

当用户被xss攻击获取cookie后

攻击者就可以直接登陆了

session

类似于打电话

每次登陆phpsessid都不一样

一关就挂电话了 断联系了 具有时效性

获取id也没用

image-20231121000904430

把数据库查询结果中的用户存出来

image-20231121001050023

这个phpid必须对了才能进

这玩意也爆破不了吧

没法攻击 只能劫持

登录逻辑

万能密码

‘ or 1=1#

select * from 123 where username =’ ‘ and passwd=’’

select * from 123 where username =’ ‘ or 1=1#’ and passwd=’’

将username引号闭合

根据或逻辑

1=1

有真则真

结果为真

#后面的被注释了

以上的验证

都可以爆破登录用户名密码

因此

还得加个验证码

防止爆破

验证码也有问题

例如验证码的复用 这个得看代码逻辑

输对一次验证码后面可以继续爆破

可以通过抓包获取验证码是否一成不变

image-20231121231857235

第16天:PHP开发-个人博客项目&JS-Ajax&前端逻辑&购物&登录&上传

js前端验证 文件上传

image-20231121232957503

逻辑挺简单

lastindex取出最后一个点后面的字符

作为后缀名

然后判断数组里面有没有

文件上传的代码可由php或js实现

image-20231121233151086

真的有用js写的🐎

image-20231121233546611

我甚至不用绕过

可以禁用js

image-20231121234419482

怎么判断用的啥

1 审查 大部分时候看这个

2 看数据回显时间 php的话要慢些

html文件不能写php

php文件能写html

js-ajax传递-登录-状态

image-20231121235114671

不对

看不懂 和以前安卓逆向见的代码差不多

java的

image-20231121235639219

ajax那边还得接受数据

image-20231122000251435

这是返回的数据包

image-20231122000219569

因此

可以在html那里写判断

image-20231122000346006

我们能干啥

咱可以把返回包作为数据包

image-20231122000805477

修改infocode后

再发出去了

就登陆了

也就是说php数据提交后在服务器判断

ajax在提交数据后还把返回值作为数据再读一遍判断

ps:

实战中这玩意可能封装起来

而且他用这玩意写

可能只是起个提示作用

饶了也没用

后台不在这判断

js-ajax传递-购物-参数

1价格以前端为准

我可以抓前端的包改价格买东西

也可以将ajax返回的数据改一下 让他以为我购买成功了

image-20231128203315549

2

价格以数据库为准 数据接受价格后运算

从数据库里取价格

这里改前端包的价格还是有用

因为他最终的判断还是以接受了的数据为准

3

价格以数据库为准 只接受数量后运算

还是能改数量

改成0.001,改成负的

4

价格以数据库为准,数据只接受数量过滤后做过滤运算

再加个特判

才能正确判断购买

牛魔

我还能改infcode

js什么fw

老演员 app

忘记密码的机制

先用我们的手机忘记密码一次

然后输入正确的验证码

获取验证码正确时的回显

后面再找回密码

验证码乱数

然后

把错误的换成之前搞得正确的

就能修改密码了

image-20231128203604870

典型的js前端验证

这种返回json数据包的

做安全测试时 要格外留意

第17天:PHP开发-个人博客项目&TP框架&路由访问&安全写法&历史漏洞

框架:

别人将一些功能封装起来供你使用

很多功能就可以直接调用了

url访问机制

image-20231128211506158

第一种

/index.php/index/xiaodi/x

第二种

image-20231128211659456

第三种

image-20231128213206188

image-20231129232620077

想要触发xxx并输出123

怎么弄

yes/love/xxx/x/123

yes/love/xxx/?x=123

image-20231129234946540

上半用到传统php接受数据方法

下半是用到tp框架的官方接收数据的方法 内置一些简单的sql注入过滤

image-20231129235043916

image-20231129234820090

即使接受数据没有过滤,按照官方数据库写法一样过滤

image-20231129234418739

两语句效果相同

tp框架下

application下的配置文件要提前配置 包括数据库等

方便操作

总结

如果遇到框架写的

两个方向 一个是看他有咩有按框架写

一个是看框架本身的漏洞