Անդրանիկ Վարդանեան

8 Դեկտեմբերի, 2022

#CyHubCTF2022

Սկսենք Փայթոնական բաները տեղադրելով՝

pkg install -y py39-pip

Ապա տեղադրենք CTFd֊ն՝

root@ctfd0:~ # cd /usr/local/www/
root@ctfd0:/usr/local/www # git clone https://github.com/CTFd/CTFdCloning into 'CTFd'...
remote: Enumerating objects: 14857, done.
remote: Counting objects: 100% (94/94), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 14857 (delta 39), reused 73 (delta 34), pack-reused 14763
Receiving objects: 100% (14857/14857), 30.98 MiB | 16.73 MiB/s, done.
Resolving deltas: 100% (9137/9137), done.
root@ctfd0:/usr/local/www # cd CTFd/
root@ctfd0:/usr/local/www/CTFd # pip install -r requirements.txt

Հիմա սպասում ենք Python֊ական dependency֊ները քաշի։

Մէկ էլ ասում ա՝

      error: can't find Rust compiler

Օքեյ, դա էլ քաշենք՝

root@ctfd0:/usr/local/www/CTFd # pkg install -y rust

Նորից եմ աշխատեցնում pip install֊ը եւ ստանում եմ՝

      $ GOPATH=/tmp/tmplfo6wiyc go get -d
      error: [Errno 2] No such file or directory: 'go'

Օքեյ, հիմա էլ Go֊ն տեղադրենք՝

root@ctfd0:/usr/local/www/CTFd # pkg install -y go

Ու մի անգամ էլ pip install աշխատեցնելուց յետոյ ամէն ինչ տեղակայուեց։

Սկսեմ կարգաւորել config.ini ֆայլը։

Ահ, էստեղ գրած ա DATABASE_URL, աչքիս մի հատ էլ MySQL֊ի համար Jail սարքեմ՝

root@console:~ # jailer create -n -t eb -a 10.0.0.15 mysql0
root@console:~ # jailer nat add -i vtnet0 mysql0

Ապա տեղադրեմ MariaDB՝

root@console:~ # jailer cons mysql0
root@mysql0:~ # pkg install -y mariadb106-server

Ու նաեւ կարգաւորեմ նոր օգտատէր՝

root@mysql0:~ # mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.6.11-MariaDB FreeBSD Ports

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost [(none)]> create database ctfd;
Query OK, 1 row affected (0.001 sec)

root@localhost [(none)]> create user ctfd@10.0.0.10 IDENTIFIED VIA mysql_native_password USING PASSWORD(“REDACTED");
Query OK, 0 rows affected (0.004 sec)

root@localhost [(none)]> grant all privileges on ctfd.* to ctfd@10.0.0.10 with grant option;
Query OK, 0 rows affected (0.003 sec)

root@localhost [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

Դէ փորձարկենք՝

root@console:~ # jailer cons ctfd0
root@ctfd0:~ # mysql -h 10.0.0.15 -u ctfd -p ctfd
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.6.11-MariaDB FreeBSD Ports

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

ctfd@10.0.0.15 [ctfd]> 

Թո՛յն։

Շարունակեմ մնացած կարգաւորումներն անել։

Երեւի կարելի է փորձել միացնե՞լ։ Տեսնենք՝

root@ctfd0:/usr/local/www/CTFd # python3.9 serve.py
 * Importing gevent and monkey patching. Use --disable-gevent to disable.
Traceback (most recent call last):
  File "/usr/local/www/CTFd/serve.py", line 23, in 
    app = create_app()
  File "/usr/local/www/CTFd/CTFd/__init__.py", line 199, in create_app
    url = create_database()
  File "/usr/local/www/CTFd/CTFd/utils/migrations/__init__.py", line 26, in create_database
    if not database_exists_util(url):
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy_utils/functions/database.py", line 470, in database_exists
    engine = sa.create_engine(url)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/__init__.py", line 488, in create_engine
    return strategy.create(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/strategies.py", line 87, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 118, in dbapi
    return __import__("MySQLdb")
ModuleNotFoundError: No module named 'MySQLdb'

Ահ, լաւ հեսա դա էլ տեղադրեմ՝

root@ctfd0:~ # pkg install -y py39-mysqlclient

ու մի հատ էլ ենք աշխատացնում ու տեսնում ենք՝

Screen Shot 2022 12 08 at 10 07 15 PM

Ախ, վերջապէս (։

Ասանկ բաներ…

Պատասխանել մեյլով