实战攻防 | 艰难打点之bypass绕过文件上传

前言

某次打点过程中,艰难的绕过某次上传
目标存在注册功能,注册账号后发现普通用户,后台存在文件上传功能.
网站架构为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.测试了白进程.
最后只有大马才可以.
千百度
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容