浅析 Go select 语句的执行顺序问题
0x00 前言
Go 语言中的 select 语句,用于控制 channel 的通信操作,分为发送操作与接收操作两类。
众所周知,大多数教程只是大致描述了 select 语句的执行流程:当 case 中存在一个或多个可执行的通信操作时,会随机选择进入其中一个,并完成该 case 下的相应语句。当不存在可执行的通道操作时,会先判断是否存在 default case,有则进入,无则阻塞,直至通信操作可执行。
然而,对 case 中表达式的执行顺序,却少有解释。接下来,本文将根据官方对 select 语句的定义说明,重点阐述 case 中表达式的执行顺序问题,并给出样例辅助理解,最后对整体执行流程做出总结。
【Vulnhub】 Stapler:1
0x00 前言
本题的综合渗透靶机镜像来自 Vulnhub 的 Stapler: 1,最终目标是获取靶机 root 权限并打印 flag。
靶机主要涉及服务匿名访问、用户弱口令、错误配置、敏感信息泄露、文件上传、本地提权等漏洞,提供了较为综合的渗透测试练习环境,能从中学习到常见的渗透技巧及漏洞利用方法,为初学者拓宽了渗透实战的新思路。
根据提示,至少有两条通路能获取 shell 环境,并至少有三种提权方法得到 root 权限。
VMware 导入 ovf 文件格式异常报错之探解
0x00 前言
近日,从 Vulnhub 下载了一个靶机镜像 Stapler: 1 作为练习,以巩固攻防实战技巧。谁知,开始之初便受阻,导入镜像所遇问题颇多,特此记录其探解过程,以备待查。
萌新开发接手大佬项目初体验
0x00 前言
本人某司安全开发萌新一枚,入职以来主要负责自研 IDS(Intrusion Detection System,入侵检测系统)的管理台开发。在全栈开发老司机波老师的指导下,顺利完成了数据读写效率优化、数据可视化展示、安全运营能力提升等开发需求,对 Web 应用的整体架构有了更深理解。
不久前,突然接到项目交接任务,与领导与波老师开完项目交接会后,虽然没明说,但下意识能感觉到,波老师即将离开。接下的一周内,波老师要将几年来的开发成果塞进我的脑袋,最后总算是顺利完成交接。整个过程下来,感觉大脑许久未在紧迫高压的状态下,涌入如此大量的信息。
客观而言,接手他人工作虽然开头难,但能若成功接下来,则会让萌新以最快的速度成长。本文将以开发人员的视角,对接手项目过程中的要点进行总结,便于日后再出现工作交接时查漏补缺,同时也为尚未接手过工作的职场技术新人提供参考。
Javascript 判断 IP 地址是否属于 CIDR 范围
奇安信「实战攻防三部曲」要点总结
【XCTF 攻防世界】 Reverse —— csaw2013reversing2
0x00 前言
此题出自 CSAW CTF 2014,是分值为 200 的 Reverse 题,重点是使用 IDA 对关键函数的逆向分析,并修改程序的运行流程后,得到正确结果。
题目链接:https://adworld.xctf.org.cn/challenges/details?hash=18180a7a-c677-44bd-92fc-84a382d318ae_2
【WeChall】 Training:GPG
0x00 前言
本题要求使用 GPG 为邮件通讯内容设置加密功能,一是为了保证邮件内容的机密性,二是为了让用户熟悉 GPG 的基本使用方法。
本题的解决过程如下:先使用 GPG 生成公私钥对,在 WeChall 的账户设置中将公钥上传,接着 WeChall 会向用户邮箱发送一封加密邮件,解密后得到一条用于确认公钥有效性的验证链接,点击并完成公钥设置。最后,回到题目链接,点击按钮后 WeChall 会再发送一封加密邮件,解密后即可得到 flag。
备注:本题主要操作在虚拟机的 Kali Linux 2018.2 系统中完成,其中自带的 GPG 版本为 2.2.5,辅助操作在本机的 Windows 7 系统中完成。
【WeChall】 Training:WWW-Basics
0x00 前言
本题的思路很明确:搭建一个 Web 服务后,使 WeChall 能够访问特定网页的内容。
但问题来了,WeChall 是向用户登录的 IP 地址发起访问请求。一方面,运营商分配给普通用户的 IP 地址通常是经过多层 NAT 的,所有无法在个人 PC 上搭建 Web 服务,让公网用户访问;另一方面,租借一台 VPS 虽然能拥有公网独立 IP 地址,但服务器的操作系统通常是命令行界面,难以通过浏览器访问题目链接,再点击按钮使 WeChall 访问服务器的特定网页。
鉴于此,解决方案如下:租借一台 VPS 搭建起 Web 服务,通过 Python 脚本模拟浏览器访问题目链接,使 WeChall 成功访问服务器的特定网页。