├── .gitignore ├── .htaccess ├── 404.html ├── LICENSE ├── README.md ├── UpdateInfo.md ├── about.html ├── account.html ├── ajax.php ├── challenges.html ├── css └── style.css ├── ctf-admin ├── ajax.php ├── configList.php ├── css │ ├── font.css │ └── xadmin.css ├── flagCalc.php ├── fonts │ ├── iconfont.eot │ ├── iconfont.svg │ ├── iconfont.ttf │ └── iconfont.woff ├── functions.php ├── images │ ├── aiwrap.png │ └── bg.png ├── index.php ├── init.php ├── js │ └── xadmin.js ├── lib │ └── layui │ │ ├── css │ │ ├── layui.css │ │ ├── layui.mobile.css │ │ └── modules │ │ │ ├── code.css │ │ │ ├── laydate │ │ │ └── default │ │ │ │ └── laydate.css │ │ │ └── layer │ │ │ └── default │ │ │ ├── icon-ext.png │ │ │ ├── icon.png │ │ │ ├── layer.css │ │ │ ├── loading-0.gif │ │ │ ├── loading-1.gif │ │ │ └── loading-2.gif │ │ ├── font │ │ ├── iconfont.eot │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ └── iconfont.woff │ │ ├── images │ │ └── face │ │ │ ├── 0.gif │ │ │ ├── 1.gif │ │ │ ├── 10.gif │ │ │ ├── 11.gif │ │ │ ├── 12.gif │ │ │ ├── 13.gif │ │ │ ├── 14.gif │ │ │ ├── 15.gif │ │ │ ├── 16.gif │ │ │ ├── 17.gif │ │ │ ├── 18.gif │ │ │ ├── 19.gif │ │ │ ├── 2.gif │ │ │ ├── 20.gif │ │ │ ├── 21.gif │ │ │ ├── 22.gif │ │ │ ├── 23.gif │ │ │ ├── 24.gif │ │ │ ├── 25.gif │ │ │ ├── 26.gif │ │ │ ├── 27.gif │ │ │ ├── 28.gif │ │ │ ├── 29.gif │ │ │ ├── 3.gif │ │ │ ├── 30.gif │ │ │ ├── 31.gif │ │ │ ├── 32.gif │ │ │ ├── 33.gif │ │ │ ├── 34.gif │ │ │ ├── 35.gif │ │ │ ├── 36.gif │ │ │ ├── 37.gif │ │ │ ├── 38.gif │ │ │ ├── 39.gif │ │ │ ├── 4.gif │ │ │ ├── 40.gif │ │ │ ├── 41.gif │ │ │ ├── 42.gif │ │ │ ├── 43.gif │ │ │ ├── 44.gif │ │ │ ├── 45.gif │ │ │ ├── 46.gif │ │ │ ├── 47.gif │ │ │ ├── 48.gif │ │ │ ├── 49.gif │ │ │ ├── 5.gif │ │ │ ├── 50.gif │ │ │ ├── 51.gif │ │ │ ├── 52.gif │ │ │ ├── 53.gif │ │ │ ├── 54.gif │ │ │ ├── 55.gif │ │ │ ├── 56.gif │ │ │ ├── 57.gif │ │ │ ├── 58.gif │ │ │ ├── 59.gif │ │ │ ├── 6.gif │ │ │ ├── 60.gif │ │ │ ├── 61.gif │ │ │ ├── 62.gif │ │ │ ├── 63.gif │ │ │ ├── 64.gif │ │ │ ├── 65.gif │ │ │ ├── 66.gif │ │ │ ├── 67.gif │ │ │ ├── 68.gif │ │ │ ├── 69.gif │ │ │ ├── 7.gif │ │ │ ├── 70.gif │ │ │ ├── 71.gif │ │ │ ├── 8.gif │ │ │ └── 9.gif │ │ ├── lay │ │ └── modules │ │ │ ├── carousel.js │ │ │ ├── code.js │ │ │ ├── element.js │ │ │ ├── flow.js │ │ │ ├── form.js │ │ │ ├── jquery.js │ │ │ ├── laydate.js │ │ │ ├── layedit.js │ │ │ ├── layer.js │ │ │ ├── laypage.js │ │ │ ├── laytpl.js │ │ │ ├── mobile.js │ │ │ ├── table.js │ │ │ ├── tree.js │ │ │ ├── upload.js │ │ │ └── util.js │ │ ├── layui.all.js │ │ └── layui.js ├── login.php ├── noticeList.php ├── noticeManage.php ├── quesAdd.php ├── quesEdit.php ├── quesList.php ├── userAdd.php ├── userBaseList.php ├── userDeleteList.php ├── userEdit.php ├── userPasswordList.php ├── userSubmitList.php └── welcome.php ├── easyInstall.php ├── fonts ├── 1Y.woff2 ├── material-design-icons │ ├── LICENSE.txt │ ├── Material-Design-Icons.eot │ ├── Material-Design-Icons.svg │ ├── Material-Design-Icons.ttf │ ├── Material-Design-Icons.woff │ └── Material-Design-Icons.woff2 └── roboto │ ├── Roboto-Bold.ttf │ ├── Roboto-Bold.woff │ ├── Roboto-Bold.woff2 │ ├── Roboto-Light.ttf │ ├── Roboto-Light.woff │ ├── Roboto-Light.woff2 │ ├── Roboto-Medium.ttf │ ├── Roboto-Medium.woff │ ├── Roboto-Medium.woff2 │ ├── Roboto-Regular.ttf │ ├── Roboto-Regular.woff │ ├── Roboto-Regular.woff2 │ ├── Roboto-Thin.ttf │ ├── Roboto-Thin.woff │ └── Roboto-Thin.woff2 ├── functions.php ├── index.html ├── init.php ├── js ├── account.js ├── challenges.js ├── ctf.js ├── index.js ├── notice.js ├── register.js ├── resetpwd.js └── scoreboard.js ├── notice.html ├── register.html ├── resetpwd.html ├── scoreboard.html ├── script ├── highcharts.js ├── jquery.min.js ├── jquery3.2.1.min.js ├── materialize.min.css ├── materialize.min.js └── sunburst.js └── sendmail.php /.gitignore: -------------------------------------------------------------------------------- 1 | /sql 2 | /.idea 3 | /.vscode/ 4 | /docker 5 | /questions 6 | /qcloudsms_php/ 7 | *.sql 8 | test*.php 9 | config.php 10 | 短信发送.php 11 | favicon.ico 12 | /cache 13 | # 待更新 14 | mingan.txt 15 | manage.php 16 | /ctf-admin/oldConfigList.php -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | 2 | RewriteEngine On 3 | RewriteRule ^QD-(.*)$ ./manage.php?check=$1 [L] 4 | ErrorDocument 404 /404.html 5 | 6 | 7 | Order allow,deny 8 | Deny from all 9 | 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Kood 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Simple CTF 2 | 3 | --- 4 | 5 | * ## Background 6 | 7 | 2017年为了给社团成员做一个看起来还说得过去的CTF平台,所以就随便写了一下,不过没想到最后还成了一个有意思的小玩意,页面看起来比较简陋,也没有用什么框架之类的,所以代码显得很多,以后会尝试去重构代码。采用 html + ajax 动态刷新页面,大部分js、css采用 BootCDN ,所以访问速度较快。 8 | 9 | * ## Install 10 | 11 | 安装方法很简单,除了 apache2 + php7.1 + mysql5.6以外,还需要安装 php 的几个扩展。 12 | 13 | ```bash 14 | apt install apache2 php7.1 mysql-server 15 | apt install libapache2-mod-php php-mysql php-xml php-gd 16 | git clone https://github.com/onlykood/A_Simple_CTF 17 | mv A_Simple_CTF/* /var/www/html/ 18 | ``` 19 | 20 | 之后访问index.php即可自动跳转至安装页面,安装完成后即可访问。 21 | 22 | * ## Usage 23 | 24 | 正常访问即可,更多功能请自行挖掘😂 25 | 26 | 演示 Demo: 27 | 28 | 2019/08/26 29 | emmm , 由于服务器到期,已经挂了,以后会更新 30 | 31 | 2020/04/28 32 | 恢复上述域名访问 33 | 34 | * ## License 35 | 36 | 该项目签署了 MIT 授权许可,详情请参阅 [LICENSE.md](https://github.com/onlykood/A_Simple_CTF/master/LICENSE) 37 | 38 | * ## Other 39 | 40 | 使用了 Materialize 前端框架,x-admin 作为后台框架。 41 | 42 | 仅测试了 win10+wamp(php7.1.9) 以及 ubuntu16.04LTS + lamp 模式,其他环境如有问题,请先自己分析处理。 43 | 44 | 如果在使用过程中出现问题,欢迎联系QQ: 702142058,同时您也可以对本项目加以修改,维护。 45 | 46 | * ## QA: 47 | Q: Not show captcha image? 48 | 49 | A: maybe not install php-gd or not restart apache2, or config.php have a space in front of ' 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 51 |
52 |
53 |
54 |
55 |

About

56 |
57 |
58 |
59 |
60 |
61 |
62 |
欢迎提交建议以及意见
63 |
64 |
65 |
66 |
67 |
68 | 71 | 72 | -------------------------------------------------------------------------------- /ajax.php: -------------------------------------------------------------------------------- 1 | 93 | -------------------------------------------------------------------------------- /challenges.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 51 |
52 |
53 |
54 |
55 |

Questions

56 |
57 |
58 | 59 | 60 | 75 | 76 | 77 | 81 |
82 | 83 | 84 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | ul.side-nav li.logo { 2 | text-align: center; 3 | margin-top: 32px; 4 | margin-bottom: 16px; 5 | border-bottom: 1px solid #ddd; 6 | } 7 | 8 | ul.side-nav li.logo:hover { 9 | background-color: transparent; 10 | } 11 | 12 | #logo-container { 13 | height: 57px; 14 | margin-bottom: 32px; 15 | } 16 | 17 | #front-page-logo { 18 | display: inline-block; 19 | height: 100%; 20 | pointer-events: none; 21 | } 22 | 23 | main { 24 | flex: 1 0 auto; 25 | } 26 | nav { 27 | background-color:#e0e0e0; 28 | } 29 | body { 30 | display: flex; 31 | min-height: 100vh; 32 | flex-direction: column; 33 | } 34 | footer { 35 | width: 100%; 36 | height: 10%; 37 | bottom: 0px; 38 | } 39 | 40 | /* fallback */ 41 | @font-face { 42 | font-family: 'Material Icons'; 43 | font-style: normal; 44 | font-weight: 400; 45 | src: local('Material Icons'), local('MaterialIcons-Regular'), url('../fonts/1Y.woff2') format('woff2'); 46 | } 47 | 48 | .material-icons { 49 | font-family: 'Material Icons'; 50 | font-weight: normal; 51 | font-style: normal; 52 | font-size: 24px; 53 | line-height: 1; 54 | letter-spacing: normal; 55 | text-transform: none; 56 | display: inline-block; 57 | white-space: nowrap; 58 | word-wrap: normal; 59 | direction: ltr; 60 | -webkit-font-feature-settings: 'liga'; 61 | -webkit-font-smoothing: antialiased; 62 | } 63 | #recent_solves td{ 64 | padding:0; 65 | } 66 | .btn-large{ 67 | background-color: #40506a; 68 | width: 24%; 69 | min-height: 100px; 70 | line-height: 1; 71 | border: 2px solid; 72 | box-shadow: none; 73 | } 74 | .btn-large:hover{ 75 | background-color: #3a4860; 76 | box-shadow: none; 77 | } 78 | .tabs .tab a{ 79 | color:#b9b9b9; 80 | } 81 | .tabs .tab a:hover, .tabs .tab a.active{ 82 | color:#444444; 83 | } 84 | .tabs .indicator{ 85 | background-color:#d0d0d0; 86 | } 87 | #headline { 88 | margin: auto; 89 | text-align: center; 90 | text-shadow: 10px 7px 20px #949494; 91 | font-size: 8em; 92 | font-family: 'Open Sans', sans-serif; 93 | font-weight: 800; 94 | color:#ffffff; 95 | letter-spacing: -0.02em; 96 | line-height: 1.2em; 97 | } 98 | ul.countdown { 99 | list-style: none; 100 | margin: 75px 0; 101 | margin-bottom: 0; 102 | padding: 0; 103 | display: block; 104 | text-align: center; 105 | } 106 | ul.countdown li { 107 | display: inline-block; 108 | } 109 | ul.countdown li span { 110 | font-size: 80px; 111 | font-weight: 300; 112 | line-height: 80px; 113 | } 114 | ul.countdown li.seperator { 115 | font-size: 80px; 116 | line-height: 70px; 117 | vertical-align: top; 118 | } 119 | ul.countdown li p { 120 | color: #a7abb1; 121 | font-size: 14px; 122 | } 123 | .modal{ 124 | width:45%; 125 | } 126 | #ques_con a.btn{ 127 | text-transform: capitalize; 128 | } 129 | @media only screen and (max-width: 992px){ 130 | .modal { 131 | width: 80%; 132 | } 133 | } 134 | .questionsType .col{ 135 | min-height: 100px; 136 | } 137 | .tinyImg{ 138 | width: 50px; 139 | height: 50px; 140 | border-radius: 50px; 141 | } 142 | .tmp1{ 143 | text-transform: capitalize; 144 | } 145 | /* account base-info img遮罩层*************/ 146 | /* 147 | .headImgs { 148 | //margin: 20px 400px 0 400px; 149 | //position: relative; 150 | //width: 531px; 151 | //height: 354px; 152 | } 153 | .mask { 154 | position: absolute; 155 | top: 0; 156 | left: 0; 157 | width: 100%; 158 | height: 200px; 159 | background: rgba(101, 101, 101, 0.6); 160 | color: #ffffff; 161 | opacity: 0; 162 | } 163 | 164 | .headImgs a:hover .mask { 165 | opacity: 1; 166 | }*/ 167 | 168 | 169 | /*************/ 170 | /* challengs 滚动条部分*/ 171 | .scroll-bar1::-webkit-scrollbar {/*滚动条整体样式*/ 172 | width: 10px; /*高宽分别对应横竖滚动条的尺寸*/ 173 | height: 1px; 174 | } 175 | .scroll-bar1::-webkit-scrollbar-thumb {/*滚动条里面小方块*/ 176 | border-radius: 10px; 177 | -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2); 178 | background: #535353; 179 | } 180 | .scroll-bar1::-webkit-scrollbar-track {/*滚动条里面轨道*/ 181 | -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2); 182 | border-radius: 10px; 183 | background: #EDEDED; 184 | } 185 | 186 | /********challenge 使用*******/ 187 | .progress{ 188 | width: 80%; 189 | } -------------------------------------------------------------------------------- /ctf-admin/ajax.php: -------------------------------------------------------------------------------- 1 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /ctf-admin/css/font.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'iconfont'; 3 | src: url('../fonts/iconfont.eot'); 4 | src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'), 5 | url('../fonts/iconfont.woff') format('woff'), 6 | url('../fonts/iconfont.ttf') format('truetype'), 7 | url('../fonts/iconfont.svg#iconfont') format('svg'); 8 | } 9 | .iconfont{ 10 | font-family:"iconfont" !important; 11 | font-size:16px;font-style:normal; 12 | -webkit-font-smoothing: antialiased; 13 | -webkit-text-stroke-width: 0.2px; 14 | -moz-osx-font-smoothing: grayscale; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /ctf-admin/flagCalc.php: -------------------------------------------------------------------------------- 1 | query("SELECT a.`id`,a.`name`,a.`email`,a.`key`,b.`seed`,b.`is_rand` from `users_info` as a,`ctf_challenges` as b where b.`id`='$quesid'"); 8 | $sql or returnInfo(SQL_ERROR); 9 | $tmp=''; 10 | while($row=$sql->fetch_assoc()){ 11 | if(!$row['is_rand']){ 12 | $tmp='非动态flag非动态flag非动态flag非动态flag'; 13 | break; 14 | } 15 | $tmp.=''.$row['id'].''.$row['name'].''.$row['email'].'flag{'.md5($row['key'].$row['seed']).'}'; 16 | } 17 | 18 | ?> 19 | 20 | 21 | 22 | 23 | 欢迎页面-X-admin2.0 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
36 | 37 | 38 |
ID用户名邮箱动态flag
39 |
40 | 41 | -------------------------------------------------------------------------------- /ctf-admin/fonts/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/fonts/iconfont.eot -------------------------------------------------------------------------------- /ctf-admin/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/fonts/iconfont.ttf -------------------------------------------------------------------------------- /ctf-admin/fonts/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/fonts/iconfont.woff -------------------------------------------------------------------------------- /ctf-admin/images/aiwrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/images/aiwrap.png -------------------------------------------------------------------------------- /ctf-admin/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/images/bg.png -------------------------------------------------------------------------------- /ctf-admin/index.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 后台管理 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 |
27 | 28 |
29 | 40 | 41 |
42 | 43 | 44 | 45 |
46 | 141 |
142 | 143 | 144 | 145 |
146 |
147 |
    148 |
  • 我的桌面
  • 149 |
150 |
151 |
152 | 153 |
154 |
155 |
156 |
157 |
158 | 159 | 160 | 161 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /ctf-admin/init.php: -------------------------------------------------------------------------------- 1 | set_charset("utf8"); 32 | } 33 | return self::$database; 34 | } 35 | } 36 | 37 | 38 | #指定允许其他域名访问 39 | #header('Access-Control-Allow-Origin:*'); 40 | 41 | #设置html编码格式 42 | header("Content-type: text/html; charset=utf-8"); 43 | 44 | #设置php时区 45 | date_default_timezone_set('Asia/Shanghai'); 46 | 47 | #加载令牌SESSION 48 | if( !isset( $_SESSION['token'] ) ) 49 | { 50 | $_SESSION['token'] = hash( 'ripemd160', sha1( uniqid( '', true ) ) ); 51 | } 52 | if( !isset( $_SESSION['userID'] ) ) 53 | { 54 | $_SESSION['userID'] = false; 55 | } 56 | define( 'INITIALIZED', true ); 57 | ?> 58 | -------------------------------------------------------------------------------- /ctf-admin/js/xadmin.js: -------------------------------------------------------------------------------- 1 | var DEBUG=true; 2 | $(function () { 3 | //加载弹出层 4 | layui.use(['form','element'], 5 | function() { 6 | layer = layui.layer; 7 | element = layui.element; 8 | }); 9 | 10 | //触发事件 11 | var tab = { 12 | tabAdd: function(title,url,id){ 13 | //新增一个Tab项 14 | element.tabAdd('xbs_tab', { 15 | title: title 16 | ,content: '' 17 | ,id: id 18 | }) 19 | } 20 | ,tabDelete: function(othis){ 21 | //删除指定Tab项 22 | element.tabDelete('xbs_tab', '44'); //删除:“商品管理” 23 | 24 | 25 | othis.addClass('layui-btn-disabled'); 26 | } 27 | ,tabChange: function(id){ 28 | //切换到指定Tab项 29 | element.tabChange('xbs_tab', id); //切换到:用户管理 30 | } 31 | }; 32 | 33 | 34 | tableCheck = { 35 | init:function () { 36 | $(".layui-form-checkbox").click(function(event) { 37 | if($(this).hasClass('layui-form-checked')){ 38 | $(this).removeClass('layui-form-checked'); 39 | if($(this).hasClass('header')){ 40 | $(".layui-form-checkbox").removeClass('layui-form-checked'); 41 | } 42 | }else{ 43 | $(this).addClass('layui-form-checked'); 44 | if($(this).hasClass('header')){ 45 | $(".layui-form-checkbox").addClass('layui-form-checked'); 46 | } 47 | } 48 | 49 | }); 50 | }, 51 | getData:function () { 52 | var obj = $(".layui-form-checked").not('.header'); 53 | var arr=[]; 54 | obj.each(function(index, el) { 55 | arr.push(obj.eq(index).attr('data-id')); 56 | }); 57 | return arr; 58 | } 59 | } 60 | 61 | //开启表格多选,如果在此处开启,后面动态交互的时候再次开启的话,开始的第一个框就无法选定。。。坑爹 62 | //tableCheck.init(); 63 | 64 | 65 | $('.container .left_open i').click(function(event) { 66 | if($('.left-nav').css('left')=='0px'){ 67 | $('.left-nav').animate({left: '-221px'}, 100); 68 | $('.page-content').animate({left: '0px'}, 100); 69 | $('.page-content-bg').hide(); 70 | }else{ 71 | $('.left-nav').animate({left: '0px'}, 100); 72 | $('.page-content').animate({left: '221px'}, 100); 73 | if($(window).width()<768){ 74 | $('.page-content-bg').show(); 75 | } 76 | } 77 | 78 | }); 79 | 80 | $('.page-content-bg').click(function(event) { 81 | $('.left-nav').animate({left: '-221px'}, 100); 82 | $('.page-content').animate({left: '0px'}, 100); 83 | $(this).hide(); 84 | }); 85 | 86 | $('.layui-tab-close').click(function(event) { 87 | $('.layui-tab-title li').eq(0).find('i').remove(); 88 | }); 89 | 90 | //左侧菜单效果 91 | // $('#content').bind("click",function(event){ 92 | $('.left-nav #nav li').click(function (event) { 93 | 94 | if($(this).children('.sub-menu').length){ 95 | if($(this).hasClass('open')){ 96 | $(this).removeClass('open'); 97 | $(this).find('.nav_right').html(''); 98 | $(this).children('.sub-menu').stop().slideUp(); 99 | $(this).siblings().children('.sub-menu').slideUp(); 100 | }else{ 101 | $(this).addClass('open'); 102 | $(this).children('a').find('.nav_right').html(''); 103 | $(this).children('.sub-menu').stop().slideDown(); 104 | $(this).siblings().children('.sub-menu').stop().slideUp(); 105 | $(this).siblings().find('.nav_right').html(''); 106 | $(this).siblings().removeClass('open'); 107 | } 108 | }else{ 109 | 110 | var url = $(this).children('a').attr('_href'); 111 | var title = $(this).find('cite').html(); 112 | var index = $('.left-nav #nav li').index($(this)); 113 | 114 | for (var i = 0; i <$('.x-iframe').length; i++) { 115 | if($('.x-iframe').eq(i).attr('tab-id')==index+1){ 116 | tab.tabChange(index+1); 117 | event.stopPropagation(); 118 | return; 119 | } 120 | }; 121 | 122 | tab.tabAdd(title,url,index+1); 123 | tab.tabChange(index+1); 124 | } 125 | 126 | event.stopPropagation(); 127 | 128 | }) 129 | 130 | }) 131 | 132 | /*弹出层*/ 133 | /* 134 | 参数解释: 135 | title 标题 136 | url 请求的url 137 | id 需要操作的数据id 138 | w 弹出层宽度(缺省调默认值) 139 | h 弹出层高度(缺省调默认值) 140 | */ 141 | function x_admin_show(title,url,w,h){ 142 | if (title == null || title == '') { 143 | title=false; 144 | }; 145 | if (url == null || url == '') { 146 | url="404.html"; 147 | }; 148 | if (w == null || w == '') { 149 | w=($(window).width()*0.9); 150 | }; 151 | if (h == null || h == '') { 152 | h=($(window).height() - 50); 153 | }; 154 | layer.open({ 155 | type: 2, 156 | area: [w+'px', h +'px'], 157 | fix: false, //不固定 158 | maxmin: true, 159 | shadeClose: true, 160 | shade:0.4, 161 | title: title, 162 | content: url 163 | }); 164 | } 165 | function debugLog(data) 166 | { 167 | if(DEBUG){ 168 | console.log(data); 169 | } 170 | return false; 171 | } 172 | /*关闭弹出框口*/ 173 | function x_admin_close(){ 174 | var index = parent.layer.getFrameIndex(window.name); 175 | parent.layer.close(index); 176 | } 177 | function errorCheck(data){ 178 | if(data[0].code=='0'){ 179 | layer.msg(data[0].text, {icon: 2}); 180 | return true; 181 | } 182 | return false; 183 | } 184 | 185 | /*对所有选中部分进行操作*/ 186 | function allClicked(obj,operate){ 187 | var data=tableCheck.getData(); 188 | layer.confirm('确认要'+obj.name+'选中的所有行吗?',function(index){ 189 | $.ajax({ 190 | url:'ajax.php?m=modStatus', 191 | type:'POST', 192 | dataType:'json', 193 | data:{'type':type,'operate':operate,'ids':data}, 194 | success:function(data){ 195 | debugLog(data); 196 | if(errorCheck(data)){ 197 | return false; 198 | } 199 | layer.msg('操作成功',{icon:1}); 200 | } 201 | }) 202 | }); 203 | } 204 | //IP 转成整型 205 | function ip2int(ip) 206 | { 207 | var num = 0; 208 | ip = ip.split("."); 209 | num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]); 210 | num = num >>> 0; 211 | return num; 212 | } 213 | 214 | // 整型解析为 IP 地址 215 | function int2ip(num) 216 | { 217 | var str; 218 | var tt = new Array(); 219 | tt[0] = (num >>> 24) >>> 0; 220 | tt[1] = ((num << 8) >>> 24) >>> 0; 221 | tt[2] = (num << 16) >>> 24; 222 | tt[3] = (num << 24) >>> 24; 223 | str = String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]); 224 | return str; 225 | } -------------------------------------------------------------------------------- /ctf-admin/lib/layui/css/modules/code.css: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} -------------------------------------------------------------------------------- /ctf-admin/lib/layui/css/modules/laydate/default/laydate.css: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | .laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{color:#fff!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px} -------------------------------------------------------------------------------- /ctf-admin/lib/layui/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /ctf-admin/lib/layui/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /ctf-admin/lib/layui/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/font/iconfont.eot -------------------------------------------------------------------------------- /ctf-admin/lib/layui/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/font/iconfont.ttf -------------------------------------------------------------------------------- /ctf-admin/lib/layui/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/font/iconfont.woff -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/0.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/1.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/10.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/11.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/12.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/13.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/14.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/15.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/16.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/17.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/18.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/19.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/2.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/20.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/21.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/22.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/23.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/24.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/25.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/26.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/27.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/28.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/29.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/3.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/30.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/31.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/32.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/33.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/34.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/35.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/36.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/37.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/38.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/39.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/4.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/40.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/41.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/42.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/43.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/44.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/45.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/46.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/47.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/48.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/49.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/5.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/50.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/51.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/52.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/53.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/54.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/55.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/56.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/57.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/58.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/59.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/6.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/60.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/61.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/62.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/63.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/64.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/65.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/66.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/67.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/68.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/69.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/7.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/70.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/71.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/8.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/images/face/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/ctf-admin/lib/layui/images/face/9.gif -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/carousel.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",o=">*[carousel-item]>*",l="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(o),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.indicator(),e.elemItem.length<=1||(e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a/g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend('

'+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/element.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(i){"use strict";var a=layui.$,t=(layui.hint(),layui.device()),l="element",e="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(i){var t=this;return a.extend(!0,t.config,i),t},s.prototype.on=function(i,a){return layui.onevent.call(this,l,i,a)},s.prototype.tabAdd=function(i,t){var l=".layui-tab-title",e=a(".layui-tab[lay-filter="+i+"]"),n=e.children(l),s=e.children(".layui-tab-content");return n.append('
  • '+(t.title||"unnaming")+"
  • "),s.append('
    '+(t.content||"")+"
    "),y.hideTabMore(!0),y.tabAuto(),this},s.prototype.tabDelete=function(i,t){var l=".layui-tab-title",e=a(".layui-tab[lay-filter="+i+"]"),n=e.children(l),s=n.find('>li[lay-id="'+t+'"]');return y.tabDelete(null,s),this},s.prototype.tabChange=function(i,t){var l=".layui-tab-title",e=a(".layui-tab[lay-filter="+i+"]"),n=e.children(l),s=n.find('>li[lay-id="'+t+'"]');return y.tabClick(null,null,s),this},s.prototype.progress=function(i,t){var l="layui-progress",e=a("."+l+"[lay-filter="+i+"]"),n=e.find("."+l+"-bar"),s=n.find("."+l+"-text");return n.css("width",t),s.text(t),this};var o=".layui-nav",c="layui-nav-item",r="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",h="layui-nav-more",f="layui-anim layui-anim-upbit",y={tabClick:function(i,t,s){var o=s||a(this),t=t||o.parent().children("li").index(o),c=o.parents(".layui-tab").eq(0),r=c.children(".layui-tab-content").children(".layui-tab-item"),u=o.find("a"),d=c.attr("lay-filter");"javascript:;"!==u.attr("href")&&"_blank"===u.attr("target")||(o.addClass(e).siblings().removeClass(e),r.eq(t).addClass(n).siblings().removeClass(n)),layui.event.call(this,l,"tab("+d+")",{elem:c,index:t})},tabDelete:function(i,t){var l=t||a(this).parent(),n=l.index(),s=l.parents(".layui-tab").eq(0),o=s.children(".layui-tab-content").children(".layui-tab-item");l.hasClass(e)&&(l.next()[0]?y.tabClick.call(l.next()[0],null,n+1):l.prev()[0]&&y.tabClick.call(l.prev()[0],null,n-1)),l.remove(),o.eq(n).remove(),setTimeout(function(){y.tabAuto()},50)},tabAuto:function(){var i="layui-tab-more",l="layui-tab-bar",e="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),c=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),r=a('');if(n===window&&8!=t.ie&&y.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var i=a(this);if(!i.find("."+e)[0]){var t=a('');t.on("click",y.tabDelete),i.append(t)}}),o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+l)[0])return;o.append(r),s.attr("overflow",""),r.on("click",function(a){o[this.title?"removeClass":"addClass"](i),this.title=this.title?"":"收缩"})}else o.find("."+l).remove(),s.removeAttr("overflow")})},hideTabMore:function(i){var t=a(".layui-tab-title");i!==!0&&"tabmore"===a(i.target).attr("lay-stope")||(t.removeClass("layui-tab-more"),t.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var i=a(this),t=i.parents(o),n=t.attr("lay-filter"),s=i.find("a");i.find("."+d)[0]||("javascript:;"!==s.attr("href")&&"_blank"===s.attr("target")||(t.find("."+e).removeClass(e),i.addClass(e)),layui.event.call(this,l,"nav("+n+")",i))},clickChild:function(){var i=a(this),t=i.parents(o),n=t.attr("lay-filter");t.find("."+e).removeClass(e),i.addClass(e),layui.event.call(this,l,"nav("+n+")",i)},showChild:function(){var i=a(this),t=i.parents(o),l=i.parent(),e=i.siblings("."+d);t.hasClass(u)&&(e.removeClass(f),l["none"===e.css("display")?"addClass":"removeClass"](c+"ed"))},collapse:function(){var i=a(this),t=i.find(".layui-colla-icon"),e=i.siblings(".layui-colla-content"),s=i.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),c="none"===e.css("display");if("string"==typeof s.attr("lay-accordion")){var r=s.children(".layui-colla-item").children("."+n);r.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),r.removeClass(n)}e[c?"addClass":"removeClass"](n),t.html(c?"":""),layui.event.call(this,l,"collapse("+o+")",{title:i,content:e,show:c})}};s.prototype.init=function(i){var l={tab:function(){y.tabAuto.call({})},nav:function(){var i=200,l={},e={},s={},p=function(o,c,r){var y=a(this),p=y.find("."+d);c.hasClass(u)?o.css({top:y.position().top,height:y.children("a").height(),opacity:1}):(p.addClass(f),o.css({left:y.position().left+parseFloat(y.css("marginLeft")),top:y.position().top+y.height()-5}),l[r]=setTimeout(function(){o.css({width:y.width(),opacity:1})},t.ie&&t.ie<10?0:i),clearTimeout(s[r]),"block"===p.css("display")&&clearTimeout(e[r]),e[r]=setTimeout(function(){p.addClass(n),y.find("."+h).addClass(h+"d")},300))};a(o).each(function(t){var o=a(this),f=a(''),v=o.find("."+c);o.find("."+r)[0]||(o.append(f),v.on("mouseenter",function(){p.call(this,f,o,t)}).on("mouseleave",function(){o.hasClass(u)||(clearTimeout(e[t]),e[t]=setTimeout(function(){o.find("."+d).removeClass(n),o.find("."+h).removeClass(h+"d")},300))}),o.on("mouseleave",function(){clearTimeout(l[t]),s[t]=setTimeout(function(){o.hasClass(u)?f.css({height:0,top:f.position().top+f.height()/2,opacity:0}):f.css({width:0,left:f.position().left+f.width()/2,opacity:0})},i)})),v.each(function(){var i=a(this),t=i.find("."+d);if(t[0]&&!i.find("."+h)[0]){var l=i.children("a");l.append('')}i.off("click",y.clickThis).on("click",y.clickThis),i.children("a").off("click",y.showChild).on("click",y.showChild),t.children("dd").off("click",y.clickChild).on("click",y.clickChild)})})},breadcrumb:function(){var i=".layui-breadcrumb";a(i).each(function(){var i=a(this),t=i.attr("lay-separator")||">",l=i.find("a");l.find(".layui-box")[0]||(l.each(function(i){i!==l.length-1&&a(this).append(''+t+"")}),i.css("visibility","visible"))})},progress:function(){var i="layui-progress";a("."+i).each(function(){var t=a(this),l=t.find(".layui-progress-bar"),e=l.attr("lay-percent");l.css("width",e),t.attr("lay-showPercent")&&setTimeout(function(){var a=Math.round(l.width()/t.width()*100);a>100&&(a=100),l.html(''+a+"%")},350)})},collapse:function(){var i="layui-collapse";a("."+i).each(function(){var i=a(this).find(".layui-colla-item");i.each(function(){var i=a(this),t=i.find(".layui-colla-title"),l=i.find(".layui-colla-content"),e="none"===l.css("display");t.find(".layui-colla-icon").remove(),t.append(''+(e?"":"")+""),t.off("click",y.collapse).on("click",y.collapse)})})}};return layui.each(l,function(i,a){a()})};var p=new s,v=a(document);p.init();var b=".layui-tab-title li";v.on("click",b,y.tabClick),v.on("click",y.hideTabMore),a(window).on("resize",y.tabAuto),i(l,p)}); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/flow.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)}); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/form.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,a=layui.hint(),n=layui.device(),l="form",s=".layui-form",r="layui-this",u="layui-hide",c="layui-disabled",o=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:[/^\d+$/,"只能填写数字"],date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};o.prototype.set=function(e){var t=this;return i.extend(!0,t.config,e),t},o.prototype.verify=function(e){var t=this;return i.extend(!0,t.config.verify,e),t},o.prototype.on=function(e,i){return layui.onevent.call(this,l,e,i)},o.prototype.render=function(e,t){var n=this,o=i(s+function(){return t?'[lay-filter="'+t+'"]':""}()),d={select:function(){var e,t="请选择",a="layui-form-select",n="layui-select-title",s="layui-select-none",d="",f=o.find("select"),y=function(t,l){i(t.target).parent().hasClass(n)&&!l||(i("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},h=function(t,o,f){var h=i(this),p=t.find("."+n),m=p.find("input"),k=t.find("dl"),g=k.children("dd");if(!o){var b=function(){var e=t.offset().top+t.outerHeight()+5-v.scrollTop(),i=k.outerHeight();t.addClass(a+"ed"),g.removeClass(u),e+i>v.height()&&e>=i&&t.addClass(a+"up")},x=function(e){t.removeClass(a+"ed "+a+"up"),m.blur(),e||C(m.val(),function(e){e&&(d=k.find("."+r).html(),m&&m.val(d))})};p.on("click",function(e){t.hasClass(a+"ed")?x():(y(e,!0),b()),k.find("."+s).remove()}),p.find(".layui-edge").on("click",function(){m.focus()}),m.on("keyup",function(e){var i=e.keyCode;9===i&&b()}).on("keydown",function(e){var i=e.keyCode;9===i?x():13===i&&e.preventDefault()});var C=function(e,t,a){var n=0;layui.each(g,function(){var t=i(this),l=t.text(),s=l.indexOf(e)===-1;(""===e||"blur"===a?e!==l:s)&&n++,"keyup"===a&&t[s?"addClass":"removeClass"](u)});var l=n===g.length;return t(l),l},w=function(e){var i=this.value,t=e.keyCode;return 9!==t&&13!==t&&37!==t&&38!==t&&39!==t&&40!==t&&(C(i,function(e){e?k.find("."+s)[0]||k.append('

    无匹配项

    '):k.find("."+s).remove()},"keyup"),void(""===i&&k.find("."+s).remove()))};f&&m.on("keyup",w).on("blur",function(i){e=m,d=k.find("."+r).html(),setTimeout(function(){C(m.val(),function(e){e&&!d&&m.val("")},"blur")},200)}),g.on("click",function(){var e=i(this),a=e.attr("lay-value"),n=h.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?m.val(""):(m.val(e.text()),e.addClass(r)),e.siblings().removeClass(r),h.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:h[0],value:a,othis:t}),x(!0),!1)}),t.find("dl>dt").on("click",function(e){return!1}),i(document).off("click",y).on("click",y)}};f.each(function(e,l){var s=i(this),u=s.next("."+a),o=this.disabled,d=l.value,f=i(l.options[l.selectedIndex]),y=l.options[0];if("string"==typeof s.attr("lay-ignore"))return s.show();var v="string"==typeof s.attr("lay-search"),p=y?y.value?t:y.innerHTML||t:t,m=i(['
    ','
    ','
    ','
    '+function(e){var i=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?i.push("
    "+a.label+"
    "):i.push('
    '+a.innerHTML+"
    "):i.push('
    '+(a.innerHTML||t)+"
    ")}),0===i.length&&i.push('
    没有选项
    '),i.join("")}(s.find("*"))+"
    ","
    "].join(""));u[0]&&u.remove(),s.after(m),h.call(this,m,o,v)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},t=o.find("input[type=checkbox]"),a=function(e,t){var a=i(this);e.on("click",function(){var i=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(t[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(t[1]).find("em").text(n[0])),layui.event.call(a[0],l,t[2]+"("+i+")",{elem:a[0],value:a[0].value,othis:e}))})};t.each(function(t,n){var l=i(this),s=l.attr("lay-skin"),r=(l.attr("lay-text")||"").split("|"),u=this.disabled;"switch"===s&&(s="_"+s);var o=e[s]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+o[0]),f=i(['
    ',{_switch:""+((n.checked?r[0]:r[1])||"")+""}[s]||(n.title.replace(/\s/g,"")?""+n.title+"":"")+''+(s?"":"")+"","
    "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,o)})},radio:function(){var e="layui-form-radio",t=["",""],a=o.find("input[type=radio]"),n=function(a){var n=i(this),r="layui-anim-scaleSpring";a.on("click",function(){var u=n[0].name,c=n.parents(s),o=n.attr("lay-filter"),d=c.find("input[name="+u.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=i(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(r).html(t[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(r).html(t[0]),layui.event.call(n[0],l,"radio("+o+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var s=i(this),r=s.next("."+e),u=this.disabled;if("string"==typeof s.attr("lay-ignore"))return s.show();var o=i(['
    ',''+t[l.checked?0:1]+"",""+(l.title||"未命名")+"","
    "].join(""));r[0]&&r.remove(),s.after(o),n.call(this,o)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,i){i()}),n};var d=function(){var e=i(this),a=f.config.verify,r=null,u="layui-form-danger",c={},o=e.parents(s),d=o.find("*[lay-verify]"),y=e.parents("form")[0],v=o.find("input,select,textarea"),h=e.attr("lay-filter");return layui.each(d,function(e,l){var s=i(this),c=s.attr("lay-verify").split("|"),o="",d=s.val();if(s.removeClass(u),layui.each(c,function(e,i){var c="function"==typeof a[i];if(a[i]&&(c?o=a[i](d,l):!a[i][0].test(d)))return t.msg(o||a[i][1],{icon:5,shift:6}),n.android||n.ios||l.focus(),s.addClass(u),r=!0}),r)return r}),!r&&(layui.each(v,function(e,i){i.name&&(/^checkbox|radio$/.test(i.type)&&!i.checked||(c[i.name]=i.value))}),layui.event.call(this,l,"submit("+h+")",{elem:this,form:y,field:c}))},f=new o,y=i(document),v=i(window);f.render(),y.on("reset",s,function(){var e=i(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),y.on("submit",s,d).on("click","*[lay-submit]",d),e(l,f)}); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/laypage.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var a=document,t="getElementById",r="getElementsByTagName",n="laypage",i="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.groups=0|a.groups||5,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),a.groups<0?a.groups=0:a.groups>a.pages&&(a.groups=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var t=a.pages>a.groups?Math.ceil((a.curr+(a.groups>1?1:0))/(a.groups>0?a.groups:1)):1,r={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";t>1&&a.first!==!1&&0!==a.groups&&e.push(''+(a.first||1)+"");var r=Math.floor((a.groups-1)/2),n=t>1?a.curr-r:1,i=t>1?function(){var e=a.curr+(a.groups-r-1);return e>a.pages?a.pages:e}():a.groups;for(i-n2&&e.push('');n<=i;n++)n===a.curr?e.push('"+n+""):e.push(''+n+"");return a.pages>a.groups&&a.pages>i&&a.last!==!1&&(i+1…'),0!==a.groups&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),skip:function(){return['到第','','页',""].join("")}()};return['
    ',function(){var e=[];return layui.each(a.layout,function(a,t){r[t]&&e.push(r[t])}),e.join("")}(),"
    "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,n=t.config,i=e.children,u=e[r]("button")[0],p=e[r]("input")[0],l=e[r]("select")[0],o=function(){var e=0|p.value.replace(/\s|\D/g,"");e&&(n.curr=e,t.render())};if(a)return o();for(var c=0,g=i.length;cn.pages||(n.curr=e,t.render())});l&&s.on(l,"change",function(){var e=this.value;n.curr*e>n.count&&(n.curr=Math.ceil(n.count/e)),n.limit=e,t.render()}),u&&s.on(u,"click",function(){o()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[r]("input")[0];t&&s.on(t,"keyup",function(t){var r=this.value,n=t.keyCode;/^(37|38|39|40)$/.test(n)||(/\D/.test(r)&&(this.value=r.replace(/\D/,"")),13===n&&a.jump(e,!0))})}},u.prototype.render=function(e){var r=this,n=r.config,i=r.type(),u=r.view();2===i?n.elem&&(n.elem.innerHTML=u):3===i?n.elem.html(u):a[t](n.elem)&&(a[t](n.elem).innerHTML=u),n.jump&&n.jump(n,e);var s=a[t]("layui-laypage-"+n.index);r.jump(s),n.hash&&!e&&(location.hash="!"+n.hash+"="+n.curr),r.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(n,s)}); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/laytpl.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},n={exp:function(e){return new RegExp(e,"g")},query:function(e,n,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return c((n||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var n="Laytpl Error:";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},c=n.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=c("^"+r.open+"#",""),l=c(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(c(r.open+"#"),r.open+"# ").replace(c(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(/(?="|')/g,"\\").replace(n.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(n.query(1),function(e){var n='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(c(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),n='"+_escape_('),n+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,n.escape)}catch(u){return delete o.cache,n.error(u,p)}},t.pt.render=function(e,r){var c,t=this;return e?(c=t.cache?t.cache(e,n.escape):t.parse(t.tpl,e),r?void r(c):c):n.error("no data")};var o=function(e){return"string"!=typeof e?n.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var n in e)r[n]=e[n]},o.v="1.2.0",e("laytpl",o)}); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/tree.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('
      '),s=o(["
    • ",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),"
    • "].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('
      '));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})}); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/upload.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=(layui.hint(),layui.device()),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,l,e,i)}},a=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},l="upload",r="layui-upload-file",u="layui-upload-form",c="layui-upload-iframe",s="layui-upload-choose",f=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};f.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,multiple:!1},f.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},f.prototype.file=function(){var e=this,t=e.config,o=e.elemFile=i(['"].join("")),a=t.elem.next();(a.hasClass(r)||a.hasClass(u))&&a.remove(),n.ie&&n.ie<10&&t.elem.wrap('
      '),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(o),n.ie&&n.ie<10&&e.initIE()},f.prototype.initIE=function(){var e=this,t=e.config,n=i(''),o=i(['
      ',"
      "].join(""));i("#"+c)[0]||i("body").append(n),t.elem.next().hasClass(c)||(e.elemFile.wrap(o),t.elem.next("."+c).append(function(){var e=[];return layui.each(t.data,function(i,t){e.push('')}),e.join("")}()))},f.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},f.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},f.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},f.prototype.upload=function(e,t){var o,a=this,l=a.config,r=a.elemFile[0],u=function(){layui.each(e||a.files||a.chooseFiles||r.files,function(e,t){var n=new FormData;n.append(l.field,t),layui.each(l.data,function(e,i){n.append(e,i)}),i.ajax({url:l.url,type:l.method,data:n,contentType:!1,processData:!1,dataType:"json",success:function(i){d(e,i)},error:function(){a.msg("请求上传接口出现异常"),m(e)}})})},p=function(){var e=i("#"+c);a.elemFile.parent().submit(),clearInterval(f.timer),f.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){a.msg("获取上传后的响应信息出现异常"),clearInterval(f.timer),m()}i&&(clearInterval(f.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(a.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},a.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){a.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){a.upload(e)})},v=l.exts,h=function(){var i=[];return layui.each(e||a.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){a.preview(e)},upload:function(e,i){var t={};t[e]=i,a.upload(t)},pushFile:function(){return a.files=a.files||{},layui.each(a.chooseFiles,function(e,i){a.files[e]=i}),a.files},elemFile:r},y=function(){return"choose"===t?l.choose&&l.choose(g):(l.before&&l.before(g),n.ie?n.ie>9?u():p():void u())};switch(h=0===h.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":h,l.accept){case"file":if(v&&!RegExp("\\w\\.("+v+")$","i").test(escape(h)))return a.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(v||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(h)))return a.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(v||"mp3|wav|mid")+")$","i").test(escape(h)))return a.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(h,function(e,i){RegExp("\\w\\.("+(v||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(o=!0)}),o)return a.msg("选择的图片中包含不支持的格式"),r.value=""}return l.size>0&&!(n.ie&&n.ie<10)?layui.each(a.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;return t=t>=1?Math.floor(t)+(t%1>0?t.toFixed(1):0)+"MB":l.size+"KB",r.value="",a.msg("文件不能超过"+t)}y()}):void y()},f.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},a=function(i,n){var o=e.elemFile,a=i.length>1?i.length+"个文件":(i[0]||{}).name||o[0].value.match(/[^\/\\]+\..+/g)||[]||"";o.next().hasClass(s)&&o.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||o.after(''+a+"")};t.elem.off("upload.start").on("upload.start",function(){e.elemFile[0].click()}),n.ie&&n.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,l){var r=i(this),u=l.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):a(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():a(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new f(e);return a.call(i)},e(l,o)}); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/lay/modules/util.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,t={fixbar:function(e){var t,a,i="layui-fixbar",l="layui-fixbar-top",r=o(document),c=o("body");e=o.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var n=[e.bar1,e.bar2,""],u=o(['
        ',e.bar1?'
      • '+n[0]+"
      • ":"",e.bar2?'
      • '+n[1]+"
      • ":"",'
      • '+n[2]+"
      • ","
      "].join("")),s=u.find("."+l),b=function(){var o=r.scrollTop();o>=e.showHeight?t||(s.show(),t=1):t&&(s.hide(),t=0)};o("."+i)[0]||("object"==typeof e.css&&u.css(e.css),c.append(u),b(),u.find("li").on("click",function(){var t=o(this),a=t.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,a)}),r.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){b()},100)}))},countdown:function(e,o,t){var a=this,i="function"==typeof o,l=new Date(e).getTime(),r=new Date(!o||i?(new Date).getTime():o).getTime(),c=l-r,n=[Math.floor(c/864e5),Math.floor(c/36e5)%24,Math.floor(c/6e4)%60,Math.floor(c/1e3)%60];i&&(t=o);var u=setTimeout(function(){a.countdown(e,r+1e3,t)},1e3);return t&&t(c>0?n:[0,0,0,0],o,u),c<=0&&clearTimeout(u),u},timeAgo:function(e,o){var t=(new Date).getTime()-new Date(e).getTime();return t>2592e6?(t=new Date(e).toLocaleString(),o&&(t=t.replace(/\s[\S]+$/g,"")),t):t>=864e5?(t/1e3/60/60/24|0)+"天前":t>=36e5?(t/1e3/60/60|0)+"小时前":t>=18e4?(t/1e3/60|0)+"分钟前":t<0?"未来":"刚刚"}};e("util",t)}); -------------------------------------------------------------------------------- /ctf-admin/lib/layui/layui.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.0.2 MIT License By http://www.layui.com */ 2 | ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.0.2"},r=function(){var e=t.scripts,o=e[e.length-1].src;return o.substring(0,o.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",util:"modules/util",flow:"modules/flow",carousel:"modules/carousel",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"dest/layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,a=function(){return"function"==typeof t&&t(function(e,t){layui[e]=t,o.status[e]=!0}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?a.call(n):(n.use(e,a),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?a(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?a(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":o.base||"")+(y.modules[f]||f)+".js";v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||i?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?i:(function p(){return++y>1e3*o.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),i)},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?a("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,"").replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o){if(t=t||"layui",e.JSON&&e.JSON.parse){if(null===o)return delete localStorage[t];o="object"==typeof o?o:{key:o};try{var n=JSON.parse(localStorage[t])}catch(r){var n={}}return o.value&&(n[o.key]=o.value),o.remove&&delete n[o.key],localStorage[t]=JSON.stringify(n),o.key?n[o.key]:n}},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:a}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;oa?1:r 2 | 3 | 4 | 5 | 后台登录-X-admin2.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 34 | 35 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /ctf-admin/noticeList.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 公告列表 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 |
      25 | 共有数据:0 26 | 27 |
      28 |
      29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
      38 |
      39 |
      ID发布时间内容状态操作
      49 |
      50 | 51 | 52 | -------------------------------------------------------------------------------- /ctf-admin/noticeManage.php: -------------------------------------------------------------------------------- 1 | query("SELECT * from notices where id='$id'"); 19 | if(!$sql){ 20 | returnInfo(SQL_ERROR); 21 | } 22 | $row=$sql->fetch_assoc(); 23 | } 24 | else{ 25 | die("~~~"); 26 | } 27 | ?> 28 | 29 | 30 | 31 | 32 | 欢迎页面-X-admin2.0 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 46 | 47 | 48 |
      49 |
      50 | 51 |
      52 | 55 |
      56 | 57 |
      58 |
      59 |
      60 | 62 | 65 |
      66 |
      67 |
      68 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /ctf-admin/quesList.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 题目信息列表 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 |
      25 | 共有数据:0 26 | 27 |
      28 |
      29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
      38 |
      39 |
      ID类型分数标题内容flag状态操作
      52 | 53 | 65 |
      66 | 67 | 68 | -------------------------------------------------------------------------------- /ctf-admin/userAdd.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 欢迎页面-X-admin2.0 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 |
      28 |
      29 |
      30 | 33 |
      34 | 36 |
      37 |
      38 | *将会成为您唯一的登入名 39 |
      40 |
      41 |
      42 | 45 |
      46 | 48 |
      49 |
      50 |
      51 | 54 |
      55 | 57 |
      58 |
      59 | 6到16个字符 60 |
      61 |
      62 |
      63 | 66 |
      67 | 69 |
      70 |
      71 |
      72 | 74 | 77 |
      78 |
      79 |
      80 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /ctf-admin/userBaseList.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 用户基础信息管理 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 |
      25 | 共有数据:0 26 | 27 |
      28 |
      29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
      38 |
      39 |
      ID用户名邮箱注册时间最后登陆时间最后登陆ip状态操作
      52 | 53 | 65 |
      66 | 67 | 68 | -------------------------------------------------------------------------------- /ctf-admin/userDeleteList.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 欢迎页面-X-admin2.0 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 24 | 25 | 26 |
      27 | 共有数据:0 28 | 29 |
      30 |
      31 | 32 | 33 | 34 | 35 | 36 | 37 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
      38 |
      39 |
      ID用户名注册时间邮箱ip
      50 | 51 |
      52 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /ctf-admin/userEdit.php: -------------------------------------------------------------------------------- 1 | query("SELECT * from users_info where id='$id'"); 10 | if(!$sql){ 11 | returnInfo(SQL_ERROR); 12 | } 13 | $row=$sql->fetch_assoc(); 14 | ?> 15 | 16 | 17 | 18 | 19 | 欢迎页面-X-admin2.0 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 33 | 34 | 35 |
      36 |
      37 | 38 | 39 |
      40 | 43 |
      44 | 45 |
      46 |
      47 |
      48 | 51 |
      52 | 53 |
      54 |
      55 |
      56 | 59 |
      60 | 61 |
      62 |
      63 |
      64 | 67 |
      68 | 69 |
      70 |
      71 |
      72 | 75 |
      76 | 77 |
      78 |
      79 |
      80 | 82 | 85 |
      86 |
      87 |
      88 | 158 | 159 | 160 | -------------------------------------------------------------------------------- /ctf-admin/userSubmitList.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 用户基础信息管理 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 |
      25 | 共有数据:0 26 | 27 |
      28 |
      29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
      38 |
      39 |
      ID用户名问题提交时间提交ipflag状态
      51 | 52 | 64 |
      65 | 66 | 67 | -------------------------------------------------------------------------------- /ctf-admin/welcome.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 欢迎页面-X-admin2.0 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
      18 |
      19 | 信息统计 20 |
      21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 56 | 57 | 58 | 59 | 61 | 62 | 63 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 |
      服务器信息
      服务器环境
      服务器IP地址
      服务器域名
      服务器端口
      本文件所在文件夹
      服务器操作系统
      服务器时间 55 |
      北京时间 60 |
      剩余空间 64 |
      PHP运行方式
      PHP版本
      服务器解译引擎
      服务器的语言种类
      服务器上次启动到现在已运行
      当前程序占用内存
      当前Session
      当前系统用户名
      102 |
      103 |
      104 |
      105 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /fonts/1Y.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/1Y.woff2 -------------------------------------------------------------------------------- /fonts/material-design-icons/Material-Design-Icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/material-design-icons/Material-Design-Icons.eot -------------------------------------------------------------------------------- /fonts/material-design-icons/Material-Design-Icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/material-design-icons/Material-Design-Icons.ttf -------------------------------------------------------------------------------- /fonts/material-design-icons/Material-Design-Icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/material-design-icons/Material-Design-Icons.woff -------------------------------------------------------------------------------- /fonts/material-design-icons/Material-Design-Icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/material-design-icons/Material-Design-Icons.woff2 -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /fonts/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onlykood/A_Simple_CTF/83d88e5acd326e692f2403c01cfa1c48ac06dc7d/fonts/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
      25 | 51 |
      52 |
      53 | 74 |
      75 |
      76 |

      NEVER GIVE UP

      77 |
      78 |
      79 |
      80 |
      81 |
      82 |
      83 |
      84 |
      85 |

      86 |
      87 |
      88 |
      89 |
      90 |
      91 | equalizer 92 |
      Top 3 Teams
      93 |
      94 |
      95 |
      96 |
      97 |
      98 | trending_down 99 |
      Recent Solves
      100 |
      101 |
      102 |
      103 |
      104 |
      105 |
      106 |
      107 |
      108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /init.php: -------------------------------------------------------------------------------- 1 | '连接数据库失败,请重试!', 11 | 'SQL_ERROR' => '数据库错误,请重试!', 12 | 'DATA_ERROR' => '数据异常,请重试!', 13 | 'DATA_MISS' => '数据丢失,请重试!', 14 | 'NO_LOGIN' => '请登录后再次常试!', 15 | ]); 16 | 17 | # 数据库连接类 18 | class Database{ 19 | private static $database; 20 | public static function getConnection(){ 21 | if ( !self::$database ){ 22 | self::$database = new mysqli( SQL_CONFIG['DB_HOST'], SQL_CONFIG['DB_USER'], SQL_CONFIG['DB_PASS'], SQL_CONFIG['DB_NAME'] ); 23 | self::$database->set_charset("utf8"); 24 | } 25 | return self::$database; 26 | } 27 | } 28 | 29 | if(DEBUG){ 30 | # Debug 模式,获取响应开始时间 31 | $startTime = microtime(true); 32 | ini_set( 'display_errors', '1' ); 33 | } 34 | else{ 35 | # 关闭所有错误报告 36 | error_reporting(0); 37 | } 38 | 39 | /** 40 | * @description 用 json 格式返回信息 41 | * @Author kood 42 | * @DateTime 2019-02-27 43 | * @param string $text 小提示框的显示文字 44 | * @param string $code 返回的状态码 45 | * @param array $data 返回的数据 46 | * @param string $debugInfo 如果开启 debug 模式,附加此项 47 | * @return string json 字符串 48 | */ 49 | function returnInfo(string $text='NULL',int $code=0,$datas=array()){ 50 | $info=array( 51 | array($code,$text), 52 | $datas 53 | ); 54 | if(DEBUG){ 55 | global $link; 56 | global $startTime; 57 | $endTime = microtime(true); 58 | $info[0][]=$endTime-$startTime; 59 | if($link->connect_errno) 60 | $info[0][]=$link->connect_error; 61 | else 62 | $info[0][]=$link->error; 63 | } 64 | exit(json_encode($info)); 65 | } 66 | 67 | # 检测数据库连接情况 68 | $link=@Database::getConnection(); 69 | if ($link->connect_errno){ 70 | returnInfo(MY_ERROR['SQL_CONNECT_FAIL']); 71 | } 72 | 73 | /** 74 | * @description 从配置数据表中读取配置 75 | * @Author kood 76 | * @DateTime 2019-03-20 77 | * @param string $configName 配置名称 78 | * @param bool|boolean $retJson 数据是否以json直接返回 79 | * @return [type] [description] 80 | */ 81 | function getConfig(string $configName, bool $retJson = false) 82 | { 83 | global $link; 84 | if(file_exists(CACHEPATH.'configs')){ 85 | $configs=json_decode(file_get_contents(CACHEPATH.'configs'),True); 86 | $info='ok-cache'; 87 | } 88 | else{ 89 | $sql = $link->query("SELECT name,value FROM configs"); 90 | $sql or returnInfo(MY_ERROR['SQL_ERROR']); 91 | $configs=array(); 92 | while($row=$sql->fetch_assoc()){ 93 | $configs[$row['name']]=$row['value']; 94 | } 95 | $configs['cache_open'] and file_put_contents(CACHEPATH.'configs', json_encode($configs), LOCK_EX); 96 | $info='ok'; 97 | } 98 | array_key_exists($configName,$configs) or returnInfo("No found config"); 99 | if (!$retJson) 100 | return $configs[$configName]; 101 | returnInfo($info, 1, $configs[$configName]); 102 | } 103 | 104 | #指定允许其他域名访问 105 | #header('Access-Control-Allow-Origin:*'); 106 | 107 | # 开启session 108 | session_start(); 109 | 110 | # 设置html编码格式 111 | # header("Content-type: text/html; charset=utf-8"); 112 | 113 | #设置php时区 114 | date_default_timezone_set('Asia/Shanghai'); 115 | 116 | # 加载 token 117 | if( !isset($_SESSION['token']) ){ 118 | $_SESSION['token'] = hash( 'ripemd160', sha1( uniqid( '', true ) ) ); 119 | } 120 | -------------------------------------------------------------------------------- /js/ctf.js: -------------------------------------------------------------------------------- 1 | /*Globals*/ 2 | var DEBUG=false; 3 | var loggedin = false; 4 | var mq=false; 5 | 6 | var token; 7 | var name = ''; 8 | var said = ''; 9 | var mail = ''; 10 | var nickname=''; 11 | var quesType=['Web','Reverse','Pwn','Misc','Crypto','Stega','Ppc']; 12 | 13 | function debugLog(data) 14 | { 15 | if(DEBUG){ 16 | console.log(data); 17 | } 18 | return false; 19 | } 20 | function loadSession() 21 | { 22 | debugLog("load Session"); 23 | $.ajax({ 24 | url: 'ajax.php?m=getSession', 25 | dataType: 'json', 26 | async:false,/*这里必须要设置同步,不然会造成不必要的麻烦,例如本来登陆的,但是访问页面却出现登陆界面,jq有警告也没办法了╮(╯▽╰)╭*/ 27 | success:function(data){ 28 | debugLog('========'); 29 | debugLog(data); 30 | if(errorCheck(data)){ 31 | debugLog("----"); 32 | logout(); 33 | return false; 34 | } 35 | if(data[1][0]){ 36 | login(data[1]); 37 | } 38 | else{ 39 | logout(); 40 | } 41 | token=data[1][1]; 42 | }, 43 | error:function(data){ 44 | debugLog(data); 45 | } 46 | }); 47 | } 48 | 49 | function loadThemeColor(){ 50 | var color=sessionStorage.getItem('themeColor'); 51 | if(color==null){ 52 | sessionStorage.setItem('themeColor', 'grey darken-4'); 53 | color='grey darken-4'; 54 | } 55 | $('nav').attr('class',color); 56 | return false; 57 | } 58 | 59 | function setThemeColor(color){ 60 | sessionStorage.setItem('themeColor',color); 61 | loadThemeColor(); 62 | return false; 63 | } 64 | function login(data){ 65 | name = data[2]; 66 | mail = data[4]; 67 | said = data[5]; 68 | nickname=data[3]; 69 | loggedin = true; 70 | $('.head-menu').append('
    • 退出
    • ') 71 | } 72 | 73 | function logout(){ 74 | name = 'unknow'; 75 | mail = 'unknow'; 76 | said = 'unknow'; 77 | nickname='unknow'; 78 | loggedin = false; 79 | } 80 | 81 | function getCaptcha() 82 | { 83 | //.attr('src','ajax.php?m=getCaptcha'+String(Math.random()).slice(2)); 84 | $("#capimg").attr('src','ajax.php?m=getCaptcha&'+String(Math.random()).slice(2)); 85 | return false; 86 | } 87 | 88 | function getMyDate(str){ 89 | /*补上3个0 转换为数字*/ 90 | str+='000'; 91 | str-=0; 92 | var oDate = new Date(str), 93 | oYear = oDate.getFullYear(), 94 | oMonth = oDate.getMonth()+1, 95 | oDay = oDate.getDate(), 96 | oHour = oDate.getHours(), 97 | oMin = oDate.getMinutes(), 98 | oSen = oDate.getSeconds(), 99 | oTime = oYear +'-'+ getzf(oMonth) +'-'+ getzf(oDay) +' '+ getzf(oHour) +':'+ getzf(oMin) +':'+getzf(oSen);//最后拼接时间 100 | return oTime; 101 | } 102 | 103 | /*补0操作*/ 104 | function getzf(num){ 105 | if(parseInt(num) < 10){ 106 | num = '0'+num; 107 | } 108 | return num; 109 | } 110 | 111 | function errorCheck(data){ 112 | if(data[0][0]=='0'){ 113 | Materialize.toast(data[0][1], 4000); 114 | return 1; 115 | } 116 | if(data[0][0]=='-1'){ 117 | window.location.href='./easyInstall.php'; 118 | return 1; 119 | } 120 | return 0; 121 | } 122 | 123 | function loadTitle(){ 124 | //title=sessionStorage.getItem('title'); 125 | //pageTitle=sessionStorage.getItem('pageTitle'); 126 | //debugLog(title+' '+pageTitle); 127 | //if(title==null && pageTitle==null){ 128 | debugLog("触发loadTitle"); 129 | $.ajax({ 130 | type:'post', 131 | url: 'ajax.php?m=getTitle', 132 | dataType: 'json', 133 | success:function(data){ 134 | debugLog(data); 135 | if(data[0][0]=='0'){ 136 | return false; 137 | } 138 | document.title = data[1][0]; 139 | $('.page-title').text(data[1][1]); 140 | //sessionStorage.setItem('title',data[1][0]); 141 | //sessionStorage.setItem('pageTitle',data[1][1]); 142 | }, 143 | error:function(data){ 144 | debugLog(data); 145 | } 146 | }); 147 | //} 148 | //else{ 149 | // document.title = title; 150 | // $('.page-title').text(pageTitle); 151 | //} 152 | return false; 153 | } 154 | 155 | function textToImg(img,uname) { 156 | if(img!=''){ 157 | return img; 158 | } 159 | var name = uname.charAt(0); 160 | var fontSize = 60; 161 | var fontWeight = 'bold'; 162 | var canvas = document.getElementById('headImg'); 163 | var img1 = document.getElementById('headImg'); 164 | canvas.width = 120; 165 | canvas.height = 120; 166 | var context = canvas.getContext('2d'); 167 | context.fillStyle = '#F7F7F9'; 168 | context.fillRect(0, 0, canvas.width, canvas.height); 169 | context.fillStyle = '#605CA8'; 170 | context.font = fontWeight + ' ' + fontSize + 'px sans-serif'; 171 | context.textAlign = 'center'; 172 | context.textBaseline = "middle"; 173 | context.fillText(name, fontSize, fontSize); 174 | return canvas.toDataURL('image/png'); 175 | }; 176 | 177 | $(document).ready(function(){ 178 | loadTitle(); 179 | loadThemeColor(); 180 | loadSession(); 181 | $(".button-collapse").sideNav(); 182 | $('.modal').modal(); 183 | DEBUG ? null : console.clear(); 184 | console.log("Welcome to my simple ctf, have a good time."); 185 | $('#logout').click(function(){ 186 | if(!loggedin){ 187 | Materialize.toast("你还没有登录!", 4000); 188 | loadAccount(); 189 | return false; 190 | } 191 | $.ajax({ 192 | type: 'POST', 193 | url: 'ajax.php?m=logout', 194 | data:{'token':token}, 195 | dataType: 'json', 196 | success: function(data) { 197 | Materialize.toast(data[0][1], 1000,'',function(){location.reload();}); 198 | }, 199 | error:function(data){ 200 | debugLog(data); 201 | } 202 | }); 203 | return false; 204 | }); 205 | }); -------------------------------------------------------------------------------- /js/notice.js: -------------------------------------------------------------------------------- 1 | function getNotice() 2 | { 3 | $.ajax({ 4 | type: 'POST', 5 | url: 'ajax.php?m=getNotice', 6 | data:{"token":token}, 7 | dataType:'json', 8 | success: function(data) { 9 | debugLog(data); 10 | if(errorCheck(data)){ 11 | return false; 12 | } 13 | var table = $( '' ); 14 | $.each 15 | ( 16 | data[1], 17 | function(num,content) 18 | { 19 | var trow = $( '' ); 20 | /*$( '
      ' ).text().appendTo( trow );*/ 21 | $( '' ).html('['+ getMyDate(content[0]) +'] '+content[1]).appendTo( trow ); 22 | trow.appendTo( table ); 23 | } 24 | ); 25 | $( '#notice' ).html( table.html() ); 26 | }, 27 | error: function(data) { 28 | debugLog(data); 29 | } 30 | }); 31 | return false; 32 | } 33 | $(document).ready(function(){ 34 | getNotice(); 35 | }); -------------------------------------------------------------------------------- /js/register.js: -------------------------------------------------------------------------------- 1 | /*判断是否进行了邮件传输情况*/ 2 | function mailSendCheck() 3 | { 4 | debugLog("load_reg run-->"); 5 | if(loggedin){ 6 | Materialize.toast("您已登陆!", 4000); 7 | window.location.href="account.html"; 8 | return false; 9 | } 10 | $.ajax({ 11 | type:'post', 12 | url:'ajax.php?m=mailSendCheck', 13 | data: {"token":token}, 14 | dataType:'json', 15 | success:function(data){ 16 | debugLog(data); 17 | errorCheck(data); 18 | if(data[0][0]=="2"){ 19 | $('#verify_regone').hide(); 20 | $('#verify_regtwo').show(); 21 | } 22 | else{ 23 | $('#verify_regone').show(); 24 | $('#verify_regtwo').hide(); 25 | } 26 | }, 27 | error:function(data){ 28 | debugLog(data); 29 | } 30 | }); 31 | return false; 32 | } 33 | 34 | function regVerifyCheck(){ 35 | if(loggedin){ 36 | Materialize.toast("您已登陆!",4000); 37 | window.location.href="account.html"; 38 | return false; 39 | } 40 | debugLog("verify run"+token); 41 | $.ajax({ 42 | type:'post', 43 | url:'ajax.php?m=getEmailVerify', 44 | data:{'token':token}, 45 | dataType:'json', 46 | success:function(data){ 47 | debugLog(data); 48 | errorCheck(data); 49 | if(data[1][0]=='0'){ 50 | $('.no-verify').show(); 51 | $('#no-captcha').attr('src','/ajax.php?m=getCaptcha&1'); 52 | $('.on-verify').hide(); 53 | } 54 | else{ 55 | $('.on-verify').show(); 56 | $('#on-captcha').attr('src','/ajax.php?m=getCaptcha&2'); 57 | $('.no-verify').hide(); 58 | } 59 | }, 60 | error:function(data){ 61 | debugLog(data); 62 | } 63 | }); 64 | return false; 65 | } 66 | 67 | $('.no-verify').submit(function(){ 68 | debugLog($("form").serializeArray()); 69 | $.ajax({ 70 | type:'post', 71 | url:'ajax.php?m=noVerifyRegister', 72 | data:$('form').serialize()+'&token='+token, 73 | dataType:'json', 74 | success:function(data){ 75 | debugLog(data); 76 | if(errorCheck(data)){ 77 | $("#no-captcha").click(); 78 | return false; 79 | } 80 | Materialize.toast(data[0][1],2000,"",function(){window.location.href="./account.html"}); 81 | }, 82 | error:function(data){ 83 | debugLog(data); 84 | } 85 | }); 86 | /*$("#no-captcha").click();*/ 87 | return false; 88 | }) 89 | 90 | $(document).ready(function(){ 91 | /*邮件验证是否开启*/ 92 | regVerifyCheck(); 93 | /*对于开启情况的邮件发送检测*/ 94 | mailSendCheck(); 95 | 96 | $("#sendmail").click(function(){ 97 | $.ajax({ 98 | type:'post', 99 | url:'ajax.php?m=sendRegMail', 100 | data:{ 101 | 'captcha':$('#verify_captcha').val(), 102 | 'email':$('#verify_email').val(), 103 | 'username':$('#verify_username').val(), 104 | 'token':token 105 | }, 106 | dataType:'json', 107 | success: function(data) { 108 | debugLog(data); 109 | if(errorCheck(data)){ 110 | $("#on-captcha").click(); 111 | return false; 112 | } 113 | Materialize.toast(data[0][1], 4000); 114 | if(data[0][0]=='1'){ 115 | mailSendCheck(); 116 | } 117 | }, 118 | error: function(data){ 119 | debugLog(data); 120 | } 121 | }); 122 | $("#on-captcha").click(); 123 | return false; 124 | }); 125 | 126 | $('#regaccount').click(function(){ 127 | debugLog("click this!"); 128 | return false; 129 | if(!$( '[name="verify_agree"]' ).prop( 'checked' )){ 130 | Materialize.toast("请同意注册协议!", 4000); 131 | return false; 132 | } 133 | else{ 134 | $('#regaccount').html('提交中...'); 135 | $.ajax({ 136 | type: 'post', 137 | url: 'ajax.php?m=register', 138 | data: {'password':$('#verify_password').val(),'repeat':$('#verify_repeat').val(),'regkey':$('#verify_regkey').val(),'token':token}, 139 | dataType:'json', 140 | success: function(data){ 141 | debugLog(data); 142 | if(errorCheck(data)){ 143 | $('#regaccount').html('注册'); 144 | return false; 145 | } 146 | Materialize.toast(data[0][1],4000); 147 | if(data[0][0]=="1"){ 148 | setTimeout(function(){ 149 | window.location.href="./account.html"; 150 | },2000); 151 | } 152 | if(data[0][0]=='2'){ 153 | setTimeout(function(){ 154 | window.location.href="./register.html"; 155 | },2000); 156 | } 157 | $('#regaccount').html('注册'); 158 | }, 159 | error: function(data){ 160 | debugLog(data); 161 | } 162 | }); 163 | return false; 164 | } 165 | }); 166 | }); 167 | -------------------------------------------------------------------------------- /js/resetpwd.js: -------------------------------------------------------------------------------- 1 | /*判断是否进行了邮件传输情况*/ 2 | function mailSendCheck() 3 | { 4 | debugLog("load_reset run-->"); 5 | if(loggedin){ 6 | Materialize.toast("您已登陆!", 4000); 7 | window.location.href="account.html"; 8 | return false; 9 | } 10 | $.ajax({ 11 | type:'post', 12 | url:'ajax.php?m=mailSendCheck', 13 | data:"token="+token, 14 | dataType:'json', 15 | success:function(data){ 16 | debugLog(data); 17 | errorCheck(data); 18 | if(data[0][0]=="2"){ 19 | $('#resetone').hide(); 20 | $('#resettwo').show(); 21 | } 22 | else{ 23 | $('#resetone').show(); 24 | $('#resettwo').hide(); 25 | } 26 | }, 27 | error:function(data){ 28 | debugLog(data); 29 | } 30 | }); 31 | return false; 32 | } 33 | 34 | $(document).ready(function(){ 35 | 36 | mailSendCheck(); 37 | getCaptcha(); 38 | $("#sendmail").click(function(){ 39 | $.ajax({ 40 | type:'post', 41 | url:'ajax.php?m=sendResetMail', 42 | data:{'captcha':$('#captcha').val(),'email':$('#email').val(),'token':token}, 43 | dataType:'json', 44 | success: function(data) { 45 | debugLog(data); 46 | if(errorCheck(data)){ 47 | getCaptcha(); 48 | return false; 49 | } 50 | Materialize.toast(data[0][1], 4000); 51 | getCaptcha(); 52 | if(data[0][0]=='1'){ 53 | mailSendCheck(); 54 | } 55 | }, 56 | error: function(data){ 57 | debugLog(data); 58 | } 59 | }); 60 | return false; 61 | }); 62 | 63 | $('#resetaccount').click(function(){ 64 | $('#resetaccount').html('提交中...'); 65 | $.ajax({ 66 | type: 'post', 67 | url: 'ajax.php?m=resetPassword', 68 | data: {'password':$('#password').val(),'repeat':$('#repeat').val(),'resetkey':$('#resetkey').val(),'token':token}, 69 | dataType:'json', 70 | success: function(data){ 71 | debugLog(data); 72 | if(errorCheck(data)){ 73 | return false; 74 | } 75 | Materialize.toast(data[0][1],4000); 76 | if(data[0][0]=="1"){ 77 | setTimeout(function(){ 78 | window.location.href="./account.html"; 79 | },2000); 80 | } 81 | if(data[0][0]=='2'){ 82 | setTimeout(function(){ 83 | window.location.href="./register.html"; 84 | },2000); 85 | } 86 | $('#resetaccount').html('重置密码'); 87 | }, 88 | error: function(data){ 89 | debugLog(data); 90 | } 91 | }); 92 | return false; 93 | }) 94 | }); 95 | -------------------------------------------------------------------------------- /js/scoreboard.js: -------------------------------------------------------------------------------- 1 | function getRankList(data) { 2 | var table = $( '' ); 3 | var thead = $( '' ); 4 | $( '' ); 14 | $( '
      ' ).text( 'Rank' ).appendTo( thead ); 5 | $( '' ).text( 'Avatar' ).appendTo( thead ); 6 | $( '' ).text( 'Name' ).appendTo( thead ); 7 | $( '' ).text( 'Speak' ).appendTo( thead ); 8 | $( '' ).text( 'Score' ).appendTo( thead ); 9 | thead.appendTo(table); 10 | $.each( 11 | data, 12 | function(num,content){ 13 | var trow = $( '
      ' ).text( num+1 ).appendTo( trow ); 15 | $('').appendTo( trow ); 16 | $( '' ).text( content[1]).appendTo( trow ); 17 | $( '' ).text( content[2]).appendTo( trow ); 18 | $( '' ).text( content[0]).appendTo( trow ); 19 | trow.appendTo( table ); 20 | } 21 | ); 22 | $( '#ranking' ).html( table.html() ); 23 | return false; 24 | } 25 | 26 | function getRankPic(data) { 27 | var info=[]; 28 | if(data[0][0]=='0'){ 29 | return false; 30 | } 31 | $.each(data,function(n,content){ 32 | if(n>14){ 33 | return false; 34 | } 35 | info[n]={name:content[1],data:content[4]}; 36 | }) 37 | debugLog("info:"); 38 | debugLog(info); 39 | $('#rank_pic').highcharts({ 40 | credits:{enabled: false }, 41 | exporting:{enabled:false}, 42 | colors:['#37a2da','#32c5e9','#67e0e3','#9fe6b8','#ffdb5c','#ff9f7f','#fb7293','#e062ae','#e690d1','#e7bcf3','#9d96f5','#8378ea','#96bfff'], 43 | //chart: {type: 'spline'}, 44 | title: {text: null}, 45 | legend:{ 46 | align:'right', 47 | verticalAlign:'top', 48 | layout:'vertical', 49 | floating:true, 50 | }, 51 | xAxis: { 52 | type: 'datetime', 53 | title: {text: null} 54 | }, 55 | yAxis: {title: {text: null},min: 0}, 56 | tooltip: { 57 | headerFormat: '{series.name}
      ', 58 | pointFormat: '{point.x:%b-%e}: {point.y:f}' 59 | }, 60 | plotOptions: { 61 | spline: { 62 | marker: { 63 | enabled: true 64 | } 65 | } 66 | }, 67 | series:info 68 | }); 69 | return false; 70 | } 71 | function getRanks(){ 72 | $.ajax({ 73 | type: 'post', 74 | url: 'ajax.php?m=getRank', 75 | dataType:'json', 76 | data:{'token':token,'is_img':1}, 77 | success: function(data) { 78 | debugLog(data); 79 | if(errorCheck(data)){ 80 | return false; 81 | } 82 | if(data[1].length==0){ 83 | return false; 84 | } 85 | getRankList(data[1]); 86 | getRankPic(data[1]); 87 | }, 88 | error: function(data) { 89 | debugLog(data); 90 | } 91 | }); 92 | return false; 93 | } 94 | function countSecond () 95 | {  96 | getRanks(); 97 | setTimeout ("countSecond ()", 10000); 98 | } 99 | $(document).ready(function(){ 100 | countSecond(); 101 | }); 102 | -------------------------------------------------------------------------------- /notice.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
      25 | 51 |
      52 |
      53 |
      54 |
      55 |

      Notice

      56 |
      57 |
      58 |
      59 |
      60 |
      61 |
      62 |
      63 |
      64 |
      65 |
      66 |
      67 |
      68 | 69 | 70 | -------------------------------------------------------------------------------- /resetpwd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
      25 | 51 |
      52 |
      53 | 54 |
      55 |
      56 |
      57 |
      58 |

      Reset

      59 |
      60 |
      61 |
      62 |
      63 |
      64 |
      65 | email 66 | 67 | 68 |
      69 |
      70 | subject 71 | 72 | 73 |
      74 | 75 | 76 |
      77 | 95 |
      96 |
      97 |
      98 |
      99 |
      100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /scoreboard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
      25 | 51 |
      52 |
      53 |
      54 |
      55 |

      Scoreboard

      56 |
      57 |
      58 |
      59 |
      60 |
      61 |
      62 |
      63 |
      64 |
      65 | 66 |
      67 |
      68 |
      69 |
      70 |
      71 |
      72 | 73 | 74 | 75 | --------------------------------------------------------------------------------