郭佳明的博客
  • 首页
  • 归档
  • 分类
  • 关于
  •   
  •   
SEED-lab:Environment Variable and Set-UID Program Lab

SEED-lab:Environment Variable and Set-UID Program Lab

Task 1: Manipulating Environment Variables环境变量是个以=号连接的键值对,是隐式传入程序中的 printenv和env命令可以在shell中打印出当前的环境变量 使用grep获取某个特定值 export命令和unset命令分别可以设置和去除环境变量 Task 2: Passing Environment Variables from Parent
1970-01-01
SEED-lab
SEED-lab:Format String Vulnerability Lab

SEED-lab:Format String Vulnerability Lab

Environment Setup现代操作系统使用地址空间随机化(ASLR)来随机化堆和堆栈的起始地址。这使得猜测确切的地址变得困难; 猜测地址是格式字符串攻击的关键步骤之一。为了简化这个lab,我们使用以下命令关闭地址随机化: 1$ sudo sysctl -w kernel.randomize_va_space=0 The Vulnerable Program在server-code目录执行
1970-01-01
SEED-lab
seedlab:Meltdown Attack Lab

seedlab:Meltdown Attack Lab

Lab Environment 熔断漏洞是英特尔 CPU 内部的一个缺陷,对 AMD 机器无效 熔断和幽灵攻击都使用 CPU 缓存作为侧通道窃取受保护的信息 seed预先构建的虚拟机提供了环境,因此我们需要在 Ubuntu 16.04 VM以完成实验,注意不要更新虚拟机的操作系统 使用gcc -march=native -o myprog myprog.c命令去编译程序,这里-march=nati
1970-01-01
SEED-lab
SEED-lab:Heartbleed Attack Lab

SEED-lab:Heartbleed Attack Lab

实验准备设置两个 VM: 攻击者机器 修改/etc/hosts 文件将服务器名映射到服务器 VM 的 IP 地址,在/etc/hosts 中搜索127.0.0.1 www.heartbleedlabelgg.com,将承载ELGG应用程序的服务器VM的实际IP地址替换掉127.0.0.1 受害者服务器 Heartbleed漏洞分析OpenSSL 库中的一个漏洞,受影响的 OpenSS
1970-01-01
SEED-lab
SEED-lab:One-Way-Hash-Function-and-MAC

SEED-lab:One-Way-Hash-Function-and-MAC

hash简介Hash函数也叫杂凑函数、散列函数、哈希函数,可以把消息或数据压缩成固定长度的摘要 性质 等长性:给出任意的输入,得到的输出(摘要)长度不变。比如sha-1得到的摘要固定是160位,md5为128位 单向性:任给x,得到$y=h(x)$是容易的,任给$y=h(x)$,得到x是困难的 抗弱碰撞性:已知x,找到不与x相等的y满足$h(x)=h(y)$是不可行的 抗强碰撞性:找到任意两个不同
1970-01-01
SEED-lab
SEED-lab:Pseudo Random Number Generation Lab

SEED-lab:Pseudo Random Number Generation Lab

Task 1: Generate Encryption Key in a Wrong Way 使用当前时间作为伪随机数生成器的种子,生成一个128位的加密秘钥 用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数 rand()配合srand()函数进行使用,当srand()的参数值固定的时候,rand()获得的
1970-01-01
SEED-lab
SEED-lab:Race Condition Vulnerability Lab

SEED-lab:Race Condition Vulnerability Lab

lab setup/tmp目录具有Sticky Bit(SBIT),可以看到权限是drwxrwxrwt,这意味着任何人都可以在 /tmp内新增、修改文件,但仅有该文件/目录建立者与 root 能够删除自己的目录或文件 1drwxrwxrwt 24 root root 4.0K Nov 1 20:09 tmp/ Linux的保护机制: “symlinks in world-writable
1970-01-01
SEED-lab
SEED-lab:RSA Public-Key Encryption and Signature Lab

SEED-lab:RSA Public-Key Encryption and Signature Lab

写在lab之前RSA算法的数学解释 随机选择两个不相同的素数 $p, q$ 。 $p, q$ 将相乘, 为 $n=p \times q$ 。 计算 $\mathrm{n}$ 的欧拉函数 $\varphi(\mathrm{n})$, 欧拉函数证明, 当 $p, q$ 为不相同的素数时,$\varphi(n)=(p-1)(q-1) 。$ 随机选择一个整数 $\mathrm{e}$,
1970-01-01
SEED-lab
SEED-lab:SQL Injection Attack Lab

SEED-lab:SQL Injection Attack Lab

SQL 注入原理下图可以很好的表示SQL注入,车牌被识别后,系统会执行drop database指令删除数据库 下面的漫画中,该学生的姓名为“Robert’); DROP TABLE students;–”,导致students表被删除: 在输入的字符串之中注入SQL指令,恶意指令就会被数据库服务器误认为是正常的SQL指令而运行,遭到破坏或是入侵 例如,某个网站的登录验证的SQL查询代码为 1
1970-01-01
SEED-lab
SEED-lab:Return to libc Attack Lab

SEED-lab:Return to libc Attack Lab

关于rop原理的一个讲述: https://www.ired.team/offensive-security/code-injection-process-injection/binary-exploitation/rop-chaining-return-oriented-programming#inspecting-the-stack Environment Setup 使用-m32标志编译为3
1970-01-01
SEED-lab
SEED-lab:Shellcode Development Lab

SEED-lab:Shellcode Development Lab

Task 1.a首先来看一下C语言版本的shellcode: 12345678#include <unistd.h>int main() char *argv[2]; argv[0]="/bin/sh"; argv[1]=NULL; execve (argv[0],argv,NULL); return 0;&#125; 下面汇编代码可以启
1970-01-01
SEED-lab
SEED-lab:Spectre Attack Lab

SEED-lab:Spectre Attack Lab

Out-of-Order Execution and Branch Prediction为了提高运行效率,CPU具有两个重要特性: 乱序执行 分支预测 现代高性能 CPU 不再严格按照指令的原始顺序执行指令,而是允许乱序执行耗尽所有的执行单元。以提高效率 12345size=10;data = 0;if (x < size) &#123; data = data + 5;&#125;
1970-01-01
SEED-lab
SEED-lab:shellshock

SEED-lab:shellshock

shellshock原理shellshock被记录在CVE-2014-6271,具有 9.8 CRITICAL的威胁评分,于2014年9月24日公开发布 简单来说,当父进程fork出子进程的时候,子进程会继承父进程的环境变量,但是由于bash错误的处理机制,导致环境变量被解释成了函数,启动Bash的时候,它不但会导入这个函数,而且也会把函数定义后面的命令执行 下面用代码来演示一下 12345678
1970-01-01
SEED-lab
SEED-lab:Cross-site Scripting Attack Lab

SEED-lab:Cross-site Scripting Attack Lab

无内鬼,整点前端 lab setup参考seed系列其他博客 Task 1: Posting a Malicious Message to Display an Alert Window通过在个人主页汇总嵌入JavaScript 程序,这样当其他用户查看个人主页时,将执行 JavaScript 程序并显示一个警告窗口 在brief description框中填入<script>ale
1970-01-01
SEED-lab
Surfingkeys:网页的Vim拓展

Surfingkeys:网页的Vim拓展

TLDR在这里整个浏览器Vim插件的花活,先讲几个实用情景: s+g可以直接使用谷歌搜索粘贴板的内容 o+s呼出Stack Overflow的搜索栏,直接指定Stack Overflow网站搜索内容 o+x显示最近关闭的所有页面 .重复上一次操作 G滚到网页末尾 O圈中范围内所有的链接,按下键盘字母直接跳转 t显示所有已经打开的页面,并通过tab键进行跳转(也可以直接使用默认搜索引擎搜索内容)
1970-01-01
工具使用
#vim
Windows all in one:从零开始的Windows快速配置

Windows all in one:从零开始的Windows快速配置

最近频繁的重装系统,经常会遇到拿到一个新机器但是不趁手的情况。由于每次都会做重复的工作,干脆写一篇博客,就叫做从零开始的Windows快速配置好了 软件安装开发必备 scoop win的包管理工具 可以一行命令装软件,再也不用点wizard中的下一步啦 vscode 地表最强编辑器,具有丰富的拓展,拓展插件支持使用账号同步 git 最流行的版本控制工具 v2rayN 可能是win上
1970-01-01
MIT-missing-semester计算机教育中缺失的一课

MIT-missing-semester计算机教育中缺失的一课

Using the shell访问带有空格的文件夹,比如my photos 使用双引号括起来:”my photos” 使用转义:- my\ photos shell 执行 echo hello的过程: shell 基于空格分割命令并进行解析,然后执行第一个单词代表的程序,并将后续的单词作为程序可以访问的参数 shell首先判断命令是不是编程关键字,如果不是就从环境变量$PATH中寻找,可
1970-01-01
Linux
beamer制作slides

beamer制作slides

beamer简介beamer是LaTeX documentclass的一种,适合制作学术风格PPT,关于LaTeX的介绍可以参考我的另一篇博客 下面是beamer的一个预览图,可以看到还是很简洁美观的 一个快速入门途径 在GitHub上找一个模板 做填空题即可 把人名、标题等相关替换掉 了解一些beamer的基本使用方法 基本语法 首行是\documentclass[11pt]{bea
1970-01-01
LaTeX
#LaTeX,beamer
buuctf-pwn刷题记录

buuctf-pwn刷题记录

test_your_nc1123456- Connect to a certain port: nc &#123;&#123;ip_address&#125;&#125; &#123;&#123;port&#125;&#125;- Scan the open ports of a specified host: nc -v -z &#123;&#123;ip_address&#125;&#12
1970-01-01
CTF
CSAPP-lab0:C Programming Lab

CSAPP-lab0:C Programming Lab

队列的链表实现用一个结构体来表示链表,定义如下: 123456789101112131415161718192021222324252627282930313233typedef struct &#123; /** * @brief Pointer to the first element in the queue, or NULL if the * queue
1970-01-01
CSAPP
123456

搜索

Hexo Fluid
载入天数... 载入时分秒...
总访问量 次 总访客数 人
京ICP备2021035969号