pwn.college: Dealing with Data

当你遇到奇怪的IO问题时,你就老实了。❤_❤

Dealing with Data

10. Encoding Practice

pwntools 的API说明:Pwntools Cheatsheet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from pwn import *

def encode(s):
s = u64(s, endianness='big')
print(s)
binary = bin(s).replace('0b','')
return binary

p = process("/challenge/runme")

correct_password = b"\x96\x92\xa9\xd6\xec\x83\xe3\xba"
correct_password = encode(correct_password)
print(correct_password)
p.write(correct_password)
print(p.readall())

11. Hex-encoding Practice

1
2
3
4
5
from pwn import *

correct_password = b"hveetgwy"
correct_password = enhex(correct_password)
print(correct_password)

12. Nested Encoding

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from pwn import *

p = process('/challenge/runme')
correct_password = b"arumrhnj"
correct_password = enhex(correct_password)
correct_password = correct_password.encode("l1")
correct_password = enhex(correct_password)
correct_password = correct_password.encode("l1")
correct_password = enhex(correct_password)
correct_password = correct_password.encode("l1")
correct_password = enhex(correct_password)
correct_password = correct_password.encode("l1")
print(correct_password)
p.write(correct_password)
print(p.readall())

13. Hex-encoding UTF-8

1
2
3
4
5
6
7
8
from pwn import *

p = process('/challenge/runme')
correct_password = "📐 🌍 🍗 🔵".encode("utf-8")
correct_password = enhex(correct_password)
print(correct_password)
p.write(correct_password)
print(p.readall())

14. UTF Mixups

1
2
3
4
5
6
7
8
from pwn import *

correct_password = b"amoozuff"
correct_password = correct_password.decode("latin1")
correct_password = correct_password.encode("utf-16")
print(correct_password)
with open('okeu', 'wb') as file:
file.write(correct_password)

15. Modifying Encoded Data

1
2
3
4
5
6
7
8
9
from pwn import *

correct_password = b"\xf1~\xe6P\xc0\x9a\x1f\xa6"
correct_password = enhex(correct_password)
correct_password = correct_password[::-1]
print(correct_password)
p = process('/challenge/runme')
p.write(correct_password)
print(p.readall())

16. Decoding Base64

1
2
3
4
5
6
7
8
9
from pwn import *

correct_password = b"iAb/uzx0uJQ="
correct_password = b64d(correct_password)
print(correct_password)
p = process('/challenge/runme')
p.write(correct_password)
print(p.readall())

17. Encoding Base64

1
2
3
4
5
6
7
8
from pwn import *

correct_password = b"\\\x0fz\xf4\xe27\xe4\xf3"
correct_password = b64e(correct_password)
print(correct_password)
p = process('/challenge/runme')
p.write(correct_password)
print(p.readall())

18. Dealing with Obfuscation

1
2
3
4
5
6
7
8
9
10
11
from pwn import *

correct_password = b"\x9c\xebn\xb4\xd1\xe5r\x05"
correct_password = correct_password.hex().encode("l1")
correct_password = base64.b64encode(correct_password)
correct_password = correct_password[::-1]
correct_password = correct_password.hex().encode("l1")
print(correct_password)
p = process('/challenge/runme')
p.write(correct_password)
print(p.readall())

19. Dealing with Obfuscation 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from pwn import *

def encode_to_bits(s):
return b"".join(format(c, "08b").encode("latin1") for c in s)

correct_password = b"V\x04\x93\x98\x05\xd4^\r"
correct_password = encode_to_bits(correct_password)
correct_password = base64.b64encode(correct_password)
correct_password = b64e(correct_password)
correct_password = correct_password[::-1]
print(correct_password)

correct_password = b64e(correct_password.encode("l1"))
correct_password = correct_password[::-1]
correct_password = correct_password[::-1]
correct_password = b64e(correct_password.encode('l1'))

p = process('/challenge/runme')
p.write(correct_password)
print(p.readall())

pwn.college: Dealing with Data
https://loboq1ng.github.io/2025/03/02/pwn-college-Dealing-with-Data/
作者
Lobo Q1ng
发布于
2025年3月2日
许可协议