From 3edd7861738b9f7c43468d14765466413a9d34c5 Mon Sep 17 00:00:00 2001 From: starlitxiling <1754165401@qq.com> Date: Fri, 20 Sep 2024 12:37:14 +0800 Subject: [PATCH] Site updated: 2024-09-20 12:37:13 --- search.xml | 408 ++++++++++++++++++++++++++--------------------------- 1 file changed, 204 insertions(+), 204 deletions(-) diff --git a/search.xml b/search.xml index a53e1ae..c088a96 100644 --- a/search.xml +++ b/search.xml @@ -372,210 +372,6 @@

如果想装nixos,可以参考https://jackyliu16.github.io/blog/2023/dual-system-in-an515-54/

]]> - - LinuxLuminarium - /2024/07/30/LinuxLuminarium/ - 应该是今年为初学者新加的项目,不是很难,但是还是有很多不知道的,浅 浅 写了一遍收获还不错。题目旁边还多了个hacker,我记得以前只有solve来着,不知道什么意思,可能是更hacker的解决办法,心情爆炸来pwn看看还是不错的。

-

Hello Hackers

Intro to Commands

学会执行命令就行,直接

-
./hello
-




-

Intro to Arguments

在会执行命令的基础上学会给命令传参,这里我们可以看到/challenge/bin下面有两个文件,一个是hello,一个是hacker,题目说的很明白了要把hacker的参数传给hello,照做就行了。

-
./hello ./hacker
-

注意要在/challenge/bin目录下


-

Pondering Paths

The Root

一开始以为是

-
/challenge/bin/pwn
-

后面发现不对,然后看了一下/目录的,发现这个目录下也有一个pwn,所以直接

-
/pwn
-

即可


-

Program and aboslute paths

/challenge/run
-




-

Position thy self

/challenge/run
-

然后进入他提醒你要进入的目录再执行一次就行了。


-

Position elsewhere

Position thy self


-

Position yet elsewhere

Position thy self


-

implicit relative paths, from /

cd /
challenge/run
-

按照题目提示就行。


-

explicit relative paths, from /

cd /
./challenge/run
-

根据题名写题……


-

implicit relative paths

cd /challenge
./run
-




-

home sweet home

cd ~
touch a
/challenge/run ~/a
-

这里题目说了参数要少于3个字符,然后/目录又没有权限创建文件,所以在~目录下创建一个文件,然后作为参数传进去,这里题目要求了是要absolute path,又限制了参数字符数目,所以只能用~来代表/home/hacker。值得注意的点有~代表的是一个absolute path


-

Comprehending Commands

cat: not the pet, but the command!

/challenge/run	
cd /
cat flag
-

这里比较离谱的点是题目说flag file in your home directory,其实应该在~目录下,但是我是在/目录下找到的。


-

catting absolute paths

/challenge/run
cd /
cat flag
-




-

more catting practice

根据题目给的目录cat就好了,注意这个目录在最开始就给出了,要是clear掉了就重新刷新一下题目吧。


-

grepping for a needle in a haystack

grep pwn.college /challenge/data.txt
-




-

listing files

ls看一下/challenge下有什么再执行就行。


-

touching files

touch /tmp/pwn
touch /tmp/college
/challenge/run
-




-

removing files

rm delete_me
/challenge/check
-




-

hidden files

ls -a /
cat /.flag-224672682014244
-




-

An Epic Filesystem Quest

照着线索走就行,唯一要注意的就是有的目录会有很多文件,线索的文件名是全部大写的,看文件名全为大写的就行。


-

making directories

mkdir /tmp/pwn
touch /tmp/pwn/college
/challenge/run
-




-

finding files

find / -name flag
cat /flag
-




-

Digesting Documentation

Learning From Documentation

/challenge/challenge --giveflag
-




-

Learning Complex Usage

/challenge/challenge --printfile /flag
-




-

Reading Manuals

man challenge
-

然后跟着里面做就行,比如

-
/challenge/challenge --soqkid 821
-




-

Searching Manuals

man page里面搜flag就行,有一个参数是This argument will give you the flag!,用这个参数就可以拿到flag


-

Searching For Manuals

就是用man man去查man命令的查找参数,找到是-K之后就可以man -K /challenge/challlenge查看man page找argument获取flag了。注意这里是大写的K,且man -K会需要一点时间,不要以为是卡死了,是在正常检索。


-

Helpful Programs

/challenge/challenge -h
/challenge/challenge -p
-

这里会获得一个数字,然后把这个数字用来

-
/challenge/challenge -g NUMBER
-

这样就能获得flag了。


-

Help for Builtins

help challenge
challenge --secret NUMBER
-




-

File Globbing

Matching with *

cd /ch*
./run
-




-

Matching with ?

cd /?ha??enge
./run
-




-

Matching with []

cd /challenge/files
/challenge/run file_[bash]
-




-

Matching paths with []

/challenge/run /challenge/files/file_[bash]
-




-

Mixing globs

cd /challenge/files
/challenge/run [cep]*
-

这里要求要用括号,还要少于6个字符,感觉只能这样取巧了。


-

Exclusionary globbing

cd /challenge/files
/challenge/run [!pwn]*
-




-

Practicing Piping

Redirecting output

echo PWN > COLLEGE
-




-

Redirecting more output

/challenge/run > myflag
cat myflag
-




-

Appending output

/challenge/run >> /home/hacker/the-flag
-




-

Redirecting errors

/challenge/run > myflag 2> instructions
cat instructions
cat myflag
-

知道FD 2standard error就行。


-

Redirecting input

echo COLLEGE > PWN
/challenge/run < PWN
-




-

Grepping stored results

/challenge/run > /tmp/data.txt
cat /tmp/data.txt | grep pwn
-




-

Grepping live output

/challenge/run | grep pwn
-




-

Grepping errors

这里要表达的就是grep命令是捕获standard output而不是standard error,但是你可以将standard error重定向为standard output然后grep,你可以通过>&符号,它可以将一个文件描述符重定向为另一个文件描述符。所以你可以这样2>&1然后在通过|grep。如下:

-
/challenge/run 2>&1 | grep pwn
-




-

Duplicating piped data with tee

这里从man page中和教程中知道了tee命令是从读一个输入并输出到屏幕、文件和命令中。所以我们要先/challenge/pwn | tee pwn | /challenge/college,然后输出会在屏幕和pwn文件中,从pwn文件中,可以看到/challenge/pwn需要参数,所以加上参数传给/challenge/college就好了。

-
/challenge/pwn --secret sGFA5iZl | /challenge/college
-




-

Writing to multiple programs

使用tee往多个程序里写输入就好了。

-
/challenge/hack | tee >(/challenge/the) >(/challenge/planet)
-




-

Shell Variables

Printing Variables

echo $FLAG
-




-

Setting Variables

PWN=COLLEGE
-




-

Multi-word Variables

PWN="COLLEGE YEAH"
-




-

Exporting Variables

export PWN=COLLEGE
COLLEGE=PWN
/challenge/run
-




-

Printing Exported Variables

env | grep pwn.college
-




-

Storing Command Output

PWN=$(/challenge/run)
echo $PWN
-




-

Reading Input

read -p "INPUT: " PWN
COLLEGE
-

使用read -p去指定一个环境变量的值,中间的引号内容可以改变,但是不能去掉,即不能直接read -p PWN


-

Reading Files

read PWN < /challenge/read_me
-




-

Processes and Jobs

Listing Processes

ps -aux 
/challenge/17200-run-5626
-




-

Killing Processes

ps -aux | grep challenge
kill 44
kill 64
/challenge/run
-




-

Interrupting Processes

/challenge/run
Ctrl + c(send "interrupt" )
-




-

Suspending Processes

/challenge/run
Ctrl + z (suspend processes to the background)
/challenge/run
-




-

Resuming Processes

/challenge/run
Ctrl + z
fg (将后台命令提到前台)
-




-

Backgrounding Processes

/challenge/run
Ctrl + z
bg
/challenge/run
-




-

Foregrounding Processes

/challenge/run
bg
fg
-




-

Starting Backgrounded Processes

/challenge/run &
-




-

Perceiving Permissions

Changing File Ownership

chown hacker /flag
cat /flag
-




-

Groups and Files

chgrp hacker /flag
cat /flag
-




-

Fun With Groups Names

id
chgrp grp26348 /flag
cat /flag
-




-

Changing Permissions

chmod 0666 /flag
cat /flag
-




-

Executable Files

chmod 777 /challenge/run
/challenge/run
-




-

Permission Tweaking Practice

学会用chmod改权限就行,这里我全程用的421,其他的真不会。。。。。。



-

Permissions Setting Practice

chmod u=rx,g=w,o=x /challenge/pwn
-

按照这个模板根据要求改权限就好了。


-

The SUID Bit

s指的是被设置了SUID之后可以被执行的程序。

-
chmod u+s /challenge/getroot
/challenge/getroot
cat /flag
-

SUID



-

Untangling Users

Becoming root with su

su
hack-the-planet
cat /flag
-




-

Other users with su

su zardus
/challenge/run
-




-

Cracking passwords

john /challenge/shadow-leak (wait a few minutes)
su zardus
aardvark
/challenge/run
-




-

Using sudo

sudo cat /flag
-




-

Chaining Commands

Chaining with Semicolons

/challenge/pwn; /challenge/college
-




-

Your First Shell Script

vim x.sh
/challenge/pwn; /challenge/college

bash x.sh
-




-

Redirecting Script Output

bash x.sh | /challenge/solve
-




-

Executable Shell Scripts

vim script.sh
#!/bin/bash
/challenge/solve
chmod +x script.sh
./script.sh
-




-

Pondering PATH

The PATH Variable

PATH=""
/challenge/run
-

原来ls命令是从变量里面读取当前路径的。


-

Setting PATH

PATH=/challenge/more_commands
/challenge/run
-




-

Adding Commands

mkdir myscript
vim ~/myscript/win
#!/bin/bash
/run/current-system/sw/bin/cat /flag

PATH="~/myscript"
/challenge/run
-




-

Hijacking Commands

vim ~/myscript/rm
#!/bin/bash
/run/current-system/sw/bin/cat /flag

PATH="~/myscript"
/challenge/run
-

说的很明显了。


-]]>
- - pwn - -
- - Math Formula - /2024/09/14/Math-Formula/ - 泰勒展开式通用格式:

-

常用的麦克劳林公式:

-

-

-

-

-

-

-

-

常用的积分公式:

-

-

-

-

-

-

-

-

-

-

积分计算的话,一些比较不太正常的次方考虑用三角函数去代换,根据次方里面的东西画个直角三角图辅助一下就好。分数中分子次数比分母高的,可以考虑拆分或者凑平方差公式。分母次数比分子高的一般是有理函数一样处理或者基本公式。纯三角函数的分数考虑分母提取,比如,如果是两个三角函数相乘考虑使用积化和差 。指数函数也是考虑提取一个指数函数出来,然后看看什么形式是否可以凑出一个约掉分母式子的东西。有理函数的积分使用待定系数法,想办法分解。最后就是分步积分和代换。

-]]>
- - Examine - -
Program Interaction /2023/10/26/Interaction/ @@ -1043,6 +839,210 @@ pwn + + LinuxLuminarium + /2024/07/30/LinuxLuminarium/ + 应该是今年为初学者新加的项目,不是很难,但是还是有很多不知道的,浅 浅 写了一遍收获还不错。题目旁边还多了个hacker,我记得以前只有solve来着,不知道什么意思,可能是更hacker的解决办法,心情爆炸来pwn看看还是不错的。

+

Hello Hackers

Intro to Commands

学会执行命令就行,直接

+
./hello
+




+

Intro to Arguments

在会执行命令的基础上学会给命令传参,这里我们可以看到/challenge/bin下面有两个文件,一个是hello,一个是hacker,题目说的很明白了要把hacker的参数传给hello,照做就行了。

+
./hello ./hacker
+

注意要在/challenge/bin目录下


+

Pondering Paths

The Root

一开始以为是

+
/challenge/bin/pwn
+

后面发现不对,然后看了一下/目录的,发现这个目录下也有一个pwn,所以直接

+
/pwn
+

即可


+

Program and aboslute paths

/challenge/run
+




+

Position thy self

/challenge/run
+

然后进入他提醒你要进入的目录再执行一次就行了。


+

Position elsewhere

Position thy self


+

Position yet elsewhere

Position thy self


+

implicit relative paths, from /

cd /
challenge/run
+

按照题目提示就行。


+

explicit relative paths, from /

cd /
./challenge/run
+

根据题名写题……


+

implicit relative paths

cd /challenge
./run
+




+

home sweet home

cd ~
touch a
/challenge/run ~/a
+

这里题目说了参数要少于3个字符,然后/目录又没有权限创建文件,所以在~目录下创建一个文件,然后作为参数传进去,这里题目要求了是要absolute path,又限制了参数字符数目,所以只能用~来代表/home/hacker。值得注意的点有~代表的是一个absolute path


+

Comprehending Commands

cat: not the pet, but the command!

/challenge/run	
cd /
cat flag
+

这里比较离谱的点是题目说flag file in your home directory,其实应该在~目录下,但是我是在/目录下找到的。


+

catting absolute paths

/challenge/run
cd /
cat flag
+




+

more catting practice

根据题目给的目录cat就好了,注意这个目录在最开始就给出了,要是clear掉了就重新刷新一下题目吧。


+

grepping for a needle in a haystack

grep pwn.college /challenge/data.txt
+




+

listing files

ls看一下/challenge下有什么再执行就行。


+

touching files

touch /tmp/pwn
touch /tmp/college
/challenge/run
+




+

removing files

rm delete_me
/challenge/check
+




+

hidden files

ls -a /
cat /.flag-224672682014244
+




+

An Epic Filesystem Quest

照着线索走就行,唯一要注意的就是有的目录会有很多文件,线索的文件名是全部大写的,看文件名全为大写的就行。


+

making directories

mkdir /tmp/pwn
touch /tmp/pwn/college
/challenge/run
+




+

finding files

find / -name flag
cat /flag
+




+

Digesting Documentation

Learning From Documentation

/challenge/challenge --giveflag
+




+

Learning Complex Usage

/challenge/challenge --printfile /flag
+




+

Reading Manuals

man challenge
+

然后跟着里面做就行,比如

+
/challenge/challenge --soqkid 821
+




+

Searching Manuals

man page里面搜flag就行,有一个参数是This argument will give you the flag!,用这个参数就可以拿到flag


+

Searching For Manuals

就是用man man去查man命令的查找参数,找到是-K之后就可以man -K /challenge/challlenge查看man page找argument获取flag了。注意这里是大写的K,且man -K会需要一点时间,不要以为是卡死了,是在正常检索。


+

Helpful Programs

/challenge/challenge -h
/challenge/challenge -p
+

这里会获得一个数字,然后把这个数字用来

+
/challenge/challenge -g NUMBER
+

这样就能获得flag了。


+

Help for Builtins

help challenge
challenge --secret NUMBER
+




+

File Globbing

Matching with *

cd /ch*
./run
+




+

Matching with ?

cd /?ha??enge
./run
+




+

Matching with []

cd /challenge/files
/challenge/run file_[bash]
+




+

Matching paths with []

/challenge/run /challenge/files/file_[bash]
+




+

Mixing globs

cd /challenge/files
/challenge/run [cep]*
+

这里要求要用括号,还要少于6个字符,感觉只能这样取巧了。


+

Exclusionary globbing

cd /challenge/files
/challenge/run [!pwn]*
+




+

Practicing Piping

Redirecting output

echo PWN > COLLEGE
+




+

Redirecting more output

/challenge/run > myflag
cat myflag
+




+

Appending output

/challenge/run >> /home/hacker/the-flag
+




+

Redirecting errors

/challenge/run > myflag 2> instructions
cat instructions
cat myflag
+

知道FD 2standard error就行。


+

Redirecting input

echo COLLEGE > PWN
/challenge/run < PWN
+




+

Grepping stored results

/challenge/run > /tmp/data.txt
cat /tmp/data.txt | grep pwn
+




+

Grepping live output

/challenge/run | grep pwn
+




+

Grepping errors

这里要表达的就是grep命令是捕获standard output而不是standard error,但是你可以将standard error重定向为standard output然后grep,你可以通过>&符号,它可以将一个文件描述符重定向为另一个文件描述符。所以你可以这样2>&1然后在通过|grep。如下:

+
/challenge/run 2>&1 | grep pwn
+




+

Duplicating piped data with tee

这里从man page中和教程中知道了tee命令是从读一个输入并输出到屏幕、文件和命令中。所以我们要先/challenge/pwn | tee pwn | /challenge/college,然后输出会在屏幕和pwn文件中,从pwn文件中,可以看到/challenge/pwn需要参数,所以加上参数传给/challenge/college就好了。

+
/challenge/pwn --secret sGFA5iZl | /challenge/college
+




+

Writing to multiple programs

使用tee往多个程序里写输入就好了。

+
/challenge/hack | tee >(/challenge/the) >(/challenge/planet)
+




+

Shell Variables

Printing Variables

echo $FLAG
+




+

Setting Variables

PWN=COLLEGE
+




+

Multi-word Variables

PWN="COLLEGE YEAH"
+




+

Exporting Variables

export PWN=COLLEGE
COLLEGE=PWN
/challenge/run
+




+

Printing Exported Variables

env | grep pwn.college
+




+

Storing Command Output

PWN=$(/challenge/run)
echo $PWN
+




+

Reading Input

read -p "INPUT: " PWN
COLLEGE
+

使用read -p去指定一个环境变量的值,中间的引号内容可以改变,但是不能去掉,即不能直接read -p PWN


+

Reading Files

read PWN < /challenge/read_me
+




+

Processes and Jobs

Listing Processes

ps -aux 
/challenge/17200-run-5626
+




+

Killing Processes

ps -aux | grep challenge
kill 44
kill 64
/challenge/run
+




+

Interrupting Processes

/challenge/run
Ctrl + c(send "interrupt" )
+




+

Suspending Processes

/challenge/run
Ctrl + z (suspend processes to the background)
/challenge/run
+




+

Resuming Processes

/challenge/run
Ctrl + z
fg (将后台命令提到前台)
+




+

Backgrounding Processes

/challenge/run
Ctrl + z
bg
/challenge/run
+




+

Foregrounding Processes

/challenge/run
bg
fg
+




+

Starting Backgrounded Processes

/challenge/run &
+




+

Perceiving Permissions

Changing File Ownership

chown hacker /flag
cat /flag
+




+

Groups and Files

chgrp hacker /flag
cat /flag
+




+

Fun With Groups Names

id
chgrp grp26348 /flag
cat /flag
+




+

Changing Permissions

chmod 0666 /flag
cat /flag
+




+

Executable Files

chmod 777 /challenge/run
/challenge/run
+




+

Permission Tweaking Practice

学会用chmod改权限就行,这里我全程用的421,其他的真不会。。。。。。



+

Permissions Setting Practice

chmod u=rx,g=w,o=x /challenge/pwn
+

按照这个模板根据要求改权限就好了。


+

The SUID Bit

s指的是被设置了SUID之后可以被执行的程序。

+
chmod u+s /challenge/getroot
/challenge/getroot
cat /flag
+

SUID



+

Untangling Users

Becoming root with su

su
hack-the-planet
cat /flag
+




+

Other users with su

su zardus
/challenge/run
+




+

Cracking passwords

john /challenge/shadow-leak (wait a few minutes)
su zardus
aardvark
/challenge/run
+




+

Using sudo

sudo cat /flag
+




+

Chaining Commands

Chaining with Semicolons

/challenge/pwn; /challenge/college
+




+

Your First Shell Script

vim x.sh
/challenge/pwn; /challenge/college

bash x.sh
+




+

Redirecting Script Output

bash x.sh | /challenge/solve
+




+

Executable Shell Scripts

vim script.sh
#!/bin/bash
/challenge/solve
chmod +x script.sh
./script.sh
+




+

Pondering PATH

The PATH Variable

PATH=""
/challenge/run
+

原来ls命令是从变量里面读取当前路径的。


+

Setting PATH

PATH=/challenge/more_commands
/challenge/run
+




+

Adding Commands

mkdir myscript
vim ~/myscript/win
#!/bin/bash
/run/current-system/sw/bin/cat /flag

PATH="~/myscript"
/challenge/run
+




+

Hijacking Commands

vim ~/myscript/rm
#!/bin/bash
/run/current-system/sw/bin/cat /flag

PATH="~/myscript"
/challenge/run
+

说的很明显了。


+]]>
+ + pwn + +
+ + Math Formula + /2024/09/14/Math-Formula/ + 泰勒展开式通用格式:

+

常用的麦克劳林公式:

+

+

+

+

+

+

+

+

常用的积分公式:

+

+

+

+

+

+

+

+

+

+

积分计算的话,一些比较不太正常的次方考虑用三角函数去代换,根据次方里面的东西画个直角三角图辅助一下就好。分数中分子次数比分母高的,可以考虑拆分或者凑平方差公式。分母次数比分子高的一般是有理函数一样处理或者基本公式。纯三角函数的分数考虑分母提取,比如,如果是两个三角函数相乘考虑使用积化和差 。指数函数也是考虑提取一个指数函数出来,然后看看什么形式是否可以凑出一个约掉分母式子的东西。有理函数的积分使用待定系数法,想办法分解。最后就是分步积分和代换。

+]]>
+ + Examine + +
Program Misuse /2023/09/24/ProgramMisuse/