日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

搭建H1ve-ctfd以及如何部署题目

發布時間:2024/9/30 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建H1ve-ctfd以及如何部署题目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

之前都是學長搭建的平臺給我們做練習,時間過的好快,我現在已經變成學長了,為了學弟學妹們能學到知識,我就利用一下docker搭建ctfd,順便記錄一下過程,以免之后再搭建忘記。

0x00:搭建環境

1.Centos 7 642.Docker 3.python2.7

0x01:搭建過程

安裝docker

安裝需要的軟件包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bind-utils

設置yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安裝docker

sudo yum install docker-ce

啟動并加入開機啟動

sudo systemctl start docker sudo systemctl enable docker

驗證是否安裝成功

docker version


以上的步驟按照步驟走一般沒問題,不會遇到錯誤什么的(親測),既然docker安裝好了,接下來就安裝docker-compose
____________更新

安裝docker-compose

建議安裝這一種來安裝

博客如下:
https://www.cnblogs.com/lywJ/p/10716062.html

安裝python-pip

yum -y install epel-release yum -y install python-pip

檢查是否安裝成功

pip -V


對安裝的pip進行升級

pip install --upgrade pip

這里就很平常一個升級,但是我就遇到了一個報錯
ModuleNotFoundError: No module named 'pip._internal',
(自己忘記截圖了,就使用大師傅的圖)

查了才知道有可能是與舊版沖突才導致了這個報錯,我使用的是第一種修復方法:
修復方法:

python -m ensurepip python -m pip install --upgrade pip

ModuleNotFoundError: No module named ‘pip._internal’ , pip 無法下載軟件 解決辦法

修復好之后,安裝docker-compose

pip install docker-compose

如果報錯出現

ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out

使用這個命令即可:

pip --default-timeout=200 install -U docker-compose

但是。。。。我遇到報錯卻是這樣的

用pip安裝Python庫軟件的時候遇到"command 'gcc' failed with exit status 1"錯誤問題,看似缺少gcc組件,但是確實在安裝之前有執行過yum安裝gcc,但是還是有這樣的問題,原因便是缺少openssl-devel支持(PS:雖然我的報錯信息沒有顯示gcc,但我按照這個命令執行了,確實不會再報錯了)

解決方法:

yum install gcc libffi-devel python-devel openssl-devel -y

解決"command ‘gcc’ failed with exit status 1"錯誤問題
執行完畢之后,再回到之前執行的pip安裝docker-compose

安裝成功,查看一下版本

注意如果docker-compose版本過低,則無法啟動H1ve-ctfd

啟動ctfd

既然docker和docker-compose都準備好了,就來下載一下ctfd,之前我們團隊qwzf大佬給我推薦了

H1ve--開源攻防訓練平臺 https://xz.aliyun.com/t/6889

是基于ctfd開放的,而且更帥氣,更酷炫,放張圖

這一看就被吸引了,這樣太帥了,既然就是基于ctfd開放的,那么基本一樣,所以我就搭建這個平臺:

現在已經開源,感謝大佬們研發出這么帥的網站,可以在服務器中直接下載

git clone https://github.com/D0g3-Lab/H1ve.git

下載好之后進入到目錄中,按照Github上的教程走:

docker-compose -f single.yml up

但是。。。。又遇到了問題,繼續查:

可以發現這個問題是docker: Error response from daemon: ... : net/http: TLS handshake timeout.出現這個問題的原因是因為該命令默認從docker遠端鏡像倉庫中拉取鏡像,但由于遠端倉庫的服務器是在國外,我們國內有的用戶很可能都訪問不了,所以會報錯。

解決方法:使用阿里云鏡像加速器

按照上面配置鏡像加速器的方法復制粘貼即可,接下來進行安裝就可以看到很快的速度了

出現這個頁面就歐克了
默認的端口是8000,訪問一下服務器的IP地址

終于搭建好了,所說遇到很多問題,但也學到了不少東西。

0x02:部署題目

(吐槽一句,真的要吐了)

MISC和Crypto都好設置

設置好題目,上傳附件,添加flag即可

唯獨web題目有點麻煩,其實說麻煩也不是太麻煩,就是有點啰嗦,原本打算用docker去搭建web題,但是看了看服務器的配置還是算了的,就采用apache+MySQL+php來搭建,直接讓訪問var/www/html目錄下的文件就可以了

先來下載MySQL:

注意:在新版本的CentOS7中,默認的數據庫已更新為了Mariadb,而非 MySQL,所以執行 yum install mysql命令只是更新Mariadb數據庫,并不會安裝 MySQL

查看已安裝的 Mariadb 數據庫版本。

rpm -qa|grep -i mariadb

卸載已安裝的 Mariadb 數據庫

rpm -qa|grep mariadb|xargs rpm -e --nodeps

查看已安裝的 Mariadb 數據庫版本,確認是否卸載完成

rpm -qa|grep -i mariadb

下載安裝包文件

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

安裝mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm

安裝mysql

yum install mysql-server

檢查mysql是否安裝成功

rpm -qa | grep mysql

啟動 mysql 服務

systemctl start mysqld.service #啟動 mysql systemctl restart mysqld.service #重啟 mysql systemctl stop mysqld.service #停止 mysql systemctl enable mysqld.service #設置 mysql 開機啟動

設置密碼

root 用戶的密碼默認是空的,需要及時用 mysql 的 root 用戶登錄

mysql -u root mysql> use mysql; mysql> update user set password=PASSWORD("這里輸入root用戶密碼") where User='root'; mysql> flush privileges;

CentOS7下使用YUM安裝MySQL5.6

設置遠程主機登錄

這個非常重要,如果不設置的話,就算你php配置文件都對,但是還是連接不到數據庫的,一定要注意

mysql> use mysql mysql> select host,user,password from user;

修改host字段的值,將localhost修改成需要遠程連接數據庫的ip地址,或者直接修改成%。修改成%表示,所有主機都可以通過root用戶訪問數據庫

mysql> update user set host = '%' where user = 'root'; mysql> FLUSH PRIVILEGES;

修改之后,即可連接成功

Host ‘xxx’ is not allowed to connect to this MySQL server.
MySQL安裝好之后,就來安裝apache,在CentOS和RHEL上,Apache軟件包和服務稱為httpd

sudo yum install httpd

安裝完成后,啟用并啟動Apache服務:

sudo systemctl enable httpd sudo systemctl start httpd

下載php,這里我下載的版本是5.6的,如果之后web題涉及到了弱類型,這個版本的php就可以

yum install epel-release rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi yum install --enablerepo=remi --enablerepo=remi-php56 php php-gd php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php -v

centOs7 yum安裝php5.6(史上最簡)
下載好之后,原本打算再安裝一個phpmyadmin,但是爆出了下面的錯誤,就是安裝不了,反正也不是特別需要就不安裝了

至此基本就可以了,將你的題目放到/var/www/html目錄下,這里還要設置一下目錄權限

chmod 711 /var/html/www/web #web是我自己放置題目的目錄


設置好就可以,反正有人遍歷目錄,啟動一下Hive-ctfd

docker-compose -f single.yml up

發現報錯。。。。

原因也很簡單,就是因為apache占用了80端口,所以我們需要更改一下apache的默認端口即可

打開 /etc/httpd/conf/httpd.conf 文件 把80改為你自己想要設置的端口,如下圖我設置的是5555

最后再補充一點:

在Linux中如何導入sql文件

mysql -u 用戶名 -p 數據庫名 < 數據庫名.sql #這個只是其中的一種方法
  • 如果你的配置文件中的主機、賬號、密碼什么的都對,但還是無法連接,就一定是你在安裝MySQL時沒有設置遠程連接
  • 如果發現訪問題目時,php源碼都直接出現,沒有解析,最簡單的方法,重新啟動一下apache服務即可sudo systemctl restart httpd

至此,就全部搭建完畢了,寫的時候真的感覺不難,但畢竟是第一次搭建,真的也學到不少知識



就記錄到這里吧!

總結

以上是生活随笔為你收集整理的搭建H1ve-ctfd以及如何部署题目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。