åå ã¯ãpicoCTF ã® picoCTF 2024 ã®ãã¡ãReverse Engineering ããã£ã¦ã¿ã¾ãããå
¨7åã®ãã¡ãWindowsããã°ã©ã ã® 3åã¯å¾åãã«ãã¾ããã
ä»åã¯ãå¼ãç¶ããpicoCTF ã® picoCTF 2024 ã®ãã¡ãGeneral Skills ã¨ããã«ãã´ãªã®å
¨10åããã£ã¦ããããã¨æãã¾ããMedium ã 2åã§ãã
ããã§ã¯ããã£ã¦ããã¾ãã
ã¯ããã«
ãã»ãã¥ãªãã£ãã®è¨äºä¸è¦§ã§ããè¯ãã£ããåèã«ãã¦ãã ããã
ã»ãã¥ãªãã£ã®è¨äºä¸è¦§
picoCTF ã®å
¬å¼ãµã¤ãã¯ä»¥ä¸ã§ããè±èªã®ãµã¤ãã§ãããã·ã³ãã«ã§åãããããã®ã§å°ããã«é²ãããã¨ãã§ãã¾ãã
picoctf.com
ããã§ã¯ããã£ã¦ããã¾ãã
picoCTF 2024ï¼General Skills
ãã¤ã³ãã®ä½ãé ã«ãã£ã¦ããã¾ãã
Super SSHï¼25ãã¤ã³ãï¼
Easy ã®åé¡ã§ãããµã¼ãï¼ã¤ã³ã¹ã¿ã³ã¹ï¼ãèµ·åããã¨ããããå§ã¾ãããã§ãã
æ©éãSSH ã§æ¥ç¶ãã¦ã¿ã¾ããããæ¥ç¶ããã ãã§ãã©ã°ãåãã¾ããããã¥ã¼ããªã¢ã«çãªæãã§ãããã
$ ssh [email protected] -p 54075
The authenticity of host '[titan.picoctf.net]:54075 ([3.139.174.234]:54075)' can't be established.
ED25519 key fingerprint is SHA256:4S9EbTSSRZm32I+cdM5TyzthpQryv5kudRP9PIKT7XQ.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[titan.picoctf.net]:54075' (ED25519) to the list of known hosts.
[email protected]'s password:
Welcome ctf-player, here's your flag: picoCTF{s3cur3_c0nn3ct10n_45a48857}
Connection to titan.picoctf.net closed.
Commitment Issuesï¼50ãã¤ã³ãï¼
Easy ã®åé¡ã§ãããã¤ããªãã¡ã¤ã«ï¼challenge.zipï¼ã 1ã¤ãã¦ã³ãã¼ãã§ãã¾ãã
解åãã¦ã¿ãã¨ãããã¹ããã¡ã¤ã«ï¼message.txtï¼ã¨ã.git
ãã£ã¬ã¯ããªãå
¥ã£ã¦ãã¾ããã
ã²ã¨ã¾ããgit ã§æ¥ç¶ãã¦ã¿ã¾ãã2åã®ã³ããããããã¾ãããdiff ãè¦ã¾ãããã©ã°ãããã¾ããã
$ git log
commit e1237df82d2e69f62dd53279abc1c8aeb66f6d64 (HEAD -> master)
Author: picoCTF <[email protected]>
Date: Sat Mar 9 21:10:14 2024 +0000
remove sensitive info
commit 3d5ec8a26ee7b092a1760fea18f384c35e435139
Author: picoCTF <[email protected]>
Date: Sat Mar 9 21:10:14 2024 +0000
create flag
$ git diff 3d5ec8a26ee7b092a1760fea18f384c35e435139..e1237df82d2e69f62dd53279abc1c8aeb66f6d64diff --git a/message.txt b/message.txt
index 96f7309..d552d1e 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1 @@
-picoCTF{s@n1t1z3_30e86d36}
+TOP SECRET
Time Machineï¼50ãã¤ã³ãï¼
Easy ã®åé¡ã§ãããã¤ããªãã¡ã¤ã«ï¼challenge.zipï¼ã 1ã¤ãã¦ã³ãã¼ãã§ãã¾ãã
解åãã¦ã¿ãã¨ãåãããããã¹ããã¡ã¤ã«ï¼message.txtï¼ã¨ã.git
ãã£ã¬ã¯ããªãå
¥ã£ã¦ãã¾ããã
ã§ã¯ãgit ã§æ¥ç¶ãã¦ã¿ã¾ãã1åã®ã³ãããããããã³ãããã¡ãã»ã¼ã¸ã«ããã©ã°ãæ¸ããã¦ãã¾ãããããã«ç°¡åãããã®ã§ãdiff ãè¦ã¦ããã¾ããä½ããªãã£ãã§ãã
$ git log
commit 3339c144a0c78dc2fbd3403d2fb37d3830be5d94 (HEAD -> master)
Author: picoCTF <[email protected]>
Date: Sat Mar 9 21:10:22 2024 +0000
picoCTF{t1m3m@ch1n3_d3161c0f}
$ git show
commit 3339c144a0c78dc2fbd3403d2fb37d3830be5d94 (HEAD -> master)
Author: picoCTF <[email protected]>
Date: Sat Mar 9 21:10:22 2024 +0000
picoCTF{t1m3m@ch1n3_d3161c0f}
diff --git a/message.txt b/message.txt
new file mode 100644
index 0000000..4324621
--- /dev/null
+++ b/message.txt
@@ -0,0 +1 @@
+This is what I was working on, but I'd need to look at my commit history to know why...
\ No newline at end of file
Blame Gameï¼75ãã¤ã³ãï¼
Easy ã®åé¡ã§ãããã¤ããªãã¡ã¤ã«ï¼challenge.zipï¼ã 1ã¤ãã¦ã³ãã¼ãã§ãã¾ãã
解åãã¦ã¿ãã¨ãåãããããã¹ããã¡ã¤ã«ï¼message.txtï¼ã¨ã.git
ãã£ã¬ã¯ããªãå
¥ã£ã¦ãã¾ããã
ã§ã¯ãgit ã§æ¥ç¶ãã¦ã¿ã¾ããä»åº¦ã¯ããããã®ã³ããããããã¾ãã
åã³ãããã®ãã¡ã¤ã«å·®åã表示ãã¾ãããã¼ããå·®åã«ãã©ã°ã¯å«ã¾ãã¦ãªãããã§ããã¨ããè¦ããããã©ã°ã表示ããã¦ã¾ããã
$ git log --stat --oneline --graph --decorate --all
* ee09a4c (HEAD -> master) important business work
* 7d196f4 important business work
* 4d6ef56 important business work
* f901ef0 important business work
ï¼ä¸ç¥ï¼
* 5241c8d important business work
* fadeca9 optimize file size of prod code
| message.py | 2 +-
| 1 file changed, 1 insertion(+), 1 deletion(-)
* 2dd4676 create top secret project
message.py | 1 +
1 file changed, 1 insertion(+)
$ git show fadeca9
commit fadeca9476b6713ec8cdda633aca9e9aebffc698
Author: picoCTF{@sk_th3_1nt3rn_e9957ce1} <[email protected]>
Date: Sat Mar 9 21:09:11 2024 +0000
optimize file size of prod code
diff --git a/message.py b/message.py
index 7df869a..326544a 100644
--- a/message.py
+++ b/message.py
@@ -1 +1 @@
-print("Hello, World!")
+print("Hello, World!"
$ git show 2dd4676
commit 2dd46769e2d65656bb14aed0ff5d3237daaa7d9d
Author: picoCTF <[email protected]>
Date: Sat Mar 9 21:09:11 2024 +0000
create top secret project
diff --git a/message.py b/message.py
new file mode 100644
index 0000000..7df869a
--- /dev/null
+++ b/message.py
@@ -0,0 +1 @@
+print("Hello, World!")
Blame Gameï¼è²¬ä»»è»¢å«ï¼ã¨ããæå³ããããgitã³ãã³ãã«ã blame ã¨ããã®ãããã¾ãããããã使ãã¨ä¸ç¬ã§ããã
$ git blame message.py
fadeca94 (picoCTF{@sk_th3_1nt3rn_e9957ce1} 2024-03-09 21:09:11 +0000 1) print("Hello, World!"
Collaborative Developmentï¼75ãã¤ã³ãï¼
Easy ã®åé¡ã§ãããã¤ããªãã¡ã¤ã«ï¼challenge.zipï¼ã 1ã¤ãã¦ã³ãã¼ãã§ãã¾ãã
解åãã¦ã¿ãã¨ãä»åº¦ã¯ãPythonã¹ã¯ãªããï¼ï¼flag.pyï¼ã¨ã.git
ãã£ã¬ã¯ããªãå
¥ã£ã¦ãã¾ããã
Pythonã¹ã¯ãªããã«æå³ã¯ãªãããã§ãã
$ cat flag.py
print("Printing the flag...")
$ git log
commit 54c7842e34d03976ddc080a9dd76742751024358 (HEAD -> main)
Author: picoCTF <[email protected]>
Date: Sat Mar 9 21:09:44 2024 +0000
init flag printer
$ git show 54c7842e34d03976ddc080a9dd76742751024358
commit 54c7842e34d03976ddc080a9dd76742751024358 (HEAD -> main)
Author: picoCTF <[email protected]>
Date: Sat Mar 9 21:09:44 2024 +0000
init flag printer
diff --git a/flag.py b/flag.py
new file mode 100644
index 0000000..77d6cec
--- /dev/null
+++ b/flag.py
@@ -0,0 +1 @@
+print("Printing the flag...")
.git ã®ãã£ã¬ã¯ããªå«ãã¦ãå
¨æ¤ç´¢ãã¦ã¿ã¾ãããã¼ããããããããã®ã¯ç¡ãããã§ãã
$ find . -type f -print | xargs grep pico
./.git/logs/HEAD:0000000000000000000000000000000000000000 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018584 +0000 commit (initial): init flag printer
./.git/logs/HEAD:54c7842e34d03976ddc080a9dd76742751024358 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018584 +0000 checkout: moving from main to feature/part-1
./.git/logs/HEAD:54c7842e34d03976ddc080a9dd76742751024358 f65544e4f1511fe1d1dfff03c4d65869da039b8e picoCTF <[email protected]> 1710018585 +0000 commit: add part 1
./.git/logs/HEAD:f65544e4f1511fe1d1dfff03c4d65869da039b8e 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018585 +0000 checkout: moving from feature/part-1 to main
./.git/logs/HEAD:54c7842e34d03976ddc080a9dd76742751024358 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018585 +0000 checkout: moving from main to feature/part-2
./.git/logs/HEAD:54c7842e34d03976ddc080a9dd76742751024358 d3563a2c62ab2c95c5c13f3377cc6d79b2411c22 picoCTF <[email protected]> 1710018585 +0000 commit: add part 2
./.git/logs/HEAD:d3563a2c62ab2c95c5c13f3377cc6d79b2411c22 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018585 +0000 checkout: moving from feature/part-2 to main
./.git/logs/HEAD:54c7842e34d03976ddc080a9dd76742751024358 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018585 +0000 checkout: moving from main to feature/part-3
./.git/logs/HEAD:54c7842e34d03976ddc080a9dd76742751024358 5c00b43f48516d7cc81ea1f497b4d43ae6a84c4c picoCTF <[email protected]> 1710018585 +0000 commit: add part 3
./.git/logs/HEAD:5c00b43f48516d7cc81ea1f497b4d43ae6a84c4c 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018585 +0000 checkout: moving from feature/part-3 to main
./.git/logs/refs/heads/main:0000000000000000000000000000000000000000 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018584 +0000 commit (initial): init flag printer
./.git/logs/refs/heads/feature/part-1:0000000000000000000000000000000000000000 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018584 +0000 branch: Created from HEAD
./.git/logs/refs/heads/feature/part-1:54c7842e34d03976ddc080a9dd76742751024358 f65544e4f1511fe1d1dfff03c4d65869da039b8e picoCTF <[email protected]> 1710018585 +0000 commit: add part 1
./.git/logs/refs/heads/feature/part-2:0000000000000000000000000000000000000000 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018585 +0000 branch: Created from HEAD
./.git/logs/refs/heads/feature/part-2:54c7842e34d03976ddc080a9dd76742751024358 d3563a2c62ab2c95c5c13f3377cc6d79b2411c22 picoCTF <[email protected]> 1710018585 +0000 commit: add part 2
./.git/logs/refs/heads/feature/part-3:0000000000000000000000000000000000000000 54c7842e34d03976ddc080a9dd76742751024358 picoCTF <[email protected]> 1710018585 +0000 branch: Created from HEAD
./.git/logs/refs/heads/feature/part-3:54c7842e34d03976ddc080a9dd76742751024358 5c00b43f48516d7cc81ea1f497b4d43ae6a84c4c picoCTF <[email protected]> 1710018585 +0000 commit: add part 3
git ã®æ©è½ã§è¦ã¦ããã¾ãããããã©ã³ããããããã§ãã
feature/part-1 㨠feature/part-2 㨠eature/part-3 ãã¤ãªãåãããã¨ãpicoCTF{t3@mw0rk_m@k3s_th3_dr3@m_w0rk_7ffa0077}
ã§ãã
$ git tag
$ git branch
feature/part-1
feature/part-2
feature/part-3
* main
$ git tree
* f65544e (feature/part-1) add part 1
| flag.py | 1 +
| 1 file changed, 1 insertion(+)
| * d3563a2 (feature/part-2) add part 2
|/
| flag.py | 2 ++
| 1 file changed, 2 insertions(+)
| * 5c00b43 (feature/part-3) add part 3
|/
| flag.py | 2 ++
| 1 file changed, 2 insertions(+)
* 54c7842 (HEAD -> main) init flag printer
flag.py | 1 +
1 file changed, 1 insertion(+)
$ git checkout feature/part-1
Switched to branch 'feature/part-1'
$ cat flag.py
print("Printing the flag...")
print("picoCTF{t3@mw0rk_", end='')
$ git checkout feature/part-2
Switched to branch 'feature/part-2'
$ cat flag.py
print("Printing the flag...")
print("m@k3s_th3_dr3@m_", end='')
$ git checkout feature/part-3
Switched to branch 'feature/part-3'
$ cat flag.py
print("Printing the flag...")
print("w0rk_7ffa0077}")
binhexaï¼100ãã¤ã³ãï¼
Easy ã®åé¡ã§ãããµã¼ãï¼ã¤ã³ã¹ã¿ã³ã¹ï¼ãèµ·åããã¨ããããå§ã¾ãããã§ãã
ã¨ã«ããæ¥ç¶ãã¦ã¿ã¾ããé çªã«åçããã°è¯ãããã§ããPython ã使ãã°æ¥½åã§ãã
$ nc titan.picoctf.net 51548
Welcome to the Binary Challenge!"
Your task is to perform the unique operations in the given order and find the final result in hexadecimal that yields the f
Binary Number 1: 10011011
Binary Number 2: 10100000
Question 1/6:
Operation 1: '*'
Perform the operation on Binary Number 1&2.
Enter the binary result: 0b110000011100000
Correct!
Question 2/6:
Operation 2: '>>'
Perform a right shift of Binary Number 2 by 1 bits .
Enter the binary result: 0b1010000
Correct!
Question 3/6:
Operation 3: '+'
Perform the operation on Binary Number 1&2.
Enter the binary result: 0b100111011
Correct!
Question 4/6:
Operation 4: '<<'
Perform a left shift of Binary Number 1 by 1 bits.
Enter the binary result: 0b100110110
Correct!
Question 5/6:
Operation 5: '&'
Perform the operation on Binary Number 1&2.
Enter the binary result: 0b10000000
Correct!
Question 6/6:
Operation 6: '|'
Perform the operation on Binary Number 1&2.
Enter the binary result: 0b10111011
Correct!
Enter the results of the last operation in hexadecimal: 0xbb
Correct answer!
The flag is: picoCTF{b1tw^3se_0p3eR@tI0n_su33essFuL_6ab1ad84}
Pythonå´ãè²¼ã£ã¦ããã¾ããããããã¦ãèªåã§è¨ç®ããªãã¨ãã¡ãªåé¡ã§ããã§ããããï¼ç¬ï¼ã
>>> bin(0b10011011 * 0b10100000)
'0b110000011100000'
>>> bin(0b10100000>>1)
'0b1010000'
>>> bin(0b10011011 + 0b10100000)
'0b100111011'
>>> bin(0b10011011<<1)
'0b100110110'
>>> bin(0b10011011 & 0b10100000)
'0b10000000'
>>> bin(0b10011011 | 0b10100000)
'0b10111011'
>>> hex(0b10111011)
'0xbb'
Binary Searchï¼100ãã¤ã³ãï¼
Easy ã®åé¡ã§ãããã¤ããªãã¡ã¤ã«ï¼challenge.zipï¼ã 1ã¤ãã¦ã³ãã¼ãã§ãã¾ãã
解åãã¦ã¿ãã¨ãã·ã§ã«ã¹ã¯ãªãããå
¥ã£ã¦ã¾ããããªãã»ã©ã1 ãã 1000 ã¾ã§ã®æ°åãã©ã³ãã ã§é¸ã°ãã¦ããããäºåæ¢ç´¢ã§çãã¦ããã¨ãããã¨ã§ããããã
target=$(( (RANDOM % 1000) + 1 ))
echo "Welcome to the Binary Search Game!"
echo "I'm thinking of a number between 1 and 1000."
trap 'echo "Exiting is not allowed."' INT
trap '' SIGQUIT
trap '' SIGTSTP
MAX_GUESSES=10
guess_count=0
while (( guess_count < MAX_GUESSES )); do
read -p "Enter your guess: " guess
if ! [[ "$guess" =~ ^[0-9]+$ ]]; then
echo "Please enter a valid number."
continue
fi
(( guess_count++ ))
if (( guess < target )); then
echo "Higher! Try again."
elif (( guess > target )); then
echo "Lower! Try again."
else
echo "Congratulations! You guessed the correct number: $target"
flag=$(cat /challenge/metadata.json | jq -r '.flag')
echo "Here's your flag: $flag"
exit 0
fi
done
echo "Sorry, you've exceeded the maximum number of guesses."
exit 1
æ©éãã£ã¦ã¿ã¾ããã®ãªã®ãªããã¾ããããããããã®ãªãã§ãããï¼
$ ssh -p 55589 [email protected]
[email protected]'s password:
Welcome to the Binary Search Game!
I'm thinking of a number between 1 and 1000.
Enter your guess: 500
Higher! Try again.
Enter your guess: 750
Lower! Try again.
Enter your guess: 625
Higher! Try again.
Enter your guess: 687
Higher! Try again.
Enter your guess: 718
Lower! Try again.
Enter your guess: 702
Lower! Try again.
Enter your guess: 694
Lower! Try again.
Enter your guess: 690
Higher! Try again.
Enter your guess: 692
Lower! Try again.
Enter your guess: 691
Congratulations! You guessed the correct number: 691
Here's your flag: picoCTF{g00d_gu355_bee04a2a}
Connection to atlas.picoctf.net closed.
endiannessï¼200ãã¤ã³ãï¼
Easy ã®åé¡ã§ããCè¨èªã®ã½ã¼ã¹ã³ã¼ãï¼flag.cï¼ã 1ã¤ãã¦ã³ãã¼ãã§ãã¾ãã
ã¾ãã¯ããã«ããã¦å®è¡ãã¦ã¿ã¾ãããªãã»ã©ãè¦é ã¯åããã¾ããã
$ gcc -o flag.out flag.c
$ ./flag.out
Welcome to the Endian CTF!
You need to find both the little endian and big endian representations of a word.
If you get both correct, you will receive the flag.
Word: syamq
Enter the Little Endian representation: 716D617973
Correct Little Endian representation!
Enter the Big Endian representation: 7379616D71
Correct Big Endian representation!
Flag not found. Please run this on the server
Python ã®æ¹ãè²¼ã£ã¦ããã¾ãã
>>> ''.join([f"{ord(a):X}" for a in "qmays"])
'716D617973'
>>> ''.join([f"{ord(a):X}" for a in "syamq"])
'7379616D71'
ãµã¼ãã®æ¹ãåãããã«ããã¨ããã©ã°ãåãã¾ããã
dont-you-love-bannersï¼300ãã¤ã³ãï¼
Medium ã®åé¡ã§ãããµã¼ãï¼ã¤ã³ã¹ã¿ã³ã¹ï¼ãèµ·åããã¨ããããå§ã¾ãããã§ãã
ã¾ãã¯ãæ¥ç¶ãã¦ã¿ã¾ãããªãã»ã©ãä¾µå
¥ç³»ã§ãããã
$ nc tethys.picoctf.net 55028
*************************************
**************WELCOME****************
*************************************
what is the password?
AAAAAAAA
Lol, good try, try again and good luck
ããä¸ã¤æ¥ç¶ãæ示ããã¦ãã¾ããããåããã¾ãããããã¹ã¯ã¼ãã£ã½ãã§ãã
$ nc tethys.picoctf.net 49159
SSH-2.0-OpenSSH_7.6p1 My_Passw@rd_@1234
select * from user
Protocol mismatch.
ããä¸åº¦æ¥ç¶ãã¾ãã質åã®åç㯠Web ã§æ¤ç´¢ããã¨ããã«çããåããã¾ããããã·ã§ã«ãåãã¾ãããããããæ¢ãã¦ã¿ãã¨ã/root ã« flag.txt ãããã¾ãããèªã¿åã権éãããã¾ããã/root/script.py ãéãã¨ãä»åæ¥ç¶ããããã°ã©ã ã®ããã§ãã
passwd 㨠shadowãã¡ã¤ã«ã®æ¨©éãããããã§ããroot ã¯ãSHA512 ã®ããã·ã¥ã使ã£ã¦ãããã§ãã
$ nc tethys.picoctf.net 55028
*************************************
**************WELCOME****************
*************************************
what is the password?
My_Passw@rd_@1234
What is the top cyber security conference in the world?
DefCon
the first hacker ever was known for phreaking(making free phone calls), who was it?
John Draper
player@challenge:~$ player@challenge:~$ ls -alF
ls -alF
total 20
drwxr-xr-x 1 player player 20 Mar 9 2024 ./
drwxr-xr-x 1 root root 20 Mar 9 2024 ../
-rw-r--r-- 1 player player 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 player player 3771 Apr 4 2018 .bashrc
-rw-r--r-- 1 player player 807 Apr 4 2018 .profile
-rw-r--r-- 1 player player 114 Feb 7 2024 banner
-rw-r--r-- 1 root root 13 Feb 7 2024 text
player@challenge:~$ ls -alF /root
ls -alF /root
total 16
drwxr-xr-x 1 root root 6 Mar 12 2024 ./
drwxr-xr-x 1 root root 29 Oct 12 12:05 ../
-rw-r--r-- 1 root root 3106 Apr 9 2018 .bashrc
-rw-r--r-- 1 root root 148 Aug 17 2015 .profile
-rwx------ 1 root root 46 Mar 12 2024 flag.txt*
-rw-r--r-- 1 root root 1317 Feb 7 2024 script.py
player@challenge:~$ cat /root/flag.txt
cat /root/flag.txt
cat: /root/flag.txt: Permission denied
player@challenge:~$ cat /root/script.py
cat /root/script.py
import os
import pty
incorrect_ans_reply = "Lol, good try, try again and good luck\n"
if __name__ == "__main__":
try:
with open("/home/player/banner", "r") as f:
print(f.read())
except:
print("*********************************************")
print("***************DEFAULT BANNER****************")
print("*Please supply banner in /home/player/banner*")
print("*********************************************")
try:
request = input("what is the password? \n").upper()
while request:
if request == 'MY_PASSW@RD_@1234':
text = input("What is the top cyber security conference in the world?\n").upper()
if text == 'DEFCON' or text == 'DEF CON':
output = input(
"the first hacker ever was known for phreaking(making free phone calls), who was it?\n").upper()
if output == 'JOHN DRAPER' or output == 'JOHN THOMAS DRAPER' or output == 'JOHN' or output== 'DRAPER':
scmd = 'su - player'
pty.spawn(scmd.split(' '))
else:
print(incorrect_ans_reply)
else:
print(incorrect_ans_reply)
else:
print(incorrect_ans_reply)
break
except:
KeyboardInterrupt
player@challenge:~$ cat banner
cat banner
*************************************
**************WELCOME****************
*************************************
player@challenge:~$ cat text
cat text
keep digging
player@challenge:~$ ls -alF /etc/passwd
ls -alF /etc/passwd
-rw-r--r-- 1 root root 1246 Mar 9 2024 /etc/passwd
player@challenge:~$ ls -alF /etc/shadow
ls -alF /etc/shadow
-rw-r--r-- 1 root shadow 855 Mar 9 2024 /etc/shadow
player@challenge:~$ cat /etc/shadow
cat /etc/shadow
root:$6$6QFbdp2H$R0BGBJtG0DlGFx9H0AjuQNOhlcssBxApM.CjDEiNzfYkVeJRNy2d98SDURNebD5/l4Hu2yyVk.ePLNEg/56DV0:19791:0:99999:7:::
daemon:*:19507:0:99999:7:::
bin:*:19507:0:99999:7:::
sys:*:19507:0:99999:7:::
sync:*:19507:0:99999:7:::
games:*:19507:0:99999:7:::
man:*:19507:0:99999:7:::
lp:*:19507:0:99999:7:::
mail:*:19507:0:99999:7:::
news:*:19507:0:99999:7:::
uucp:*:19507:0:99999:7:::
proxy:*:19507:0:99999:7:::
www-data:*:19507:0:99999:7:::
backup:*:19507:0:99999:7:::
list:*:19507:0:99999:7:::
irc:*:19507:0:99999:7:::
gnats:*:19507:0:99999:7:::
nobody:*:19507:0:99999:7:::
_apt:*:19507:0:99999:7:::
systemd-network:*:19791:0:99999:7:::
systemd-resolve:*:19791:0:99999:7:::
messagebus:*:19791:0:99999:7:::
sshd:*:19791:0:99999:7:::
player:$6$BCCW51fi$UI/5W01uG2.6EmxktMtZXbJQwrgDlv213cLwu7RxaIQHnRZXwKZ3yjuyNKf86KlSwbvAOp3YozpNVrBeKW9Ls0:19791:0:99999:7:::
John the Ripper ã§ãã£ã¦ã¿ã¾ãããã解ãã¾ããã
$ john ./shadow --format=crypt
Created directory: /home/user/.john
Using default input encoding: UTF-8
Loaded 1 password hash (crypt, generic crypt(3) [?/64])
Cost 1 (algorithm [1:descrypt 2:md5crypt 3:sunmd5 4:bcrypt 5:sha256crypt 6:sha512crypt]) is 6 for all loaded hashes
Cost 2 (algorithm specific iterations) is 5000 for all loaded hashes
Will run 8 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:/usr/share/john/password.lst
iloveyou (root)
1g 0:00:00:02 DONE 2/3 (2024-10-12 21:55) 0.4566g/s 1437p/s 1437c/s 1437C/s 123456..pepper
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
ã§ã¯ãroot ã«ãã°ã¤ã³ãã¦ã¿ã¾ãããã©ã°ãåãã¾ããã
$ nc tethys.picoctf.net 60737
*************************************
**************WELCOME****************
*************************************
what is the password?
My_Passw@rd_@1234
What is the top cyber security conference in the world?
DefCon
the first hacker ever was known for phreaking(making free phone calls), who was it?
John Draper
player@challenge:~$ su root
su root
Password: iloveyou
root@challenge:/home/player
cat /root/flag.txt
picoCTF{b4nn3r_gr4bb1n9_su((3sfu11y_a0e119d4}
SansAlphaï¼400ãã¤ã³ãï¼
Medium ã®åé¡ã§ãããµã¼ãï¼ã¤ã³ã¹ã¿ã³ã¹ï¼ãèµ·åããã¨ããããå§ã¾ãããã§ãã
ã§ã¯ãæ¥ç¶ãã¾ãããã¼ããä½ãããããã§ããåé¡æã«ããããã«ãæ°åã¨è¨å·ãã使ããªããã§ããããã
$ ssh -p 49491 [email protected]
The authenticity of host '[mimas.picoctf.net]:49491 ([52.15.88.75]:49491)' can't be established.
ED25519 key fingerprint is SHA256:n/hDgUtuTTF85Id7k2fxmHvb6rrLrACHNM6xLZ46AqQ.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[mimas.picoctf.net]:49491' (ED25519) to the list of known hosts.
[email protected]'s password:
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 6.5.0-1016-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
SansAlpha$ hostname
SansAlpha: Unknown character detected
SansAlpha$ id
SansAlpha: Unknown character detected
æ°åã¨è¨å·ã ãã§ä½ãã§ããã§ããããããã¹ããªãå®è¡ãããããã§ããããããã¼ãããã¡ã£ã½ãã
SansAlpha$ !1
bash: !1: event not found
SansAlpha$ !2
bash: !2: event not found
SansAlpha$ !3
bash: !3: event not found
SansAlpha$ !4
bash: !4: event not found
SansAlpha$ !5
bash: !5: event not found
SansAlpha$ !6
bash: !6: event not found
SansAlpha$ !7
bash: !7: event not found
SansAlpha$ !0
bash: !0: event not found
é©å½ã«æã£ã¦ãããä½ãåºã¾ãããCtrl+D ãæ¼ãããä½ãåºã¾ãããPythonã¹ã¯ãªãããåãã¦ãããã§ãã
SansAlpha$ !
>
SansAlpha$ "
>
SansAlpha$ #
>
SansAlpha$ $
>
SansAlpha$ %
>
SansAlpha$ &
>
SansAlpha$ '
bash: $'\n\n"""\n"\n:\n.\n1+2\n1+2=\n1+2=3\n11111111111111111111111111111111111111111111111\n!!:s^\n-\n00\n|~=\n|\n~\n!!:s^=\n=\n!\n"\n#\n$\n%\n&\n': command not found
SansAlpha$
Traceback (most recent call last):
File "/usr/local/sansalpha.py", line 12, in <module>
if user_in[-1] != "\n":
IndexError: string index out of range
Connection to mimas.picoctf.net closed.
æ¤ç´¢ããã¨ãè¨å·ã¨æ°åã ãã§ããããåºæ¥ããããã§ãã
SansAlpha$ .
bash: .: filename argument required
.: usage: . filename [arguments]
SansAlpha$ __=$(__=â$(+ 2>&1)â;__=${__:13:3};${__} 2>&1);___=â$(/# 2>&1)â;____=${__:1:1}${___:22:1}${__:10:1}${__:10:1} __=$(__=â$(+ 2>&1)â;__=${__:13:3};${__} 2>&1);___=â$(/# 2>&1)â;____=${__:1:1}${___:22:1}${__:10:1}${__:10:1}$ __=$(__=â$(+ 2>&1)â;__=${__:13:3};${__} 2>&1);___=â$(/# 2>&1)â;____=${__:1:1}${___:22:1}${__:10:1}${__:10:1}${ __=$(__=â$(+ 2>&1)â;__=${__:13:3};${__} 2>&1);___=â$(/# 2>&1)â;____=${__:1:1}${___:22:1}${__:10:1}${__:10:1}${_ __=$(__=â$(+ 2>&1)â;__=${__:13:3};${__} 2>&1);___=â$(/# 2>&1)â;____=${__:1:1}${___:22:1}${__:10:1}${__:10:1}${__:18:2}${__:0:1}${___:24:2}${__:10:1}${__:17:1};____=â${____^}â;___=${___:30:2}${___:4:1}${___:12:1};${___} ${____}
âHemmenTormeâ
ãªãã»ã©ãåãã£ã¦ãã¾ããã以ä¸ã¯ã+
ãå®è¡ããã¨ãã®ã¡ãã»ã¼ã¸ï¼bash: +: command not found
ï¼ããå¤æ° __
ã«ä¿åãã¦ããã®ã¡ãã»ã¼ã¸ã®ãã¡ã12çªç®ãã3æåï¼man
ï¼ãåãåºãã¦ãæå¾ã«å®è¡ãã¦ãã¾ããããããã·ã¹ãã ã¯æå°åããã¦ã¦ manã³ãã³ãã¯ç¡ãã£ãããã§ããunminimizeã³ãã³ããå®è¡ã§ããã°ãããããåºæ¥ãããã«ãªãããã§ãã
SansAlpha$ +
bash: +: command not found
SansAlpha$ __="$(+ 2>&1)";__=${__:12:3};${__}
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, including manpages, you can run the 'unminimize'
command. You will still need to ensure the 'man-db' package is installed.
æåå unminimize ãæ§æããæåãä¸ã¨åãæãã§ä½ã£ã¦ããã¾ããun ã¯ãbash: +: command not found
ã®æå¾ã®æ¹ã«ããã®ã§ãããã ãåãåºãã¦å®è¡ãã¾ããun
ã ãåãåºãã¦ãããã¨ã確èªã§ãã¾ãã
SansAlpha$ __="$(- 2>&1)";__=${__:23:2};${__}
bash: un: command not found
åãè¦é ã§ãä¸ã® manã³ãã³ããå®è¡ããå ´åã®ã¡ãã»ã¼ã¸ã使ã£ã¦ãminimize ãåãåºãã¾ãã
SansAlpha$ ___=$(___="$(- 2>&1)";___=${___:12:3};${___} 2>&1);____=${___:21:8};${____}
bash: minimize: command not found
ããããé£çµããã¨ãunminimize ãåºæ¥ã¾ãããã¼ããåºæ¥ã¾ããããy ã§çããã¨ãããä½ãå¿
è¦ãããããã§ãã
SansAlpha$ __="$(- 2>&1)";__=${__:23:2};___=$(___="$(- 2>&1)";___=${___:12:3};${___} 2>&1);___=${___:21:8};${__}${___}
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
This script restores content and packages that are found on a default
Ubuntu server system in order to make this system more suitable for
interactive use.
Reinstallation of packages may fail due to changes to the system
configuration, the presence of third-party packages, or for other
reasons.
This operation may take some time.
Would you like to continue? [y/N]
SansAlpha$ ls
SansAlpha: Unknown character detected
yes | unminimize
ãä½ãã¾ããããªããã¨ã©ã¼ãåºã¦ãããã§ããããã«ãunminimize ã« sudo ãå¿
è¦ãªããã§ãã
SansAlpha$ __="$(- 2>&1)";_______=${__:23:2};________=${__:5:2};___=$(___="$(- 2>&1)";___=${___:12:3};${___} 2>&1);____=${___:21:8};_____=${___:6:1};__=${___:9:1};___=${___:3:1};${_____}${__}${___} | ${_______}${____}
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
This script restores content and packages that are found on a default
Ubuntu server system in order to make this system more suitable for
interactive use.
Reinstallation of packages may fail due to changes to the system
configuration, the presence of third-party packages, or for other
reasons.
This operation may take some time.
Re-enabling installation of all documentation in dpkg...
mv: cannot move '/etc/dpkg/dpkg.cfg.d/excludes' to '/etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp': Permission denied
sudo ã追å ãã¦ã¿ã¾ãããsudo ã¯ä½¿ããªãããã§ãã
SansAlpha$ __="$(- 2>&1)";___=$(___="$(- 2>&1)";___=${___:12:3};${___} 2>&1);____=${___:21:8};_____=${___:6:1};_______=${__:23:2};________=${___:9:1};______=${___:3:1};_________=${__:23:1};__________=${__:25:1};___________=${__:22:1};${______}${_________}${__________}${___________} ${_____}${________}${______} | ${_______}${____}
bash: sudo: command not found
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
This script restores content and packages that are found on a default
Ubuntu server system in order to make this system more suitable for
interactive use.
Reinstallation of packages may fail due to changes to the system
configuration, the presence of third-party packages, or for other
reasons.
This operation may take some time.
unminimizeã³ãã³ãã使ãã¨ããèããééã£ã¦ããããããã¾ããããã®ææ³ã§ããã©ã°ãèªã¿ã«è¡ãã®ããããã¾ãããã¨ãããããlsã³ãã³ããå®è¡ãã¦ã¿ã¾ãã
SansAlpha$ __="$(/
blargh on-calastran.txt
次ã¯ãcatã³ãã³ããå®è¡ãã¦ã¿ã¾ããããã¹ããã¡ã¤ã«ã®æ¹ã¯èªãã¾ããããããä¸ã¤ã¯ãã£ã¬ã¯ããªã ã£ãããã§ãã
SansAlpha$ __="$(/
cat: ./blargh: Is a directory
The Calastran multiverse is a complex and interconnected web of realities, each
with its own distinct characteristics and rules. At its core is the Nexus, a
cosmic hub that serves as the anchor point for countless universes and
dimensions. These realities are organized into Layers, with each Layer
representing a unique level of existence, ranging from the fundamental building
blocks of reality to the most intricate and fantastical realms. Travel between
Layers is facilitated by Quantum Bridges, mysterious conduits that allow
individuals to navigate the multiverse. Notably, the Calastran multiverse
exhibits a dynamic nature, with the Fabric of Reality continuously shifting and
evolving. Within this vast tapestry, there exist Nexus Nodes, focal points of
immense energy that hold sway over the destinies of entire universes. The
enigmatic Watchers, ancient beings attuned to the ebb and flow of the
multiverse, observe and influence key events. While the structure of Calastran
embraces diversity, it also poses challenges, as the delicate balance between
the Layers requires vigilance to prevent catastrophic breaches and maintain the
cosmic harmony.
ãã®ãã£ã¬ã¯ããªä»¥ä¸ã cat ãã¦ã¿ã¾ãããã©ã°ããã¾ããï¼
SansAlpha$ __="$(/
return 0 picoCTF{7h15_mu171v3r53_15_m4dn355_8b3d83ad}Alpha-9, a distinctive layer within the Calastran multiverse, stands as a
sanctuary realm offering individuals a rare opportunity for rebirth and
introspection. Positioned as a serene refuge between the higher and lower
Layers, Alpha-9 serves as a cosmic haven where beings can start anew,
unburdened by the complexities of their past lives. The realm is characterized
by ethereal landscapes and soothing energies that facilitate healing and
self-discovery. Quantum Resonance Wells, unique to Alpha-9, act as conduits for
individuals to reflect on their past experiences from a safe and contemplative
distance. Here, time flows differently, providing a respite for those seeking
solace and renewal. Residents of Alpha-9 find themselves surrounded by an
atmosphere of rejuvenation, encouraging personal growth and the exploration of
untapped potential. While the layer offers a haven for introspection, it is not
without its challenges, as individuals must confront their past and navigate
the delicate equilibrium between redemption and self-acceptance within this
tranquil cosmic retreat.
General Skillsã®å
¨10åå®äºã§ãï¼
ãããã«
ä»åã¯ãpicoCTF ã® picoCTF 2024 ã®ãã¡ãGeneral Skills ã¨ããã«ãã´ãªã®å
¨10åãããã¾ãããæå¾ã®åé¡ã¯ã ãã¶æéããããã¾ããããå
¨é¨è§£ãã¦è¯ãã£ãã§ãã
次ã¯ãpicoCTF 2024 ã® Web Exploitation ã«ææ¦ãã¦ã¿ããã¨æãã¾ãã
æå¾ã«ãªãã¾ããããã¨ã³ã¸ãã¢ã°ã«ã¼ãã®ã©ã³ãã³ã°ã«åå ä¸ã§ãã
æ°æ¥½ã«ãããã¨ãããããé¡ããããã¾ãð
ä»åã¯ä»¥ä¸ã§ãï¼
æå¾ã¾ã§ãèªã¿ããã ãããããã¨ããããã¾ããã