Skip to content

Instantly share code, notes, and snippets.

View guomaimang's full-sized avatar
🌏
Study

hanjiaming guomaimang

🌏
Study
View GitHub Profile
@guomaimang
guomaimang / wp.md
Created October 27, 2020 01:29 — forked from WayneOvO/wp.md
bilibilictf writeup

题目都是脑洞题,目前网上已经很多题解了,我简单说两句

第一题

F12打开控制台,选Network,看到有请求到/api/ctf/admin的请求,返回结果就是第一题flag,也可以直接审计元素看html源码拿到flag。(知道如何查看HTML源码基本是入门的第一步)

第二题

修改HTTP请求报文User-Agentbilibili Security Browser,访问/api/ctf/2 获得第二个flag。 (通常很多网站服务端都会通过你的请求报文里User-Agent来判断你使用的浏览器,来避免一些爬虫或根据浏览器不同呈现不同的展示效果(这个通常在前端做))

第三题

弱口令的猜解,账号为admin,密码 bilibili (貌似川普的Twitter密码前一阵子就被人用这种方法破掉了,大家注意平时密码一定要起的复杂一点)

第四题

使用截获HTTP报文的工具(eg. burpsuite),可以发现response里cookie set了个role=xxxxxxx, xxxxxxx是user对应的md5值,这里的脑洞在于你要把它改成Administrator对应的md5值。 (cookie一般是网站用来进行判断用户身份的令牌,大家要注意不要分享给别人,就比如比赛的过程中看到很多人分享暴力破解flag的脚本,结果忘了删自己的cookie,导致他的b站账号被盗取了:p)

第五题

@guomaimang
guomaimang / iptv.tvfix.org.m3u8.txt
Created February 5, 2022 03:54 — forked from woodongwong/iptv.tvfix.org.m3u8.txt
iptv.tvfix.org(电视侠)直播源
央视高清
CCTV-4K(色彩准确) : http://iptv.tvfix.org/hls/cctv4k.m3u8
CCTV-1高清 : http://iptv.tvfix.org/hls/cctv1hd.m3u8
CCTV-1香港版高清 : http://iptv.tvfix.org/hls/cctv1hdhk.m3u8
CCTV-2高清 : http://iptv.tvfix.org/hls/cctv2hd.m3u8
CCTV-3高清 : http://iptv.tvfix.org/hls/cctv3hd.m3u8
CCTV-4高清 : http://iptv.tvfix.org/hls/cctv4hd.m3u8
CCTV-5高清 : http://iptv.tvfix.org/hls/cctv5hd.m3u8
CCTV-5+高清 : http://iptv.tvfix.org/hls/cctv5phd.m3u8
CCTV-6高清 : http://iptv.tvfix.org/hls/cctv6hd.m3u8
@guomaimang
guomaimang / 如何理解下面的字段.md
Last active March 29, 2023 12:19
如何理解下面的字段

如何理解下面的字段

// +----+----------+----------+
// |VER | NMETHODS | METHODS  |
// +----+----------+----------+
// | 1  |    1     | 1 to 255 |
// +----+----------+----------+

这个字段表示一个协议头(protocol header)的格式。具体来说,它包含了三个字段:VER、NMETHODS 和 METHODS。

@guomaimang
guomaimang / 在go中的 format print,%w 和 %v d的区别是什么.md
Last active March 29, 2023 12:18
在go中的 format print,%w 和 %v d的区别是什么

在 Go 中,fmt 包中的格式化输出有很多的选项,其中包括 %w%v 以及 %d。它们的区别如下:

  • %w:用于格式化错误类型(error),会将其转换为字符串并写入输出流。如果错误不为空,则输出错误信息,否则不输出任何内容。这个选项通常用于错误处理的日志输出,以便在记录错误信息的同时也将其输出到日志中。
  • %v:用于格式化任何值类型,包括基本类型和结构体。它会根据值的类型进行格式化输出,并且会自动递归处理结构体和嵌套类型。这个选项通常用于打印调试信息或日志。
  • %d:用于格式化整数类型,包括有符号整数和无符号整数。它会将整数格式化为十进制表示,并将其写入输出流。这个选项通常用于打印调试信息或日志。

因此,%w 用于格式化错误,%v 用于格式化任意值类型,而 %d 用于格式化整数类型。

@guomaimang
guomaimang / bufio.NewReader(conn) 返回什么.md
Last active March 29, 2023 14:13
bufio.NewReader(conn) 返回什么

bufio.NewReader(conn) 返回什么

bufio.NewReader(conn) 会返回一个带缓冲的读取器对象,用于从 conn 中读取数据。具体来说,它会返回一个 *bufio.Reader 类型的对象,可以使用该对象的方法从连接中读取数据,例如:

  • Read(p []byte) (n int, err error):从连接中读取数据,并将读取的数据存储到 p 中。该方法会返回读取的字节数 n 和可能发生的错误 err
  • ReadByte() (byte, error):从连接中读取一个字节的数据,并返回读取的字节和可能发生的错误。
  • ReadRune() (rune, int, error):从连接中读取一个 Unicode 字符,并返回该字符的值、字节数和可能发生的错误。
  • ReadString(delim byte) (string, error):从连接中读取数据,直到遇到 delim 字节为止,并返回读取的数据和可能发生的错误。

在读取数据时,bufio.Reader 会使用一个内部缓冲区来减少系统调用的次数,提高读取效率。同时,bufio.Reader 还支持在缓冲区中查找特定的字节序列、按行读取数据等高级操作,使得读取数据更加方便和灵活。

@guomaimang
guomaimang / NPM 是什么.md
Created March 29, 2023 12:35
NPM 是什么

You:

NPM 是什么?


ChatGPT:

NPM(Node Package Manager)是一个用于Node.js平台的包管理器。它允许开发者在自己的项目中使用和共享可重用的代码模块(称为“包”),并能够管理这些包的依赖关系。NPM已经成为了Node.js社区的标准包管理器,并且是全球最大的软件注册表之一。通过NPM,开发者可以方便地发现、安装和更新已经发布到NPM上的包,并可以轻松地与其他开发者分享他们自己的包。

@guomaimang
guomaimang / vue3 项目中,文件结构应该是怎样的.md
Created March 29, 2023 12:37
vue3 项目中,文件结构应该是怎样的

You:

vue3 项目中,文件结构应该是怎样的?


ChatGPT:

Vue 3 的项目中,通常的文件结构如下:

@guomaimang
guomaimang / 什么是 Challenge-Response? 它的设计有什么问题.md
Last active March 29, 2023 12:54
什么是 Challenge-Response? 它的设计有什么问题

You:

什么是 Challenge-Response? 它的设计有什么问题


ChatGPT:

Challenge-Response 是一种计算机安全认证协议,用于验证请求方的身份。这种机制通过向请求方发送一个随机生成的挑战(Challenge),要求其对挑战进行响应(Response)。响应通常需要使用某种密钥或密码来加密或处理挑战,以证明身份。这样,只有掌握密钥或密码的请求方才能生成有效的响应。

@guomaimang
guomaimang / 为什么 go 的有些结构需要用 make 来创建?.md
Created March 29, 2023 12:55
为什么 go 的有些结构需要用 make 来创建

You:

为什么 go 的有些结构需要用 make 来创建?


ChatGPT:

Go 中的 make 函数主要用于创建 slice、map 和 channel 这三种数据结构,而不是用于创建普通的值类型(如 int、string 等)或结构体。这是因为在 Go 中,slice、map 和 channel 有一些特殊的属性和行为,需要使用 make 函数来进行初始化和分配内存。

@guomaimang
guomaimang / go 函数传参接口类型.md
Created March 29, 2023 14:09
go 函数传参接口类型

如何理解

如果一个函数的参数是接口类型,传进去的参数可以是指针,也可以不是指针,这得看你传的对象是怎么实现这个接口类型的 如果实现接口的方法的接收器是指针类型,则传参给接口类型时必需是指针,如果不是,则随便传?

这段话的意思是,

  • 如果一个函数的参数是接口类型,那么这个参数可以接收任何实现了该接口的类型的值。
  • 这个值既可以是指针类型,也可以是非指针类型,取决于实现接口的类型的方法的接收器类型。
    • 如果实现接口的方法的接收器是指针类型,那么在传参给接口类型时,必须将该类型的值作为指针传入。
  • 否则,将该类型的值作为非指针传入,编译器将会报错。