GithubHelp home page GithubHelp logo

lixin-wei / hznuoj Goto Github PK

View Code? Open in Web Editor NEW
58.0 6.0 11.0 17.68 MB

Hangzhou Normal University Online Judge

Home Page: http://acm.hznu.edu.cn

License: GNU General Public License v3.0

Shell 0.22% C++ 2.22% Makefile 0.28% C 10.33% Lex 0.62% HTML 0.19% CSS 16.93% JavaScript 39.49% PHP 27.99% Roff 0.16% PLSQL 0.21% Objective-C 0.30% Hack 0.05% PLpgSQL 1.00% Dockerfile 0.01%
online-judge onlinejudge acm-icpc hznu

hznuoj's Introduction

HZNUOJ 是基于 HUSTOJ 改造而来的,遵循GPL协议开源

优势

  • 更华丽的界面
  • 更灵活的权限管理
  • 支持多组样例
  • 有封装好的Docker镜像,一键部署

界面截图

首页

支持提交量和访问量的统计

index

榜单

重写过的的榜单

board

能点开查看每题的提交状况

board2

题目编辑界面

problem-edit

多样例支持

problem-edit

权限管理界面

细分的权限分配

privilege

部署指南

使用Docker(推荐)

获取镜像

自行build

在仓库根目录下:

docker build -t hznuoj:latest -f docker/Dockerfile ./

等待build完成即可。

完成后docker image ls,若有看到hznuoj的镜像即为成功。

从Docker Hub下载

如果你实在懒得build,也可以从Docker Hub下载。

HZNUOJ的Docker Hub主页:https://hub.docker.com/r/wlx65003/hznuoj ,会持续从master分支构建最新的镜像。

使用docker pull下载即可,由于HZNUOJ的Judger依赖较多,所以镜像很大,约1.2G,请耐心等待,或者自行寻找科学上网方式。最好还是自己build。

docker pull wlx65003/hznuoj

启动容器

docker run -it --rm -p 90:80 --privileged hznuoj:latest

其中-p 90:80表示把容器的80端口映射到宿主机的90端口,可自行修改,可以直接改成http默认的80端口以省去网址里的端口号。

--rm 表示运行一次就删除容器,如果你想长期运行,当虚拟机用,需要去掉。

--privileged 不能省略,否则判题机会权限不足,判题功能无法正常运作。

然后访问localhost:90即可。

使用源码

  1. HZNUOJ目前只在Ubuntu16.04上跑过,在更高版本下判题机可能无法正常运行。

  2. 下载源码 git clone https://github.com/wlx65003/HZNUOJ.git 或者直接访问https://github.com/wlx65003/HZNUOJ 下载zip包

  3. 若已安装mysql,请修改intall.sh judge.conf /web/OJ/include/db_info.inc.php 中的相应账户密码信息(默认为root/root)。若还未安装,请确保接下来安装mysql的过程中将用户名和密码都设成root。

  4. 以root权限运行judger/install/install.sh , 请确保在目录 judger/install/

  5. 安装完成后访问localhost即可。

使用教程

默认管理员账号为admin/123456。

出题手册见https://www.yuque.com/weilixinlianxin/zcf10d/yfk05w

贡献代码/Bug反馈

HZNUOJ目前开发人手很有限,只有已经上班的我和训练繁忙的一些学弟,有许多已知的不友好的功能和小BUG,只能抽时间慢慢改了。

同时也欢迎大家反馈issue/提交pull request帮忙一起完善HZNUOJ。

最后,如果您觉得HZNUOJ好用,请给我一个Star,这将是对我莫大的帮助与鼓励,十分感谢!

hznuoj's People

Contributors

dup4 avatar jnxxhzz avatar lixin-wei avatar lixun2015 avatar zkingq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

hznuoj's Issues

Strict SQL filtering leads to xss injection vulnerability

description

The code problem occurred in OJ / admin-tools / cal_scores.php. The $ realname in the output form was obtained from the database. There was no filtering of angle brackets “<>” during registration, which caused the reorganization here. xss injection

image-20200225160853304

Attack process

First register an account on the /OJ/modifypage.php page,Class is "软工163",Real Name is 
<details open ontoggle=['yds_is_so_handsome'].find(\u0070rompt)>

image-20200225162702052

Then visit / OJ / admin-tools / cal_scores.php, set the classList to soft 软工163, and click submit

image-20200225162722101

the attack works

image-20200225162808498

poc

<details open ontoggle=['yds_is_so_handsome'].find(\u0070rompt)>

Strict filtering of SQL statements causes xss injection

description

The code problem occurred in OJ / admin-tools / cal_scores.php. The $ realname in the output form was obtained from the database. There was no filtering of angle brackets “<>” during registration, which caused the reorganization here. xss injection

image-20200225160853304

Attack process

首先注册一个账号,Class为"软工163",Real Name is 
<details open ontoggle=['yds_is_so_handsome'].find(\u0070rompt)>

image-20200225162702052

Then visit / OJ / admin-tools / cal_scores.php, set the classList to soft 软工163, and click submit

image-20200225162722101

the attack works

image-20200225162808498

poc

<details open ontoggle=['yds_is_so_handsome'].find(\u0070rompt)>

docker镜像里面无法上传测试数据

docker镜像里面无法上传测试数据,提示上传失败
添加题目的时候有添加sample data,但test data里面没看到in和out的文件
请问下怎么解决,是哪个文件夹权限的问题吗?

Insufficient SQL filtering results in xss injection

description

The code problem occurred in OJ / admin-tools / cal_scores.php. The $ realname in the output form was obtained from the database. There was no filtering of angle brackets “<>” during registration, which caused the reorganization here. xss injection

image-20200225160853304

Attack process

首先注册一个账号,Class为"软工163",Real Name is 
<details open ontoggle=['yds_is_so_handsome'].find(\u0070rompt)>

image-20200225160712343

Then visit / OJ / admin-tools / cal_scores.php, set the classList to soft 软工163, and click submit

image-20200225161720115

the attack works

image-20200225161824168

poc

<details open ontoggle=['yds_is_so_handsome'].find(\u0070rompt)>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.