自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 WSL迁移数据位置

电脑空间不够,将WSL迁移到非系统盘。

2024-04-17 09:53:53 116

原创 Docker搭建MinIO私有对象存储

使用Docker搭建MinIO

2024-04-17 09:52:13 552 1

原创 基于已有镜像重新build新镜像

基于已有的 Python 镜像,构建新的镜像(安装 requirements.txt)。

2024-04-17 09:32:59 207

原创 尤雨溪:为什么不逐步改进 Rollup,而是从零开发 Rolldown?

在今天,尤雨溪的 Rolldown 项目中提交了一个 Commit,简述了为什么不基于 Rollup,而是从零开发 Rolldown。

2024-04-12 00:50:14 190

原创 线程同步的四项原则

最近在看《Linux 多线程服务端编程》,看到下面这几句话,感觉值得牢记,于是摘抄下来了~

2024-04-08 23:03:29 268

原创 Rust 实现线程安全的 Lock Free 计数器

Trait 可以看作是一种能力的抽象,和接口有点类似。Trait 还能作为泛型约束,作为参数的限制条件。

2024-04-08 22:32:59 490 1

原创 Rust 练手小项目:猜数游戏

好久没写 Rust 了,参考《Rust 程序设计语言》写了一下猜数游戏。写了个练手代码后有点感觉了。

2024-04-08 00:02:42 322

原创 纳瓦尔:如何做出更好的决定

一个快乐且平静的人,会做出更好的决定并取得更好的结果。如果你想做出更好的决定,你必须学会驯服你的思想,就像是驯服你的身体一样。欲望对我来说,就是和自己签订让自己不开心的契约,直到得到自己想要的。每当我对某件事感到不愉快时,我就会去寻找我潜在的欲望是什么并且它还没被实现。有欲望是一件很正常的事,我们都是普通人,而且你也必须有欲望。欲望不能有太多,也不要无意识地拿起它们。你只需要选择一个压倒性的愿望,为那件事受苦也没关系。其他事都随他去,这样你就可以平静祥和放松,然后你会表现得更好。

2024-04-05 23:02:18 330

原创 【极简主义的深度学习】01 概览深度学习

要学习一个东西,需要先想清楚为什么而出发,以及怎么能达到自己想要的效果。当然也不能太执着于自己的目标,沿途的风景也是非常美丽的,如果路边的风景你觉得很美就停下来欣赏,机器学习也一样。对于我来说,是想初步的了解一下机器学习,以及思考如何更有效的应用。

2024-03-30 21:02:23 411

原创 CTFshow之SSRF

文章目录1 web3512 web3523 web3534 web3545 web3556 web3567 web3578 web3589 web35910 web360其他师傅都写得很详细了,只是做个简单的笔记。1 web351POSTurl=file:///var/www/html/flag.php2 web352只限制了协议。url=http://127.0.0.1/flag.php 3 web353十六进制表示:url=http://0x7F000007/flag.php

2021-09-04 20:16:11 360

原创 2021 CyBRICS Multichat题解

0 前言这是一个 CSRF 的题目,以前没怎么做过这类题目,还是挺有趣的。HackTrick 中介绍对于这种Cross-site WebSocket hijacking 的介绍挺详细的。传送门1 题解在服务器创建文件 w.html(记得将 IP 替换为自己服务器的 IP)<meta charset="utf-8"><script> function ws(){ var ws = new WebSocket("ws://multichat-cyb

2021-08-15 19:14:56 315

原创 2019 D3CTF ezupload题解

0 前言一个 PHP 反序列化的题目。虽然序列化的的利用链简单,但是还是踩了很多坑。1 题解序列化脚本:serialize.php<?phpclass dir{ public $userdir; public $url; public $filename;}$o = new dir();$tmp = new dir(); $tmp->userdir = $argv[1]; // 需要扫描的目录$o->userdir = $tmp;$o-

2021-08-15 18:26:52 1209 1

原创 浅谈CTF中escapeshellarg的利用

浅谈 escapeshellarg 的利用文章目录浅谈 escapeshellarg 的利用0 前言1 参数注入2 逃逸字符2.1 cat flag2.2 freepoint3 总结0 前言escapeshellarg 的作用是把字符串转码为可以在 shell 命令里使用的参数。(escapeshellarg 和 escapeshellcmd 相似,主要看是否有引号)在 CTF 可能被用于:参数注入(开发人员错误的使用 escapeshellarg 函数)逃逸字符(该函数非二进制安全)1

2021-08-09 00:13:59 4033

原创 php文件包含-条件竞争脚本

0 前言这次将是最后一篇关于 php文件包含 利用的文章,这几篇文章的内容几乎可以满足绝大多数简单的文件包含题目,以后的文章会更偏向于原理分析、比赛真题、程序分析。在前面几篇文章中,用了 CTFshow 的几道例题来讲解我使用 php支持的协议 来进行 php文件 的利用,而这篇文章则主要讲解条件竞争的 Python 脚本(比较懒,加上最近事情比较多,介绍条件竞争的博客已经非常多了)。1 Payloadimport requestsimport threading# 攻击目标HOST = "

2021-08-03 18:22:40 927

原创 php常用的文件读取函数总结

0 前言在 2019 年的 CISCN 《Laravel1》 一题中,寻找利用链可以找到这样一个语句:$f($this-namespace.$item['key'], null) // $f, item['key'] 都可控这时候有 2 种思路:文件读取命令执行由易到难吧。先考虑文件读取,直接利用文件读取相关的函数读取 flag 文件。但经过测试使用 file_get_contents 无法回显。这时候就需要用其他的文件读取函数进行测试,平时就需要积累这些函数的用法。1 文件读取函数

2021-07-26 00:06:13 2404

原创 php文件包含-CTFshow-web80

0 前言前面我通过 2 个 CTF 题目来讲解了各种协议在文件包含时的简单用法。这篇文章主要是对 web80 做个简要的分析。1 解题思路在 web79 中只过滤了 php,而在 web80 中过滤了 php 和 data。两个题都是使用 str_replace 进行过滤,所以 web80 的思路和 web79 是一样的。利用大小写绕过 str_replace 函数。(经过测试data 协议无法使用 DATA 绕过。php 伪协议则只能使用 php://input 协议,不能使用 php://fi

2021-07-26 00:02:32 559

原创 php文件包含-CTFshow-web79

0 前言在上一篇文章,我们尝试 5 种协议来实现文件包含。但在 web79 中,代码使用 str_replace 函数将字符串中的 php 替换成 ??? ,所以我们要尽可能的避免使用关键字 php。1 file:// 或 不使用协议方法同 php文件包含-CTFshow-web78。2 http://在上一篇文章中,使用的链接为 https://blog-1256032382.cos.ap-nanjing.myqcloud.com/eval.php,在链接的尾部含有 php 关键字,无法直接

2021-07-26 00:01:49 462

原创 php文件包含-CTFshow-web78

1 file:// 或 不使用协议(将文件直接读入,无法进行编码,会被 php 执行)包含一句话木马,实现代码执行来读取 flag。访问URLhttp://21da7ba4-6818-45bc-903a-7eb4c78a3284.challenge.ctf.show:8080/?file=file:///var/log/nginx/access.log,来确定是否能读取 nginx 的日志。确定可以访问 nginx 的日志后。使用Burp进行抓包,并修改 User-Agent 为 <?

2021-07-25 23:59:43 317

原创 开源项目-Docker实现AoiAWD一键部署

1 前言上次自己手动搭建 AoiAWD,踩了很多坑。于是将自己踩的坑用脚本(Docker)的方式记录下来,为后人铺路吧。2 食用Note:guardian.phar、tapeworm.phar、roundworm等文件将会在部署时保存到当前目录下的 tmp 文件夹中。下载源码git clone https://github.com/slug01sh/AoiAWD # 这个项目地址不是官方的项目地址构建镜像docker-compose build部署镜像(不建议直接使用 -d

2021-07-25 23:58:41 2765 9

原创 CTF Web题的工作流

文章目录1 信息搜集1.1 这个网站使用了技术1.2 理解网站是怎么工作的1.3 测试常见的目录和文件1.4 检查源文件和请求头1.4.1 源文件1.4.2 HTTP包审计1.5 笔记模版附录采用工作流的方式,让自己减少失误。避免出现在简单题耗费大量的时间。疏忽大意收集信息不齐1 信息搜集1.1 这个网站使用了技术这个问题是非常有必要的,在 Python 中的模版注入会多于 PHP 中。可以使用网页的拓展来测试属于什么语言,例如类似下面的拓展:index.phpindex.html

2021-05-23 22:52:34 236

原创 2021年 VNCTF realezjvav复现

文章目录1.1 基于运行时的报错注入1.2 FastJson反序列化hint:不会有web手电脑里没IDA吧,不会吧不会吧仔细阅读package.json哦/汪汪1.1 基于运行时的报错注入尝试进行SQL注入,有关键字过滤。union、sleep、benchmark、rlike都被过滤了。猜测为有过滤的字符型注入,尝试使用其他方法进行盲注,或者尝试进行报错注入。优先考虑报错注入。使用name_const方法可以可以导致报错。payload为:# 正常' or (1) or '' or

2021-05-16 21:36:17 347

原创 2021年 CISCN writeup

2021年 CISCN writeup1.1 easy_sql进行手动测试,发现可以进行报错注入。Payload 为:') AND updatexml(1, concat(0x7e, (database()), 0x7e), 1)--尝试读取数据库表的表名,发现information关键字被过滤,猜了一下表名为 fl4g、flag,最后确定表名为 flag。使用 join 爆出字段名。select*from (select * from flag as a join flag b)csele

2021-05-16 18:07:19 923

原创 【计算机基础】网络抓包分析笔记

在SSRF中经常会用到Gopher协议或者其他协议,来对内网的服务进行攻击。在使用Gopher协议的时候,我们需要将其他服务的数据包进行重放(使用Gopher协议重放)。这也就意味着必须通过抓包来获得其他服务(MySQL、Redis)的数据包。(图片说明:tcpdump是一种常用的命令行抓包工具)1 抓包0x01 如何抓Redis的数据包?当redis在本地时,需要抓取ol相关的网络接口(本地回环包),可以使用下面的命令找到相关的设备名:ifconfig -a(图片说明:lo0就是我的电脑

2021-04-04 20:07:00 288

原创 【经验分享】效率提升总结

决定将《左耳听风-极客时间》中的「时间规划」方面的分享应用到自己的实际生活当中,并且记录自己的实践经历。基本思想:反转控制,被动变主动。1 如何做假设有一些必须要完成的任务,需要高效率的完成,就需要考虑下面的问题:哪件事最紧急?如何保证自己的专注?如何保护专注状态的持久?目标:专注的做一件事。需要解决的问题:被外界打扰、自己思绪打扰。0x01 如何确定目前最应该做的事?行程:平时在滴答清单中,将行程和行程信息进行记录,在行程前进行提醒,保证自己不会错过最重要的事情。及时对行程

2021-03-24 11:34:21 227 1

原创 【网络安全系列】JavaScript原型链污染攻击总结

文章目录0 前言1 原理2 利用0 前言原型链污染,是 NodeJs 中常见的漏洞,在做 antCTF 时也遇到的原型链污染题目,在此记录自己学习原型链污染的过程。1 原理0x01 问:原型链有什么作用?用来做继承,也就是基于原有的代码做一定的修改。下面是一个使用原型链实现继承的案例:function Parent () { this.name = 'kevin';}Parent.prototype.getName = function () { console.log(t

2021-03-13 14:20:07 1652

原创 【网络安全系列】SQL注入总结

文章目录1 基本原理2 防御与利用SQL 注入是一种常见的通用漏洞,在 CTF 中也是常客。我对于通用漏洞的理解:和任何框架没有关系,和任何语言没有关系。曾经做完 sqli-lab 的我非常的天真,想尝试把 SQL 注入漏洞进行系统性的总结归档,我发现,这真的太难太难了。所以就有了现在这篇文章,采用问答的方式,记录一些自己遇到和收集的 SQL 注入的思想,让自己能在遇到具体问题时进行具体的分析。1 基本原理将用户输入的参数当作 SQL 语句执行。更好的解释:用户输入的参数可以改变 SQ

2021-03-11 23:57:09 273

原创 计算机基础2:正向代理和反向代理的区别是什么?

文章目录题目来源:https://whale3070.github.io/interview/2020/05/19/11-x正向代理和反向代理的根本区别:代理对象不同。正向代理为客户端服务,反向代理为服务器服务,如下图所示。

2021-03-04 12:01:51 204 1

原创 【网络安全系列】浅谈应急响应

文章目录1 Why?2 What?3 How?应急响应包含组织为了应对突发/重大信息安全事件的发生所做的准备,以及在事件发生后所采取的措施。,是信息安全从业者的常见工作之一。应急响应并非仅仅是在系统被黑之后做一系列的补救措施,而是需要在平时就进行被黑的准备和避免被黑。各大厂商通常的做法就是成立应急响应中心 SRC(Security Response Center),来尽量避免被黑。1 Why?问1:为什么需要应急响应流程?需要了解为什么需要应急响应,那就需要从应急响应的目的入手:尽可能保证网站系

2021-03-03 11:09:30 2401

原创 【CTF系列】攻防世界-nizhuansiwei

文章目录1 file_get_content2 include3 反序列化相关信息:hint:无进入网站后,便能显示源码,是一道代码审计题目。<?php $text = $_GET["text"];$file = $_GET["file"];$password = $_GET["password"];// text 需要等于 welcomeif(isset($text)&&(file_get_contents($text,'r')==="welcome to

2021-03-02 14:04:59 511

原创 计算机基础1:TCP和UDP的区别是什么?

文章目录问题1问题2问题3TCP 是互联网的核心协议之一,也是面试常被提及的一个基本概念,所以我将它的相关问题整理在下面。我最近特别喜欢用发问的方式来解决问题,通过不断的发问和分解问题,能让一个复杂的问题变得简单,能让我的思路变得清晰明了。针对这个面试题所提出的问题:面试官为什么要问这个问题?这个题目大概在考察什么?这个问题的答案是什么?相关的题目还有什么?问题1考察应聘者对于计算机网络的网络体系结构的了解。在考察 TCP/IP 五层模型中的传输层的 TCP 和 UDP 传输协议

2021-02-28 18:07:17 309

原创 【CTF系列】2021年2月四叶草CTF

文章目录1 Web1.1 题目:GET1.2 题目:Website2 小结四叶草网络安全学院的一次推广活动吧,正好可以试试自己的水平(问就是菜。1 Web1.1 题目:GET题目描述:Hello GET_flAG!!!题目地址:http://0bc68a13.yunyansec.com/根据提示输入任意的Get参数,即可查看源码。http://0bc68a13.yunyansec.com/?1<?phpinclude('flag.php');include('./libs

2021-02-27 09:37:21 1442

原创 局域网传输神器Snapdrop(电脑、手机均可)

Snapdrop 是一个跨端的传输工具,可以在 Window、Mac、Android、IOS 使用,甚至是任何设备——只要浏览器支持 WebRTC。1 Why?为什么要使用这个工具?以下是自己遇到的痛点:我目前是 iPhone + Mac,使用 Airdrop 在自己的电脑和手机之间传输文件非常方便。但,在某次上课时,我由于某些原因没有录屏,于是让同学将文件发送到我的手机上。最先想到的是 QQ 的面对面传输,但是!但是!但是!junk!连接成功,但是传输失败,几次都是这样。我们不得不采用在线

2021-02-26 13:43:11 51644 5

原创 在Windows中的存储长度命名是什么的缩写?

Windows存储长度缩写解释:BIT(位):是计算机最小的存储单位。以0或1来表示比特位的值。BYTE(字节):BYTE(1个字节,8位)。计量存储容量的一种计量单位,一个byte由8个bit组成,通常byte被用来代表一个英文字母、一个数字或一个符号。WORD(字):WORD(1个字,即2个字节,16位)通常由2个byte组成,一个word代表一个中文字,一个字的字长为16。DWORD:Double Word(2个字,即2*2=4个字节,32位),每个word为2个字节的长度,是指计算机中数值

2021-02-23 20:22:01 372

原创 如何使用SSRF控制FTP服务器攻击内网的mongodb

文章目录1 背景2 环境搭建2.1 搭建mongo环境(宿主机和虚拟机)2.2 flask(宿主机)2.3 mongo数据包(虚拟机)2.4 FTP服务器(虚拟机)3 攻击1 背景最近在尝试做 starCTF 中的 oh-my-bet,需要使用 CRLF 漏洞来控制 FTP 向 mongodb 中发送数据包来修改 mongodb 中的内容。我尝试着自己手动构建了一个简易的环境来实现大致的流程。2 环境搭建使用虚拟机 + 主机两台机器来实现整个流程:宿主机(Web 服务器)虚拟机(用来攻击的服务

2021-02-07 20:31:26 693

原创 如何查看Docker中mongodb的内容?

文章目录1 背景2 kali 安装 mongodb3 连接mongo并查看数据1 背景最近在尝试做 starCTF 中的 oh-my-bet,需要使用 CRLF 来控制 FTP 向 mongodb 中发送数据包来修改 mongodb 中的内容。需要通过查看 mongodb 中的内容来确定是否修改成功。Docker-compose 文件中的配置如下:使用命令 docker-compose up -d 启动 Web 服务之后我们可以看见 docker 中的 mongo 并没有和本地的端口进行绑定,

2021-02-07 20:29:36 2198

原创 技术类书籍和思维类书籍怎么阅读?

1 技术书籍阅读法:明确目的大致步骤:根据你的目的和问题,摘录关键词和行动,形成简单的笔记利用新学的知识在工作中展开实践,或者独立做一个小的项目过程中记录下自己实践的感受和踩坑的关键点回过头来完善自己的笔记,并最终整理输出关键点:设定读书目标,带着问题选择和阅读。技术类的书籍,就是要带着问题找答案。首先,要围绕你的目标,寻找适合的书单。其次,带着你的关键疑惑,用倍数阅读法找你要解决的问题,可以跳读和略读。在快速阅读中记录核心关键词,每10个关键词可以归纳成3-5个重点或一系列动作。

2021-01-30 17:25:20 193

原创 Web安全攻防之常见漏洞及防御方式

1 SSRFSSRF漏洞的产生原因:服务器提供了从其他服务器获取数据的功能,并且没有对地址和协议进行过滤和限制。比如:2020年10月ByteCTF的easy_scrapy。这种漏洞在CTF中也很常见,可以用来攻击内网中的应用,如:Redis、discuz7、fastcgi、memcache、webdav、struts、jboss、axis2等应用。防御方式:限制请求的端口只能是Web端口限制不能访问内网的IP(IPTable)屏蔽返回的内容参考文章:浅析SSRF原理及利用方式:htt

2021-01-27 15:50:46 376

原创 Web安全攻防之CSRF攻击与XSS攻击区别

反射型XSS和CSRF的相同点:都需要用户点击链接,访问恶意构造的链接。反射型XSS和CSRF的不同点:XSS偏向于代码执行。代码可以被黑客构造,能够实现复杂的功能,更加的危险。CSRF则偏向于结果。通常情况是利用系统自带的功能来实现黑客想要达到的结果,比如刷访问量、发布文章。XSS也能实现CSRF的功能,不过能GetShell,你会只用来刷访问量?(逃????参考教程:用大白话谈谈XSS与CSRF:https://segmentfault.com/a/119000000705963

2021-01-27 14:36:28 427

原创 Web安全攻防之XSS基础基本概念和基本思想

1 简介与对比XSS攻击可以分为三种反射型:一次性、通过邮件传播、需要经过服务器Dom 型(文档对象模型,Document Object Model):一次性、不需经过服务器(不发送消息)存储型:持久性、通常出现在留言板中、通常是处于信任的链接中(熟悉的论坛网站)反射型和存储型都需要向外部发送信息,经过服务器后传回,而 DOM 型由本地的浏览器进行解析执行。区别反射型和 DOM 型最简单的检验方法就是「Burp 抓包」,如果 Burp 抓到数据就是反射型,抓不到数据就是DOM型。(面试时童童

2021-01-27 13:49:45 454

原创 Web安全攻防之SQLmap使用

《Web安全攻防》使用sqli-labs来熟悉一下SQLmap这个神器,我也大致的熟悉一下这个工具的使用吧。SQL注入的基本步骤:判断注入类型获取数据库名获取数据表名获取字段名获取数据1 判断注入类型1.1 Get类型使用 -u 参数指定url(sqlmap关卡1)sqlmap -u "http://localhost:4000/Less-1?id=1"需要注意的是:URL最好附带请求的参数。sqlmap identified the following injection p

2021-01-26 19:21:02 787

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除