C11期作业11(05.10)

目录

一、实现bluecms旁注漏洞,并解释为什么旁站攻击可以拿下主站?跨库的意思是什么?

为什么旁站攻击可以拿下主站?

跨库的意思是什么?可在一个数据库查询同服务器上的其他数据库(需有权限)

实现bluecms旁注漏洞

二、爆破:hydra实现对ftp、ssh、rdp、mysql的爆破

ftp

win7:使用phpstudy创建ftp账号,启动ftp服务

kali2019.:使用hydra爆破密码(pwd.txt:密码库文件,自己创建的,就几个密码,仅为本实验使用)​编辑

ssh

win7

kali2019.:使用hydra爆破密码​编辑

rdp

win7:开启远程桌面

kali2025.1a(kali2019.1报错,不支持rdp):使用hydra爆破密码​编辑​编辑

mysql

win7

kali2025.1a.:使用hydra爆破密码​编辑

三、水平越权&垂直越权漏洞实验

说明

水平越权实验

垂直越权实验

四、密码修改逻辑漏洞实验

靶场

部署

登录

实验

选择靶场​编辑​编辑

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

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

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

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

五、验证码安全

靶场:pikachu-暴破-验证码绕过

验证码绕过(on client)

确定是客户端验证码:点击验证码(刷新验证码),发现无服务器端请求​编辑

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

绕过客户端验证码:两种方式

验证码绕过(on server)

确定是服务端验证码:点击验证码(刷新验证码),发现有服务器端请求​编辑

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

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

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

验证码绕过

验证码绕过(on server)实验中,为什么burp拦截开启的状态下,通过Repeater进行重放不会刷新验证码,关闭拦截后才会刷新验证码?

验证码验证不严谨:当前账密错误时需前端主动请求后端更新验证码,有漏洞,不靠谱

burp拦截开启:阻止了后续请求(如前端请求后端刷新验证码)

burp关闭拦截:放开了后续请求(如前端请求后端刷新验证码)

六、CTFhub:SQL注入靶场,分别完成手工注入和Sqlmap工具注入的过程

手工注入

靶场:sql字符型注入​编辑

确定当前sql的字段数:2​编辑​编辑

爆库名:sqli​编辑

爆表名:news,flag​编辑

爆flag表的字段:flag​编辑

爆flag表的数据​编辑

验证flag:ok​编辑

sqlmap工具注入

靶场:sql报错注入​编辑

命令

爆库名:sqli​编辑​编辑

爆sqli库的所有表名:flag,news​编辑​编辑

爆flag表的字段名:flag(仅一个字段)​编辑

爆flag表的数据​编辑​编辑

验证flag:ok​编辑


涉及的漏洞编号(bluecms的sql注入漏洞:CVE-2023-33734)

一、实现bluecms旁注漏洞,并解释为什么旁站攻击可以拿下主站?跨库的意思是什么?

  1. 为什么旁站攻击可以拿下主站?
    1. 因为两个站点部署在同一个服务器上,使用同一个数据库系统

    2. 通过旁站(相对更容易)拿下其数据库或服务器,主站也基本可拿到

  2. 跨库的意思是什么?可在一个数据库查询同服务器上的其他数据库(需有权限)
  3. 实现bluecms旁注漏洞
    1. 说明:虚拟机上通过phpstudy部署了两个站点,bluecms和dedecms
    2. 目标:通过bluecms的漏洞,拿下bluecms和dedecms的数据库
    3. 操作步骤
      1. 在用户登录模块,尝试使用admin登录,提示“系统用户组不能从前台登录”:猜测admin为后管账号
      2. 通过尝试拿到bluecms的后管页面:/admin
      3. 在后管页面:使用admin登录,爆破密码,拿到密码,登录到后台
      4. 尝试发现,广告管理模块存在sql注入漏洞
      5. 使用sqlmap获取数据库,bluecms和dedecms的库都可拿到

二、暴破:hydra实现对ftp、ssh、rdp、mysql的暴破

  1. ftp
    1. win7:使用phpstudy创建ftp账号,启动ftp服务
    2. kali2019.:使用hydra爆破密码(pwd.txt:密码库文件,自己创建的,就几个密码,仅为本实验使用)
  2. ssh
    1. win7
      1. 安装openssh,将其安装目录添加到系统变量(PATH)
      2. cmd输入ssh正常运行代表安装成功;默认账密为系统账密
    2. kali2019.:使用hydra爆破密码
  3. rdp
    1. win7:开启远程桌面
      1. 控制面板-系统和安全-系统-允许远程访问
      2. 远程-选中:仅允许运行使用网络级别身份验证的远程桌面的计算机连接
    2. kali2025.1a(kali2019.1报错,不支持rdp):使用hydra爆破密码
  4. mysql
    1. win7
      1. 使用phpstudy安装mysql数据库
      2. 安装数据库客户端(SQL_Front),执行sql使用:grant all privileges on *.* to root@'%' identified by 'root';
    2. kali2025.1a.:使用hydra爆破密码

三、水平越权&垂直越权漏洞实验

  1. 说明
    1. 靶场:pikachu

    2. 水平越权概念:相同权限下不同的用户可以互相访问

    3. 垂直越权概念:使用权限低的用户可以访问到权限较高的用户

  2. 水平越权实验
    1. 普通账号列表
    2. 使用lucy账号登陆,点击查看个人信息
    3. 将url中的lucy改为lili:展示出了lili的信息,说明存在水平越权漏洞
  3. 垂直越权实验
    1. 相关账号
    2. 在两个浏览器分别登录admin和pikachu
      1. 火狐登录admin(管理账号):可添加用户
      2. 谷歌登录pikachu(普通账号):不应该有添加用户权限
    3. 在火狐浏览器获取添加用户的url,
      1. 在谷歌浏览器中打开:可打开且可操作,说明存在垂直越权漏洞
      2. 在火狐浏览器中查看:添加成功

四、密码修改逻辑漏洞实验

  1. 靶场
    1. 部署
      docker pull area39/webug
      docker run -d -p 8080:80 area39/webug
    2. 登录
      1. 登录页:http://yourIp:8080/control/login.php
      2. 登录后(账号:admin/admin)
  2. 实验
    1. 选择靶场
    2. 查看数据库(数据库账号:root/toor),查看webug库的user_test表数据
    3. 使用id为2的账号(可假定为自己注册的某网站的账密)登录靶场(登录后页面url有bug,需手工去掉红框部分)
    4. 修改密码:尝试旧密码随便填写,新密码为123456,发现可修改成功;说明此处存在逻辑漏洞(修改密码未验证当前密码)
    5. 将url中的id值改为1,修改密码,成功,说明此处存在另一个逻辑漏洞(可越权,仅通过id确定账户,而应该根据登录态确定账户)

五、验证码安全

  1. 靶场:pikachu-暴力破解-验证码绕过
  2. 验证码绕过(on client)
    1. 确定是客户端验证码:点击验证码(刷新验证码),发现无服务器端请求
    2. 输入错误验证码:提示验证码错误,说明验证码功能是有效的(不是摆设)
    3. 绕过客户端验证码:两种方式
      1. 禁用js
        1. 火狐:F12,再F1,选择禁用js
        2. 输入账号、密码,不输验证码,可正常提交到服务器端,且提示信息跟验证码无关
      2. 删除验证代码
        1. 火狐:F12,F1,取消选中禁用js
        2. 删除前端验证码验证代码
        3. 输入账号、密码,不输验证码,可正常提交到服务器端,且提示信息跟验证码无关
  3. 验证码绕过(on server)
    1. 确定是服务端验证码:点击验证码(刷新验证码),发现有服务器端请求
    2. 输入账密(随便输),错误验证码:提示验证码错误,说明验证码功能是有效的(不是摆设)
    3. 输入账密(随便输),正确验证码:提示账密错误,并且更新了验证码
    4. 输入账密(随便输)、正确验证码,使用burp拦截,重放几次:发现没提示验证码错误
    5. 验证码绕过
      1. 有上面的实验可知,账密错误的情况下,验证码依赖于前端主动请求后端更新
      2. 所以,使用burp单独请求提交接口,可重复使用验证码(相当于没有验证码)
  4. 验证码绕过(on server)实验中,为什么burp拦截开启的状态下,通过Repeater进行重放不会刷新验证码,关闭拦截后才会刷新验证码?
    1. 验证码验证不严谨:当前账密错误时需前端主动请求后端更新验证码,有漏洞,不靠谱
    2. burp拦截开启:阻止了后续请求(如前端请求后端刷新验证码)
    3. burp关闭拦截:放开了后续请求(如前端请求后端刷新验证码)

六、CTFhub:SQL注入靶场,分别完成手工注入和Sqlmap工具注入的过程

  1. 手工注入
    1. 靶场:sql字符型注入
    2. 确定当前sql的字段数:2
    3. 爆库名:sqli
    4. 爆表名:news,flag
    5. 爆flag表的字段:flag
    6. 爆flag表的数据
    7. 验证flag:ok
  2. sqlmap工具注入
    1. 靶场:sql报错注入
    2. 命令
      1. 基本命令:python sqlmap.py -u http://challenge-dd2b11cd95b85c2a.sandbox.ctfhub.com:10800/?id=1 --batch
      2. 具体命令:加后缀,如爆库为--db
    3. 爆库名:sqli
    4. 爆sqli库的所有表名:flag,news
    5. 爆flag表的字段名:flag(仅一个字段)
    6. 爆flag表的数据
    7. 验证flag:ok
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值