• 脏数据绕过waf,Yakit爆破base64编码密码,ssh无密码登录受害主机


    waf、Yakit、ssh 技巧

    waf 脏数据绕过

    pikachu靶场的文件上传功能为例

    上传一个木马图片

    image-20231018173521575

    显示已拦截。

    找到form-data;字段加一个分号,中间写一些脏数据,前提是不能打乱数据包的原有数据结构。

    image-20231018173821563

    Yakit 工具

    对明文密码通过base64编码的格式进行爆破

    账号明文密码在互联网上进行传输,属于低危漏洞,抓到包以后能对其进行爆破。

    客户对其做的防护一般有两种:1.编码;2.加密。

    现在说一下客户对其编码的问题,客户在前端做了一个base64加密,在后端进行了base64解密。

    编码后抓到包以后进行爆力破解时会遇到一个问题,抓到的密码是base64编码之后的密码,不能对其进行明文密码的爆破。需要把自己的密码字典都编码成base64才能爆破出来。 把自己的字典全编码成base64很明显不太现实,字典小一点还好。这时需要在爆破的时候外面再加一层base64编码。

    举个例子:写一个php代码,代码内容如下:

    
    
    echo base64_decode($_GET['passwd']);
    
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    把它放到web服务器上访问:

    在这里插入图片描述

    后端会认为admin 是base64编码格式,会对其进行base64解码,就成了i佗 ,如果把admin换成base64编码之后的格式:

    admin ==>base64 ==> YWRtaW4

    再次访问:

    image-20231018192917023

    后端进行base64解码后,输出admin。

    可以使用Yakit工具对其base64编码后的密码进行爆破

    写一个 php 测试代码,内容如下:

    
    
    $a= base64_decode($_GET['passwd']);
    
    if($a=="admin"){
    	echo "welcome";
    }else{
    	echo "error";
    }
    
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    首先配置浏览器代理:

    image-20231018194156794

    设置Yakit交互式劫持:

    image-20231018194459506

    image-20231018194559801

    然后访问192.168.160.38/eval.php?passwd=admin

    image-20231018194932913

    显示error,因为admin在后端进行了base64解码,所有输出错误。

    查看抓包:

    image-20231018195555304

    选中admin,右击 --> 插入标签/字典 --> 插入模糊测试字典查询

    image-20231018195932210

    选择user_top10默认字典:

    image-20231018200051868

    点击发送请求:

    image-20231018200319730

    我们现在还是明文爆破,没有对其进行base64编码,所有不用看也知道没有成功。

    加上base64编码:

    {{base64(需要加密的数据)}}

    发送请求:

    image-20231018201457122

    找出最特殊的包,爆破成功。



    SSH

    通过webshell拿下一台服务器的权限以后,可以在服务器上上传一个cs木马或者通过ssh连接到服务器。

    cs木马比一句话木马要强大的多,并且是图形化界面,很友好。

    但是ssh连接必须要知道明文密码才能登录。

    现在我们要实现ssh免密码登录,ssh采用的是非对称加密的,一旦把自己的公钥写进受害者服务器的ssh目录里时,就可以做到不需要密码进行ssh连接。

    实操

    使用kali主机作为受害者服务器

    kali :192.168.160.32

    攻击机:192.168.160.38

    前提:

    • 受害者服务器开启ssh服务
    systemctl start ssh.service #开启ssh服务
    
    • 1

    注:在没登陆ssh服务之前,ssh目录是没有的:

    image-20231018205142087

    触发一下:

    ssh kali@127.0.0.1
    
    • 1

    image-20231018205407638

    image-20231018205328745

    进入ssh目录:

    image-20231018205612326

    这个目录里存放着已经通过认证的主机公钥。我们只要把ssh客户端的公钥写进来就可以了。

    这里我们使用Git-2.41.0-64-bit 工具。

    在用户目录 -->右击–>Git Bash Here

    image-20231018210523082

    输入:

    ssh-keygen -t rsa
    
    • 1

    image-20231018210747485

    ssh目录就会出现:

    image-20231018210822360

    进入ssh目录:

    image-20231018210927650

    复制id_rsa.pub 文件内容(公钥):

    image-20231018211332228

    把文件内容复制到受害者服务器的ssh目录下,这里我文件命名为authorized_keys

    image-20231018211708915

    然后攻击者使用Git命令行ssh无密码连接受害者服务器:

    image-20231018212237838

    连接成功,over。

  • 相关阅读:
    实现Spring Boot集成MyBatis
    C++继承关系和复合关系
    校验 GPT-4 真实性的三个经典问题:快速区分 GPT-3.5 与 GPT-4,并提供免费测试网站
    网站变灰,6行代码,通通变灰
    git中如何在父仓库提交子仓库的修改
    Element UI 添加自定义图标
    1757. 可回收且低脂的产品
    09 数据库查询(3) | OushuDB 数据库使用入门
    CPP-Templates-2nd--第十九章 萃取的实现 19.4-19.5
    【C++】迭代器
  • 原文地址:https://blog.csdn.net/qq_45953122/article/details/133915238