Cloudyun

Yann Cheungの博客

前言

Java语言相关基础知识的学习,主要参考菜鸟教程上的相关知识。

(一)主要特性

相较于之前接触过的C、C++的一些独特特性有:

1、简单

Java语言的语法和C、C++接近,容易理解。另外,其丢弃了C++中很少使用、较难理解的一些特性:操作符重载、多继承、自动强制类型转换。特别的是:Java不使用指针,而是引用。并提供自动分配和回收的内存空间。

2、面向对象

Java提供类、接口和继承等面向对象的特性。为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。

3、分布式

Java支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。

Read more »

前言

准备提前记录一下冬奥护网行动面试可能会问的一些问题,以及对应的简要想法和答案

先介绍下你的技术情况

​ 熟练使用kali,包括但不仅限于以下工具:Metasploit、Nessus、burpsuite、nmap、sqlmap、beef等,还有些工具类似:Aircrack-ng(wifi网络监控、信息获取、破坏等功能)、hydra(协议爆破)了解基础使用用法。

​ 熟悉owasp top10,熟悉DVWA靶场上相关漏洞的愿一力以及漏洞利用方式。熟悉一些简单的网站漏洞,原理查询以及利用。

如果让你渗透一个网站,你的思路是什么?

  • 1、前期交互:客户需求、测试计划、目标、范围、条件等等(回答可以略过)

  • 2、信息收集

    • (1)服务器相关信息(真实IP、系统类型、版本、开放端口、WAF等),个人一般用shodan看基本信息。

    • (2)网站指纹识别(cms、cdn证书等),dns记录

    • (3)whois信息,姓名、备案、邮箱、电话反差等,为后面社会工程学准备

    • (4)子域名收集(google hack的site):旁站查询、C段等,先看看旁站有没有通用性的cms或者其他漏洞,主站一般比较难。

      • CMS使用判别:应用程序的文件中出现的特征码来快速识别是哪一个CMS,在进行漏洞查找利用。或者利用一些工具来扫,例如御剑WEB指纹识别工具、cmscan

    • (5)Google hack进一步探测网站的信息、后台、敏感文件

      • site: 指定域名

        intext: 正文中关键字

        intitle: 标题中关键字

        info: 基本信息

        inurl: URL存在关键字

        filetype: 指定文件类型

    • (6)扫网站目录结构、爆后台,网站banner、测试文件、备份等敏感文件泄露等,如php探针。

      • 常用工具:御剑后台扫描工具、burp、dirbuster等
    • (7)传输协议,通用漏洞,exp

    • (8)查看IP、指定IP端口扫描、对响应端口进行漏洞探测、例如samba、mysql、ftp、ssh、心脏出血等。

  • 3、漏洞挖掘

    • (1)浏览网站结构,了解规模、功能、特点
    • (2)端口、弱口令、目录扫描
    • (3)XSS、SQL、命令注入、CSRF、cookie安全检测、暴力破解、敏感信息、文件包含、任意文件上传、重放攻击等,个人习惯一般先针对特定特点手动尝试,再用Nessus等漏洞扫描工具。
  • 4、漏洞利用

    • 利用前面方式getshell、webshell或者其他权限后,权限提升。可以使用mysql、windows低版本漏洞、linux内核版本漏洞提权。
  • 5、清除测试数据、输出报告

    • (1)日志、测试数据的清理
    • (2)总结,形成渗透测试报告、修复方案等。
Read more »

前言

​ 之前从网上一个博主的博客里面看到有关论文阅读记录的博文,博主在看完每一篇论文后都会进行相关总结和思考记录。个人觉得这是个不错的习惯,遂学习了下,刚好对最近看的几篇论文进行简单的记录。

论文总结

V-Shuttle

论文地址V-Shuttle:Scalable and Semantics-Aware Hypervisor Virtual Device Fuzzing

1、基本介绍

​ 这篇文章是潘神在2021年CCS上发表的一篇fuzzing相关论文,论文拿了CCS2021年的best paper(国内唯一)。fuzzing对象是虚拟化技术的核心组件hypervisor(虚拟机管理程序)中的虚拟设备(virtual device),应该属于云计算安全虚拟化技术fuzzing二进制漏洞挖掘与应用等相关领域。

2、大致内容

​ 传统使用随机输入、覆盖引导、结构感知的方法对hypervisor中大部分虚拟设备进行fuzzing,会存在效率低下、覆盖率低、可扩展性差等问题。本文研究了造成这些问题的核心在于:通过DMA传输的数据结构具有高度嵌套特性。后续作者通过对qemu的hypervisor中与DMA操作相关的api进行hook,将对虚拟机用户内存数据的读取重定向到了fuzzer的testcase中,以此来解决传统fuzzing突变指针字段会导致无效内存访问的问题。在前面基础上,作者再通过数据流分析方法(活变量)对每种类型DMA对象的数据结构进行标记、分组构建种子池(seedpool),实现了语义感知的功能,来引导fuzzing过程中testcase的构建。

Read more »

前言

​ 当构造存储和处理信息的机器时,二进制工作得更好,因为二值信号进行存储和执行计算的电子电路非常简单可靠。

​ 本章研究在计算机上如何表示数字和其他形式数据的基本属性,以及计算机对这些数据执行操作的属性,例如编码等。

信息存储

​ 大多数计算机使用8位的块(字节byte)作为最小的可寻址的内存单位,而不是访问内存中单独的

​ 机器级程序将内存视为一个非常大的字节数组,称为虚拟内存(virtual memory)。内存的每个字节都由一个唯一的数字标识,即为它的地址(address),所有可能的地址集合就组成了虚拟地址空间(virtual address space)。

十六进制表示法

太基础,不记录

image-20220104172145064

Read more »

前言

计算机操作系统部分的知识零零散散学过一些,没有系统性学

遂开始阅读《深入理解计算机系统》这本书

算是为后续校招,平时学习工作打下基础,同时方便后面需要的时候回顾。

本篇是第1章计算机系统漫游部分的笔记记录,应该算是整本书的绪论。

信息就是位+上下文

本书主要目的是帮助了解你在系统上执行程序时,系统发生了什么以及为什么会这样。

程序是从源程序开始的,源程序实际上就是一个由值0和1组成的位(bit)序列,8个位为一组称为字节。

Read more »

前言

Go语言相关基础知识的学习,主要参考菜鸟教程上的相关知识。

Go语言结构

Go基础组成有以下几个部分:

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句、表达式
  • 注释
1
2
3
4
5
6
package main
import "fmt"

func main(){
fmt.Printfln("Hello,world!")
}
Read more »

忆我少年游,一梦到华胥

最近真的很喜欢这句话,当然要写文记录呀,我又不是永远18岁~

读研本来就是枯燥、焦虑的过程,想着弄一个私人博客,算是记录一下自己的学习记录、日常啥的。

啥时候忘记学的东西了,方便回来捡一捡,

啥时候难过了,回头看看自己的碎碎念~

Read more »