WatchBird: 专为AWD而生的新一代纯PHP防火墙

枫少@KillBoy
枫少@KillBoy
管理员
220
文章
0
粉丝
资源分享4413,8012字数 1139阅读3分47秒阅读模式
AI智能摘要
你是否在AWD比赛中苦于找不到一款轻量、可控又功能强大的PHP防火墙?WatchBird横空出世——专为AWD场景打造的纯PHP防御利器,无需依赖,单文件部署,集SQL注入、文件上传、命令执行、反序列化等全方位防护于一身。更惊艳的是,它支持流量内网转发、实时日志监控、虚假flag返回与批量流量重放,甚至可通过LD_PRELOAD机制加固命令执行防护。开源、可配置、带可视化控制台,攻防对抗中实现自动检测与响应。尽管存在open_basedir等绕过风险,但其设计理念与实战价值堪称AWD防守新范式。立即了解它如何重塑你的防御策略。
— AI 生成的文章内容摘要

Watchbird是一个专门为AWD而生的PHP防火墙,采用纯PHP+JS+CSS编写而成,单文件设计模式,无任何外部依赖,其特点有将原始请求包拼凑出来而实现的内网转发,基于putenv和ld_preload的命令执行保护,一个漂亮的前端以及流量重放功能.

工具安装

广大研究人员可以使用下列命令直接将项目源码克隆至本地

git clone https://github.com/leohearts/awd-watchbird.git

工具部署

1.进入下载好的文件夹目录 

2.编译waf.c生成.so文件,参考命令:gcc waf.c -shared -fPIC -o waf.so 

3.将waf.so,watchbird.php文件存放在/var/www/html或其他目录中 

4.访问任意启用了waf的文件, 参数?watchbird=ui打开watchbird控制台, 创建一个初始密码并进行相关配置 

5.将以下代码放入需要启用waf的php脚本的第一行 <?php include_once “/var/www/html/watchbird.php” ?>6.enjoy it!

功能介绍

易于配置(单文件, 无需加载外部js/css)

可以随时开启/关闭某项防御

基本防御:

数据库注入(sql injection)

文件上传(upload)

文件包含(lfi)

flag关键字

PHP反序列化(unserialize)

命令执行(rce)

分布式拒绝服务攻击(ddos)

请求头,请求参数(GET/POST)关键字

特殊字符

深度防御:

响应检测/反向代理(默认将流量发送至本地服务器自检,可配置代理服务器IP及端口实现反代功能)

响应flag检测并返回虚假flag

基于open_basedir的PHP文件操作保护

基于LD_PRELOAD的指令执行保护

网页控制台:

功能开关及配置

实时日志查看

日志流量重放, 可广播流量至指定网段

RCE/文件上传/深度检测 防御通知(由于chrome无法允许不安全的网站(无SSL证书)显示通知,请使用Firefox并修改about:config中dom.webnotifications.allowinsecure为true)

工具起源

一开始做这个工具是因为即将参加awd的线下赛而又没有好用的waf,网上的waf无法满足自己的需求于是就开始着写自己的waf,一开始的构想很简单,我从网上找到了一份awd的简单waf(所以你可能会在源码的某处发现似曾熟悉的代码),然后实现了GET/POST/请求头关键字检测,文件上传检测的功能(留了个trick,上传php等恶意文件会提示上传成功),后面又加入了防ddos的功能(原理很简陋,就是记录每秒某个IP的访问次数,超过某个次数就直接die)

到后来leohearts看到了我的waf并且开始参与这个waf的编写工作,我们构想通过纯PHP的代码将原始请求包重新拼凑起来,最后将这个请求包发给自身完成自检或发送到其他靶机实现内网转发的功能,这个功能一旦实现,无疑会非常强大,我们经历了很多问题,比如BOM头,分块运输,如何获取原始的multipart/form-data等等,幸好我们最终成功实现了这个功能,也是本waf最亮眼的功能–内网转发.

过了一段时间后,leohearts的一个提议让我们重新回到waf的编写工作:基于putenv和ld_preload的命令执行保护.经由他手这个waf又实现了一个漂亮的前端方便使用人员对waf的控制,我们的灵感不断迸发,又相继实现了基于open_basedir的文件操作保护(防止使用php读取/flag),与命令执行保护构成了内外的双重防护,最后我们实现了流量重放与批量提交flag的功能.

工具预览

WatchBird: 专为AWD而生的新一代纯PHP防火墙-图片1
WatchBird: 专为AWD而生的新一代纯PHP防火墙-图片1WatchBird: 专为AWD而生的新一代纯PHP防火墙-图片1

工具缺点

正如你所见,这个waf虽然对外很强大,但并非没有缺点,它自身仍然存在许多问题,例如open_basedir,ld_preload可以被绕过,灵活多变的PHP可以绕过关键字检测,还有由于自检可能带来的安全问题,而waf本身的安全问题由于在awd中只有ctf和www-data权限的情况下很难对waf的功能与自身安全进行增强,所以我们本着学习与交流的态度开源了本waf

项目地址

Github传送门

https://www.freebuf.com/sectool/234402.html

 
枫少@KillBoy
评论  44  访客  43  作者  1
    • Ace凌云
      Ace凌云 0

      前端看着还行,不知道实际用起来卡不卡。

        • 蹦跶的苹果
          蹦跶的苹果 0

          @ Ace凌云 Firefox还要改配置,真麻烦,Chrome就不能兼容下?

        • Pulsar Whisper
          Pulsar Whisper 0

          内网转发这功能在AWD里应该挺有用的吧?

          • 人海捕手
            人海捕手 1

            基于LD_PRELOAD的保护现在还能用吗?听说有绕过方法。

            • 香蕉皮先生
              香蕉皮先生 0

              有没有人实际测试过防rce的效果?

                • Hushed Reverence
                  Hushed Reverence 0

                  @ 香蕉皮先生 实测一次,配合ld_preload基本挡住了命令执行。

                • 夫诸引浪
                  夫诸引浪 0

                  部署步骤看着简单,就怕实际配起来一堆坑。

                  • Cosmos Weaver
                    Cosmos Weaver 0

                    开源了可以研究下,之前找的waf都不太顺手。

                    • 墨舟
                      墨舟 0

                      流量重放功能是干啥用的?没太看明白。

                      • 佛系养生达人
                        佛系养生达人 0

                        这界面比之前用的那个黑乎乎的强多了。

                        • Quasar Dreamer
                          Quasar Dreamer 0

                          响应检测返回假flag这个有点骚啊hhh

                            • 墨香染
                              墨香染 1

                              @ Quasar Dreamer 这内网转发搞不好变后门吧?细思极恐😨

                            • 行者夜行
                              行者夜行 1

                              防rce那个putenv,现在PHP8还能生效不?

                                • 古瓷纹
                                  古瓷纹 1

                                  @ 行者夜行 我在8.1上跑过,putenv还能拦住RCE。

                                • 铁弓射手
                                  铁弓射手 0

                                  之前搞过类似的东西,open_basedir绕过太容易了,真能防住?

                                  • Orion
                                    Orion's Shadow 0

                                    那个流量重放是不是能批量打其他队?有点意思

                                    • 星梦捕手
                                      星梦捕手 1

                                      部署是简单,但权限配置错了直接GG吧

                                      • 飞鹰少爷
                                        飞鹰少爷 0

                                        前端看着清爽,但功能堆得有点多,怕不稳定

                                        • 治粟内史
                                          治粟内史 0

                                          这玩意儿在真实环境用怕不是分分钟被干穿

                                          • 白虎啸
                                            白虎啸 0

                                            watchbird.php放web目录下,不会被删吗?

                                            • 云崖
                                              云崖 0

                                              单文件部署确实方便,省得折腾依赖

                                              • 奶油小喵
                                                奶油小喵 0

                                                这前端比之前用的好看太多了

                                                • 潜影微光
                                                  潜影微光 1

                                                  open_basedir绕过方法太多了,真能防住?

                                                  • 星光舞者
                                                    星光舞者 0

                                                    流量重放具体怎么操作?没太看懂

                                                    • 蟹横横
                                                      蟹横横 0

                                                      LD_PRELOAD现在还能用吗?听说有漏洞

                                                      • Quiet Tempest
                                                        Quiet Tempest 0

                                                        这个单文件设计有点意思,部署挺方便。

                                                          • 夜空观测员
                                                            夜空观测员 1

                                                            @ Quiet Tempest 单文件是方便,可更新咋办,直接覆盖?

                                                          • 幻星旅团
                                                            幻星旅团 1

                                                            之前配waf把服务器搞崩过,有点阴影

                                                            • 樱花树下
                                                              樱花树下 1

                                                              响应假flag这招够损的哈哈哈

                                                              • 大数据分析师
                                                                大数据分析师 0

                                                                命令执行防护测试过吗?效果咋样

                                                                • 烈焰咆哮
                                                                  烈焰咆哮 0

                                                                  界面挺清爽,不知道性能怎么样

                                                                  • 熊猫饭
                                                                    熊猫饭 0

                                                                    AWD比赛用这个应该还行吧?

                                                                      • 睡睡龙
                                                                        睡睡龙 0

                                                                        @ 熊猫饭 比赛里用它倒是省事,配置简单但别忘了检查权限。👍

                                                                      • 暴躁星
                                                                        暴躁星 1

                                                                        开源精神值得赞一个~

                                                                        • 深夜独舞
                                                                          深夜独舞 0

                                                                          纯PHP写的确实方便部署,不用配环境。

                                                                          • 山水相逢
                                                                            山水相逢 0

                                                                            那个响应检测返回假flag的设计太搞了,对面会不会气炸😂

                                                                            • 日照青绿
                                                                              日照青绿 0

                                                                              内网转发功能在AWD里好像真能用上,之前吃过亏。

                                                                              • 淡若晨风
                                                                                淡若晨风 1

                                                                                防命令执行那个点子挺有意思的。

                                                                                • 寒江月
                                                                                  寒江月 1

                                                                                  看部署步骤里要编译so文件,对新手会不会有点麻烦?

                                                                                  • 青蛾幻影
                                                                                    青蛾幻影 1

                                                                                    这玩意开源了能自己改吗?想加点自定义规则。

                                                                                    • SenchaSerene
                                                                                      SenchaSerene 1

                                                                                      前端界面做得蛮好看的,操作起来方便吗?

                                                                                        • 枫少@KillBoy
                                                                                          枫少@KillBoy

                                                                                          @ SenchaSerene 挺方便的,前端花了不少心思优化体验

                                                                                        • Ray火
                                                                                          Ray火 0

                                                                                          前端界面看着挺清爽,不知道操作起来流不流畅。

                                                                                          • 梦幻花园
                                                                                            梦幻花园 0

                                                                                            直接放web目录里,万一被删了就全凉了。

                                                                                          匿名

                                                                                          发表评论

                                                                                          匿名网友

                                                                                          拖动滑块以完成验证