Exploit-Excercise-Nebula-7
Level 07 —— Perl脚本可执行任意文件漏洞详情:flag07 用户正在编写他们的第一个 Perl 程序,该程序允许他们 ping 主机,以检查是否可以从 Web 服务器访问它们。要执行此级别的操作,请以 level07 帐户和密码登录。此级别的文件位于 /home/flag07。 源代码如下: #!/usr/bin/perluse CGI qw{param};print "Content-type: text/html\n\n";sub ping { $host = $_[0]; print("<html><head><title>Ping results</title></head><body><pre>"); @output = `ping -c 3 $host 2>&1`; foreach $line (@output) { print "$line";...
Exploit-Excercise-Nebula-6
Level 06 —— 破解Linux登录密码详情:flag06账户凭据来自旧版Unix系统。要执行此级别,请以level06账户和密码level06登录。此级别的文件位于/home/flag06。 Solution:根据题目所述,flag06这个账号的认证凭据是按照传统UNIX的方法储存的——意味着密文是存储在/etc/passwd里的,而不是/etc/shadow中的——因为把密码存到passwd里不安全,所以以后的Linux发行版都将加密后的密码单独存放到/etc/shadow中的。 所以可以直接读取/etc/passwd里flag加密后的密码: 这里flag06后面跟着是密码的哈希值。 在/tmp中新建一个passwd文件内容如下: flag06:ueqwOCnSGdsuM:993:993::/home/flag06:/bin/sh 接着从http://www.openwall.com/john/ 下载john的源码包并编译(不会的请见doc/INSTALL): 但是这里我是直接在Kali Linux上用john破解的(Kali...
Exploit-Excercise-Nebula-5
Level 05 —— 窃取机密文件详情:检查flag05目录。您正在寻找弱目录权限。要执行此级别,请以level05账户和密码level05登录。此级别的文件位于/home/flag05。 Solution:根据题目所述,在/home/flag05里,藏着一个重要的文件。我们的任务就是窃取这个文件。转到目录/home/flag05下,用ls...
Exploit-Excercise-Nebula-4
Level 04 —— 绕过限制获得token详情:这一关需要读取令牌文件,但代码限制了可读取的文件数量。想办法绕过它吧。要执行此级别,请以 level04 帐户和密码登录。此级别的文件位于 /home/flag04。flag04程序源代码如下: #include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <stdio.h>#include <fcntl.h>int main(int argc, char **argv, char **envp){ char buf[1024]; int fd, rc; if(argc == 1) { printf("%s [file to read]\n", argv[0]); exit(EXIT_FAILURE); } if(strstr(argv[1],...
Exploit-Excercise-Nebula-3
Level 03 —— 利用计划任务提权详情:检查 flag03 的主目录并记下那里的文件。有一个 crontab 每隔几分钟就会调用一次。要执行此级别,请以 level03 帐户和密码登录。此级别的文件位于 /home/flag03。 Solution:根据官方的提示,这关有一个Crontab脚本,它会每间隔两分钟自动执行/home/flag03下的writablel.sh。(可以用nebula账号登录系统,通过sudo ls /var/spool/cron/crontabs看到Crontab的设置) crontab 是 Linux/Unix 系统中用来定时执行任务的一种机制,全称是 “cron table”。 它允许你按照设定的时间表,自动执行命令或脚本 —— 类似“闹钟”或“自动任务计划”。 而writable.sh内容如下: #!/bin/shfor i in /home/flag03/writable.d/*;do (ulimit -t 5;bash -x "$i") rm -f...
Exploit-Excercise-Nebula-2
Level 02——环境变量注入详情:以下程序中存在一个允许任意程序执行的漏洞,你能找到它吗?要执行此级别,请使用 level02 帐户和密码登录。此级别的文件位于 /home/flag02。 这关的程序存在一个可执行任意程序的漏洞,题目提供了完整的源码: #include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <stdio.h>int main(int argc, char **argv, char **envp){ char *buffer; gid_t gid; uid_t uid; gid = getegid(); uid = geteuid(); setresgid(gid, gid, gid); setresuid(uid, uid, uid); buffer = NULL; asprintf(&buffer, "/bin/echo...
Exploit-Excercise-Nebula-1
Level 01——环境变量的利用详情:以下程序中存在一个允许任意程序执行的漏洞,你能找到它吗?要执行此级别,请使用 level01 帐户和密码登录。此级别的文件位于 /home/flag01。 flag01的源码官方已经提供,这道题目是让我们分析该代码,找出代码中存在的一处可执行任意文件漏洞。题目提供的代码如下: #include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <stdio.h>int main(int argc, char **argv, char **envp){ gid_t gid; uid_t uid; gid = getegid(); uid = geteuid(); setresgid(gid, gid, gid); setresuid(uid, uid, uid); system("/usr/bin/env echo and now...
Exploit-Excercise-Nebula-0
前言Exploit-Exercise是一个Linux平台下漏洞挖掘、分析的练习平台。下载地址 官方提供了个很多虚拟机、文档、挑战题目,用于学习各种计算机安全问题,如权限提升、漏洞分析、Exploit开发、调试、逆向工程和通用的网络安全问题。 Level 00——寻找特权程序简介:这一关需要你找到一个以“flag00”账户运行的“设置用户 ID”程序。你也可以通过仔细检查/目录下的顶层目录中是否存在可疑目录来找到它。 Solution:根据题目描述,本关需要在系统中搜索一个设置了SUID的程序,这个程序将是以flag00身份运行的。 SUID(Set User ID)是 Linux 和 Unix 系统中一种特殊的文件权限机制,常用于可执行文件。它允许普通用户在运行该程序时临时获得该程序文件所有者的权限,通常是 root 权限。 要完成本关,需要掌握find命令的用法。find命令的格式如下: find [path...]...
HTTP协议漏洞分析
HTTP协议漏洞1. CVE-2021-31166跟CVE-2022-211907一样道理。 2. CVE-2022-21907前言“Accept-Encoding” HTTP 标头字段值具有以下格式: Accept-Encoding = #( codings [ weight ] )codings= content-coding / "identity" / "*"weight= ";q=" qvalueqvalue= ( "0" [ "." 0*3DIGIT ] ) / ( "1" [ "." 0*3("0") ] ) 示例“Accept-Encoding”标头如下: Accept-Encoding: gzipAccept-Encoding: identityAccept-Encoding: *Accept-Encoding: deflate, gzip;q=1.0,...