WEBSafe_Proxy刚开始比赛看到题目名字里面有Proxy 就先来做这个了(在最近的比赛中见到的proxy题比较多)
题目进入之后给了源码
源码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp = Flask(__name__)@app.route('/', methods=["GET"])def source(): with open(_ ...
Go小记 Gorm模型
官方中文文档
0、安装12go get -u gorm.io/gormgo get -u gorm.io/driver/sqlite
1.连接到数据库GORM 官方支持的数据库类型有:MySQL, PostgreSQL, SQLite, SQL Server 和 TiDB
连接到mysql数据库12345dsn := "root:root@tcp(127.0.0.1:3306)/gormtest?charset=utf8mb4&parseTime=True&loc=Local"db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})if err != nil { panic("failed to connect database")}
2. GORM模型gorm.ModelGORM 提供了一个预定义的结构体gorm.Model。其中包含常用的字段
123456type Model struct { ID ...
Go小记 使用Go实现SSH客户端
一、前言SSH(Secure Shell)是一种用于在不安全网络上安全访问远程计算机的网络协议。它通过加密的方式提供远程登录会话和其他网络服务,保证通信的安全性和数据的完整性。
本文使用golang.org/x/crypto/ssh包来实现SSH客户端
可以通过go get -u golang.org/x/crypto/ssh 来引包。其中参数-u指定从远程仓库下载最新版本
二、开发(1) 创建ssh客户端配置使用ssh.ClientConfig来创建一个结构体. 指定用户名User 和认证方法 Auth。忽略主机密钥验证,允许连接到任意服务器。
1234567config := &ssh.ClientConfig{ User: "Yliken", //用户名 Auth: []ssh.AuthMethod{ ssh.Password("Yliken"), //密码、 }, HostKeyCallback ...
SOCKS5协议
SOCKS5协议连接过程SOCKS5服务器默认监听的端口是1080端口
连接到服务器:SOCKS5客户端会通过TCP三次握手与SOCKS5服务器建立连接
协商过程:首先SOCKS5客户端会发送一个请求到服务器。告诉服务器自己支持什么方法。并带有一个方法列表(例如:A,B,C)。然后SOCKS5服务端会返回一个请求,告诉客户端要使用的方法(例如:B) 然后客户端就会用过服务器选定的方法来验证。验证通过之后就会开始请求代理访问了
请求访问:客户端首先会向SOCKS5服务器发送一个请求。 告诉SOCKS5服务器自己想要发送的请求(例如: 想要通过TCP连接baidu.com的 443端口)。然后SOCKS5服务器会向baidu.com的443端口发送一个请求连接。将SOCKS5请求的内容原封不动的发送给目标。 然后再将目标的返回包原封不动的发送给SOCKS客户端
断开连接: 当客户端不再需要通过SOCKS5代理访问目标服务器时,会向SOCKS5服务器发送一个断开连接的请求。此请求通常是一个简单的命令,告知服务器关闭当前的连接会话。SOCKS5服务器收到断开请求后,会终止与目标服务器之间的连 ...
ImaginaryCTF 2024
Webjournal题目给出了index.php的源码
123456789101112131415161718192021222324<?phpecho "<p>Welcome to my journal app!</p>";echo "<p><a href=/?file=file1.txt>file1.txt</a></p>";echo "<p><a href=/?file=file2.txt>file2.txt</a></p>";echo "<p><a href=/?file=file3.txt>file3.txt</a></p>";echo "<p><a href=/?file=file4.txt>file4.txt</a></p>";echo "< ...
流量分析
2024强网杯流量分析1tom::.:c1dec53240124487:ca32f9b5b48c04ccfa96f35213d63d75010100000000000040d0731fb92adb01221434d6e24970170000000002001e004400450053004b0054004f0050002d004a0030004500450039004d00520001001e004400450053004b0054004f0050002d004a0030004500450039004d00520004001e004400450053004b0054004f0050002d004a0030004500450039004d00520003001e004400450053004b0054004f0050002d004a0030004500450039004d0052000700080040d0731fb92adb0106000400020000000800300030000000000000000100000000200000bd69d88e01f6425e6c1d7f79 ...
ImaginaryCTF 2024
web1.readmeflag.txt直接获取flag
2.readme2
Golang net/http包客户端的使用
Go发起HTTP请求基本方法请求1. GET请求使用http.Get快速发起一个GET请求
123456789func get() { resp, err := http.Get("http://httpbin.org/get") if err != nil { panic(err) } defer func() { _ = resp.Body.Close() }() content, err := io.ReadAll(resp.Body) fmt.Println(string(content))}
content返回的是一个字节数组
2.POST请求使用http.Post可以快速发起一个POST请求
123456789func post() { resp, err := http.Post("http://httpbin.org/post", "", nil) if err != nil { panic(err) } defer ...
Hacker_Kid-v1.0.1
靶机下载链接:Hacker kid: 1.0.1
一、信息收集1、主机发现使用arp-scan扫描内网主机
2.端口扫描使用nmap -T4 -sV -p 0-65535 192.168.22.137进行端口扫描
二、打靶靶机在 80 9999端口开放了web服务。。在53端口开放了DNS服务
访问web页面
9999端口开放一个登录页面
80端口这边前端源码中说让用GET传参传一个page_no参数
传入page_no = 1页面多了一个红字
传入page_no = 21时给了一个域名
用dig工具查询DNS信息 并指定DNS服务器为192.168.22.137得到了一个新的域名
修改一下本地host文件
进入这个地址,是一个注册账号的页面。如果Email不正确会进行回显
数据包是以XXE文档进行传输的,试一下XXE注入
可以进行文件读取
有一个saket用户,用PHP伪协议去读取.bashrc文件
为什么要读取.zshrc文件呢?
1.bashrc 文件是一个用于配置 Bash shell 环境的脚本文件,通常位于用户的主目录中。它在用户登录时或者每次打开一个 ...
DownUnderCTF赛题复现
题目连接
WEBco2挺简单的原型链污染
route.py文件中设置flag的值
在/get_flag路由汇总如果flag == "true"则返回flag
在/save_feedback路由汇总调用了merge函数
123456789101112def merge(src, dst): for k, v in src.items(): if hasattr(dst, '__getitem__'): if dst.get(k) and type(v) == dict: merge(v, dst.get(k)) else: dst[k] = v elif hasattr(dst, k) and type(v) == dict: merge(v, getattr(dst, k)) else: setattr(dst, k, v)
可以通过sava_f ...