实战之另辟蹊径绕过waf并getshell拿下站群

admin 2021年8月31日13:04:05评论44 views字数 2902阅读9分40秒阅读模式

前言


渗透的一个站上传没有绕过,首先通过弱口令进了后台,经过一番寻找发现了如下配置

实战之另辟蹊径绕过waf并getshell拿下站群


看到这个,已经胸有成竹,接下来就是常规的加上php后缀,并且上传一波,于是我来了一发如下:

实战之另辟蹊径绕过waf并getshell拿下站群


waiting了很久有waf检测 我直接 cancle了,接下来就是有趣的绕waf,我绕了3个小时,各种奇葩姿势都弄出来了,比如下图

实战之另辟蹊径绕过waf并getshell拿下站群


都改成这个鬼样子了 还是过不鸟 尝试过各种一般用的过waf的方法:

1.jpg.php  1.php.jpg 1.php%00.jpg
filename=1.jpg
filename=1.php
Content-Disposition: form1-data; name="Filedata"; filename="3.php"
Content-Disposition: form-data; name="filename"; filename="3.jpg" .php
filename="垃圾数据 30w".jpg.php


因为系统是windwos的 利用windows特性 文件如果以::$DATA结果那么这部分自动会被去掉 所以配置允许后缀为php::$DATA,拿去发包,waf直接检测到,我改为 ::data 就可以发包但是返回保存出错,同理我利用? . 等windows特性尝试绕过(如果这些特殊字符比如? . ! 等在文件名结尾的时候有一定几率被直接去掉),把这些特殊字符作为文件结尾进行尝试结果全部以失败告终,失败原因都是和下面这个图片一样
尝试用长文件名截断同样失败


实战之另辟蹊径绕过waf并getshell拿下站群


等等等等 还尝试了各种后缀

pht,php,phtml,php3,php4,php5,php6,php7,aspx,asmx,asp,jsp,jspx


我的心情如下:

实战之另辟蹊径绕过waf并getshell拿下站群


全都告以失败...


正文


没办法了,实在是绕不过,于是尝试使用这种方法,利用内网ip或者是ip白名单来绕过waf,如果两个服务器在同一个内网,那么他们之间互相访问可能并不会经过waf在的服务器,又或者是ip白名单的原因导致这样有可能绕过waf,因为之前拿过和这个站同属一个体系的另外一个站,所以我想试试这种方法,我在已经拿到shell的那个站上(可以出网),ping 现在这个站 解析的ip 并不是内网ip 心中有一丝灰暗掠过....管他的,只有试试了,说明一下已经被getshell的站我称为A站,A站为linux环境,现在这个还没拿下的称为B站.


首先我要在A站上弄一个socks代理 然后通过这个代理我去访问B站,然后上传,因为A站是在内网,所以我先尝试用web代理,用的是这个Neo-reGeorg,流量加密版 reGeorg,但是用之前我就感觉成功率不高,因为php版本的这个代理不是很好用,之前没有使用成功过,不过asp,aspx的倒是很好用,我将本地端口8888与A站上的tunnel.php 建立连接 然后我用burp走 8888 端口,结果失败,连接有问题,这是预料之中的,那就换一种代理方法,既然可以出网,可以用ew 让他 与我的公网vps 建立连接,然后我通过我的vps对应的端口走代理,这里就不详述了,因为当时觉得这种方法比较麻烦,既然我已经有一个shell并且可以执行命令了,而且有curl,那我为什么不直接通过curl 来发post包上传呢 于是搜索了一下curl的使用方法,如果要用curl传文件 必须要用 -F 选项 使用了-F参数,curl会以multipart/form-data的方式发送POST请求。-F以key=value的形式指定要上传的参数,如果是文件,则需要使用key=@file的形式

然后现在我的vps上测试了一下直接给B站发上传包成功了,ok,咱们直接上A站发包

sessid=1590980086 和 moudl=content 都是上传包需要的


实战之另辟蹊径绕过waf并getshell拿下站群


可以看见我们成功绕过了waf,因为之前上传如果是php后缀都是直接封掉不会有返回包,现在没有被封,说明已经绕过了waf,这两台机器应该在同一内网,但是为什么会出现上传类型不允许呢,而且我已经在配置中设置了允许php后缀,如果看过我前面审计发卡平台文章的兄弟应该已经明白了,虽然设置了允许php后缀,但是我猜测后台应该是大概长个样子:

$store=['jpg','png','php']  #类似这样 如果我设置了允许php后缀 那么 php就会被加入这个数组  $ext视为获取的文件后缀名
if(in_array($ext,$store)&&$ext!="php"&&$ext!="php3"&&$ext!="pht"...){ 类似这样
上传操作
} else{
echo "上传类型不允许";
}


这样子的话就很好绕过了,在windwos条件下 文件名称最后如果有空格那么是会被去掉的,利用这个特性就可以轻松绕过,配置一下允许上传的后缀

实战之另辟蹊径绕过waf并getshell拿下站群

然后上传

实战之另辟蹊径绕过waf并getshell拿下站群


到这里我以为基本已经拿下 访问之 没想到404 难道没传上去? 于是我把php后缀换成了p 方法完全一样 在配置中增加 p空格 然后上传 访问发现是成功去掉最后的空格并且上传成功了的 那应该就是设置了配置文件 设置某个目录下 访问php文件就返回 404 那这时候需要跨目录去别的目录,我发现上传包中的 module参数的值 content是被放到了 上传后的文件路径中 我加入 ../ 发包 一发入魂 成功跨目录

实战之另辟蹊径绕过waf并getshell拿下站群

蚁剑访问之 看到了 绿色的成功连接 心中一丝舒爽........

站群的截图就不放了 执行命令一发whoami 哦哟

实战之另辟蹊径绕过waf并getshell拿下站群


来源:先知社区



实战之另辟蹊径绕过waf并getshell拿下站群快戳阅读原文!获取更多视频教程

本文始发于微信公众号(乌雲安全):实战之另辟蹊径绕过waf并getshell拿下站群

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年8月31日13:04:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战之另辟蹊径绕过waf并getshell拿下站群http://cn-sec.com/archives/488651.html

发表评论

匿名网友 填写信息