目录
一、实现bluecms旁注漏洞,并解释为什么旁站攻击可以拿下主站?跨库的意思是什么?
跨库的意思是什么?可在一个数据库查询同服务器上的其他数据库(需有权限)
二、爆破:hydra实现对ftp、ssh、rdp、mysql的爆破
win7:使用phpstudy创建ftp账号,启动ftp服务
kali2019.:使用hydra爆破密码(pwd.txt:密码库文件,自己创建的,就几个密码,仅为本实验使用)编辑
kali2025.1a(kali2019.1报错,不支持rdp):使用hydra爆破密码编辑编辑
查看数据库(数据库账号:root/toor),查看webug库的user_test表数据编辑
使用id为2的账号(可假定为自己注册的某网站的账密)登录靶场(登录后页面url有bug,需手工去掉红框部分)编辑编辑
修改密码:尝试旧密码随便填写,新密码为123456,发现可修改成功;说明此处存在逻辑漏洞(修改密码未验证当前密码)编辑编辑
将url中的id值改为1,修改密码,成功,说明此处存在另一个逻辑漏洞(可越权,仅通过id确定账户,而应该根据登录态确定账户)编辑编辑
确定是客户端验证码:点击验证码(刷新验证码),发现无服务器端请求编辑
输入错误验证码:提示验证码错误,说明验证码功能是有效的(不是摆设)编辑
确定是服务端验证码:点击验证码(刷新验证码),发现有服务器端请求编辑
输入账密(随便输),错误验证码:提示验证码错误,说明验证码功能是有效的(不是摆设)编辑
输入账密(随便输),正确验证码:提示账密错误,并且更新了验证码编辑
输入账密(随便输)、正确验证码,使用burp拦截,重放几次:发现没提示验证码错误编辑
验证码绕过(on server)实验中,为什么burp拦截开启的状态下,通过Repeater进行重放不会刷新验证码,关闭拦截后才会刷新验证码?
验证码验证不严谨:当前账密错误时需前端主动请求后端更新验证码,有漏洞,不靠谱
burp拦截开启:阻止了后续请求(如前端请求后端刷新验证码)
burp关闭拦截:放开了后续请求(如前端请求后端刷新验证码)
六、CTFhub:SQL注入靶场,分别完成手工注入和Sqlmap工具注入的过程
涉及的漏洞编号(bluecms的sql注入漏洞:CVE-2023-33734)
一、实现bluecms旁注漏洞,并解释为什么旁站攻击可以拿下主站?跨库的意思是什么?
-
为什么旁站攻击可以拿下主站?
-
因为两个站点部署在同一个服务器上,使用同一个数据库系统
-
通过旁站(相对更容易)拿下其数据库或服务器,主站也基本可拿到
-
-
跨库的意思是什么?可在一个数据库查询同服务器上的其他数据库(需有权限)
-
实现bluecms旁注漏洞
- 说明:虚拟机上通过phpstudy部署了两个站点,bluecms和dedecms
- 目标:通过bluecms的漏洞,拿下bluecms和dedecms的数据库
- 操作步骤
- 在用户登录模块,尝试使用admin登录,提示“系统用户组不能从前台登录”:猜测admin为后管账号

- 通过尝试拿到bluecms的后管页面:/admin
- 在后管页面:使用admin登录,爆破密码,拿到密码,登录到后台
- 尝试发现,广告管理模块存在sql注入漏洞


- 使用sqlmap获取数据库,bluecms和dedecms的库都可拿到


- 在用户登录模块,尝试使用admin登录,提示“系统用户组不能从前台登录”:猜测admin为后管账号
二、暴破:hydra实现对ftp、ssh、rdp、mysql的暴破
-
ftp
-
win7:使用phpstudy创建ftp账号,启动ftp服务
-
kali2019.:使用hydra爆破密码(pwd.txt:密码库文件,自己创建的,就几个密码,仅为本实验使用)

-
-
ssh
-
win7
- 安装openssh,将其安装目录添加到系统变量(PATH)
- cmd输入ssh正常运行代表安装成功;默认账密为系统账密
-
kali2019.:使用hydra爆破密码

-
-
rdp
-
win7:开启远程桌面
- 控制面板-系统和安全-系统-允许远程访问
- 远程-选中:仅允许运行使用网络级别身份验证的远程桌面的计算机连接
-
kali2025.1a(kali2019.1报错,不支持rdp):使用hydra爆破密码


-
-
mysql
-
win7
- 使用phpstudy安装mysql数据库
- 安装数据库客户端(SQL_Front),执行sql使用:grant all privileges on *.* to root@'%' identified by 'root';
-
kali2025.1a.:使用hydra爆破密码

-
三、水平越权&垂直越权漏洞实验
-
说明
-
靶场:pikachu
-
水平越权概念:相同权限下不同的用户可以互相访问
-
垂直越权概念:使用权限低的用户可以访问到权限较高的用户
-
-
水平越权实验
- 普通账号列表

- 使用lucy账号登陆,点击查看个人信息

- 将url中的lucy改为lili:展示出了lili的信息,说明存在水平越权漏洞

- 普通账号列表
-
垂直越权实验
- 相关账号

- 在两个浏览器分别登录admin和pikachu
- 火狐登录admin(管理账号):可添加用户

- 谷歌登录pikachu(普通账号):不应该有添加用户权限

- 火狐登录admin(管理账号):可添加用户
- 在火狐浏览器获取添加用户的url,
- 在谷歌浏览器中打开:可打开且可操作,说明存在垂直越权漏洞

- 在火狐浏览器中查看:添加成功

- 在谷歌浏览器中打开:可打开且可操作,说明存在垂直越权漏洞
- 相关账号
四、密码修改逻辑漏洞实验
-
靶场
-
部署
docker pull area39/webug docker run -d -p 8080:80 area39/webug -
登录
- 登录页:http://yourIp:8080/control/login.php

- 登录后(账号:admin/admin)

- 登录页:http://yourIp:8080/control/login.php
-
-
实验
-
选择靶场


-
查看数据库(数据库账号:root/toor),查看webug库的user_test表数据

-
使用id为2的账号(可假定为自己注册的某网站的账密)登录靶场(登录后页面url有bug,需手工去掉红框部分)


-
修改密码:尝试旧密码随便填写,新密码为123456,发现可修改成功;说明此处存在逻辑漏洞(修改密码未验证当前密码)


-
将url中的id值改为1,修改密码,成功,说明此处存在另一个逻辑漏洞(可越权,仅通过id确定账户,而应该根据登录态确定账户)


-
五、验证码安全
-
靶场:pikachu-暴力破解-验证码绕过
-
验证码绕过(on client)
-
确定是客户端验证码:点击验证码(刷新验证码),发现无服务器端请求

-
输入错误验证码:提示验证码错误,说明验证码功能是有效的(不是摆设)

-
绕过客户端验证码:两种方式
- 禁用js
- 火狐:F12,再F1,选择禁用js

- 输入账号、密码,不输验证码,可正常提交到服务器端,且提示信息跟验证码无关

- 火狐:F12,再F1,选择禁用js
- 删除验证代码
- 火狐:F12,F1,取消选中禁用js
- 删除前端验证码验证代码

- 输入账号、密码,不输验证码,可正常提交到服务器端,且提示信息跟验证码无关

- 禁用js
-
-
验证码绕过(on server)
-
确定是服务端验证码:点击验证码(刷新验证码),发现有服务器端请求

-
输入账密(随便输),错误验证码:提示验证码错误,说明验证码功能是有效的(不是摆设)

-
输入账密(随便输),正确验证码:提示账密错误,并且更新了验证码

-
输入账密(随便输)、正确验证码,使用burp拦截,重放几次:发现没提示验证码错误

-
验证码绕过
- 有上面的实验可知,账密错误的情况下,验证码依赖于前端主动请求后端更新
- 所以,使用burp单独请求提交接口,可重复使用验证码(相当于没有验证码)
-
-
验证码绕过(on server)实验中,为什么burp拦截开启的状态下,通过Repeater进行重放不会刷新验证码,关闭拦截后才会刷新验证码?
-
验证码验证不严谨:当前账密错误时需前端主动请求后端更新验证码,有漏洞,不靠谱
-
burp拦截开启:阻止了后续请求(如前端请求后端刷新验证码)
-
burp关闭拦截:放开了后续请求(如前端请求后端刷新验证码)
-
六、CTFhub:SQL注入靶场,分别完成手工注入和Sqlmap工具注入的过程
-
手工注入
-
靶场:sql字符型注入

-
确定当前sql的字段数:2


-
爆库名:sqli

-
爆表名:news,flag

-
爆flag表的字段:flag

-
爆flag表的数据

-
验证flag:ok

-
-
sqlmap工具注入
-
靶场:sql报错注入

-
命令
- 基本命令:python sqlmap.py -u http://challenge-dd2b11cd95b85c2a.sandbox.ctfhub.com:10800/?id=1 --batch
- 具体命令:加后缀,如爆库为--db
-
爆库名:sqli


-
爆sqli库的所有表名:flag,news


-
爆flag表的字段名:flag(仅一个字段)

-
爆flag表的数据


-
验证flag:ok

-

被折叠的 条评论
为什么被折叠?



