Проблема с математическим постом и запросом в python - PullRequest
0 голосов
/ 20 октября 2018

* Итак, у меня проблема с выполнением этого задания.Цель состоит в том, чтобы дать решение уравнения за 5 секунд.http://218.100.84.106:5006/

Мой сценарий для этой проблемы:

import requests
import urllib.request
import http.client
import re

a = urllib.request.urlopen('http://218.100.84.106:5006').read()
b = int(a.decode('utf8')[1106:1111])
c=int(a.decode('utf8')[1112:1117])
d=int(a.decode('utf8')[1124:1129])
e=int(a.decode('utf8')[1131:1136])
f=int(a.decode('utf8')[1143:1148])
g=int(a.decode('utf8')[1150:1155])

mod=1000000007

x=((pow(b,c))%mod*(pow(d,e))%mod*(pow(f,g))%mod)%mod

url = 'http://218.100.84.106:5006'

r = requests.post(url, data={'x':int(x)})

flag = re.search(r'HZ\{\S+\}', r.text)
flag = str(flag)

def answer():
  if flag == "":
    print(flag)
answer

print("FLAG IS: " + flag )

ОТВЕТ / ФЛАГ НАЧИНАЕТСЯ С HZ {и заканчивается}

Когдая запускаю свой код, он просто возвращает: - FLAG IS: Нет

1 Ответ

0 голосов
/ 21 октября 2018

Я переписываю ваш код, потому что у вас есть ошибки

  1. Вам нужны файлы cookie, в противном случае веб-сайт может не знать, какая у вас формула расчета
  2. вы публикуете неправильный контент
  3. Вы можете получить номер по регулярному выражению

Код

import requests
import re

mod=1000000007
url = 'http://218.100.84.106:5006/index.php'

with requests.Session() as s:
    req = s.get(url)
    a = req.text
    func = re.search(r"(?<=`\().*(?=mod`)",a).group(0)
    ma = [int(e) for e in re.findall(r"\d+",func)]
    print(ma)

    x=((pow(ma[0],ma[1]))%mod*(pow(ma[2],ma[3]))%mod*(pow(ma[4],ma[5]))%mod)%mod

    print(x)

    r = requests.post(url, data={"answer":int(x),"sum":"Илгээх"},cookies=req.cookies)

    flag = re.search(r'HZ\{\S+\}', r.text).group(0)
    flag = str(flag) if flag else ""

    print("FLAG IS: " + flag )
...