freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

实战攻防 | 艰难打点之bypass绕过文件上传
2024-07-17 09:19:21

前言

某次打点过程中,艰难的绕过某次上传
目标存在注册功能,注册账号后发现普通用户,后台存在文件上传功能.
网站架构为apache+php,操作系统为window server

尝试上传

f12全局搜索png看了下没有前端效验的js的代码,是服务端效验。

1721011047482.png

首先上传正常jpg图片观察一下

1721011074648.png

右键新链接打开

1721011105103.png

有暴露上传路径。然后看一下正常phpinfo.php上传是个什么情况

1721011142070.png

0x01判断黑白名单及校验字段
将png格式文件后缀更改为phpabcde

1721011169653.png
1721011221914.png

还是可以正常显示,那应该是黑名单,并且后缀错误也能正常显示,那么可能文件头也进行了校验。 接下来试一下正常的php文件改后缀看一下是否能上传成功:

1721011257993.png
1721011279545.png

证明校验了文件头。 继续测一下在文件头是png情况下测试php文件是否能上传:

1721011400637.png

显示也是只能上传图片文件,证明也后缀名也进行了校验

1721011447498.png

通过上面php和png文件的文件头和文件后缀两两组合发包测试
可以判断出是文件名后缀黑名单+文件 头的校验方式。
那么绕过思路如下: 
利用制作图片马的方式在图片中插入php代码绕过文件头效验,同时在寻找在黑名单之外的后缀名看是
否能解析成php,如果实在没有那就只能再挖个文件包含漏洞包含图片马了。

0x02黑名单绕过

制作图片马:
copy small.jpg /b +phpinfo.php /a phpinfo.jpg 
这里提醒一下,这里的jpg越小越好,
不然有时候在解析php代码时,图片有一些脏字符会导致php代码
解析失败。 这里我随便截了一个很小的图进行图片马制作,大小只有700字节

1721011532865.png

在本地测试,后缀改为php可以解析:

1721011587294.png

先把常用的黑名单绕过方式拉出来:
1.大小写 ----->.Php等,上传失败
2.前后加空格,后面加点-----> 空格.php、.php空格 、.php.,上传失败
3.代替扩展名-----> .php, .php2, .php3, .php4, .php5, .php6, .php7, .phps, .phps, .pht, .phtm, .phtml, .shtml, .htaccess, .phar。
测到phps的时候有变化,可以上传,但解析如下:

1721011632493.png
1721011659536.png

没有解析成功。

成功

常规的后缀名都尝试了,没有成功解析.抓耳挠腮的时候,突然想起来目标是windows.可以尝试使用windows特性来尝试绕过.
给的靶标已经被打过很多次,常见的漏洞已经没有了,

1721011769235.png
1721011786277.png

成功解析,不过无法执行命令,又进行新的尝试.

0x03绕过defender进程链查杀webshell

目标为window server2016,大概率是有defender的,defender会对webshell的进程链进行检查, webshell在windows下一般是在w3wp.exe下起的,属于灰进程,在灰进程下webshell执行cmd命令可 能会被杀,例如蚁剑的混淆过的一句话木马,静态就算过了但是执行命令时会被查杀:

1721011860207.png
1721011932866.png

准备一个冰蝎的免杀马子,在本地VMware的window server 2016环境下测试下测试通过之后静态动态 测试免杀测试后(这里有坑,后续再说),制作成图片马上传至目标:

1721011972640.png

连接上之后发现文件上传下载删除可用,但是命令执行无回显。

1721012025112.png

猜测1.权限不够,默认cmd没有拉起来

尝试自己上传cmd.exe用自己的exe执行,依然不行

1721012080202.png

猜测2.函数被禁用

看了下phpinfo的disable_fuction,没有被禁用。

1721012147676.png

猜测3.webshell工具问题

换了个哥斯拉的免杀马,一样只能文件上传下载,不可以命令执行。

1721012212650.png

猜测4.更换系统函数

利用哥斯拉的php代码执行模块,把php常用的命令执行函数都试一遍,还是没有回显。

1721012256110.png

进程链查杀绕过

由于之前本地测试环境冰蝎和哥斯拉的马执行命令都没问题,所以没往这方面想,但是上面的测试特征
都说明很可能是webshell工具进程链被杀了。
尝试使用大马在web层面执行命令:

1721012354097.png

执行tasklist成功。 这里也有坑,要通过webshell管理工具直接上传大马,而不是从上传点制作图片马上传大马,后者执行命令会失败,原因未知,可能跟图片马解析有关系。
查询杀软

1721012441718.png

到这里就已经算getshell成功了,之后上传cs免杀马再通过大马执行上线CS即可,整个过程还是比较坎坷的
1.测试了不同的免杀马.
2.测试不同的改特征的webshell工具.
3.测试了白进程.
最后只有大马才可以.
# 渗透测试 # 网络安全 # 攻防演练 # 绕过 # 红队攻防
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录