first commit
This commit is contained in:
		
							
								
								
									
										32
									
								
								table.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								table.sql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CREATE DATABASE `ctf-zetatech-inc`
 | 
			
		||||
 | 
			
		||||
CREATE USER 'cyber-zetatech-inc'@'localhost' IDENTIFIED BY 'wY7nhg7xnzmCcJbfz3Gf89qyU5cvpr';
 | 
			
		||||
 | 
			
		||||
GRANT SELECT ON `ctf-zetatech-inc`.* TO `cyber-zetatech-inc`@`localhost`;
 | 
			
		||||
 | 
			
		||||
FLUSH PRIVILEGES;
 | 
			
		||||
 | 
			
		||||
use ctf
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `access` (
 | 
			
		||||
  `id` int NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `user` varchar(100) NOT NULL,
 | 
			
		||||
  `password` varchar(100) NOT NULL,
 | 
			
		||||
  PRIMARY KEY (`id`)
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
INSERT INTO `access` (`user`, `password`)
 | 
			
		||||
  VALUES (
 | 
			
		||||
    'admin',
 | 
			
		||||
    'e6c2d84527c9f0af9b6d6fe33fd987b6ef47360e335e71220201e72c4ac5ccf9'
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
INSERT INTO `access` (`user`, `password`)
 | 
			
		||||
  VALUES (
 | 
			
		||||
    'puppet-master',
 | 
			
		||||
    '31e2d9e7ee8279341dee46986670996145a699937616fd03fe362426b5b47c25'
 | 
			
		||||
  );
 | 
			
		||||
							
								
								
									
										0
									
								
								webroot/css/global.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								webroot/css/global.css
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										675
									
								
								webroot/css/term.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										675
									
								
								webroot/css/term.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,675 @@
 | 
			
		||||
/* Source: https://codepen.io/remsrob/pen/ZRyqNx */
 | 
			
		||||
 | 
			
		||||
@import url(https://fonts.googleapis.com/css?family=Share+Tech+Mono);
 | 
			
		||||
.image-replacement {
 | 
			
		||||
  text-indent: 100%;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  overflow: hidden
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
span.amp {
 | 
			
		||||
  font-family: Baskerville, 'Goudy Old Style', Palatino, 'Book Antiqua', serif !important;
 | 
			
		||||
  font-style: italic
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
body,
 | 
			
		||||
html {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  -webkit-user-select: none;
 | 
			
		||||
  -moz-user-select: none;
 | 
			
		||||
  -ms-user-select: none;
 | 
			
		||||
  user-select: none
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
  color: #db0e15;
 | 
			
		||||
  font-family: 'Share Tech Mono', monospace;
 | 
			
		||||
  font-size: 26px;
 | 
			
		||||
  font-weight: 300;
 | 
			
		||||
  text-shadow: 0 0 5px rgba(219, 14, 21, .8);
 | 
			
		||||
  background: url(../img/bg.png) #000;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  height: 100vh
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container {
 | 
			
		||||
  left: 0;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  -webkit-transform: translate(0, -50%);
 | 
			
		||||
  transform: translate(0, -50%)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container.is-success {
 | 
			
		||||
  -webkit-filter: hue-rotate(180deg) brightness(2.7);
 | 
			
		||||
  filter: hue-rotate(180deg) brightness(2.7)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.screen::after {
 | 
			
		||||
  content: '';
 | 
			
		||||
  display: block;
 | 
			
		||||
  background: url(../img/bottom.png) no-repeat center;
 | 
			
		||||
  margin: 0 auto;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  max-width: 500px;
 | 
			
		||||
  height: 28px
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.title {
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 1em;
 | 
			
		||||
  font-weight: 300
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.title::after,
 | 
			
		||||
.title::before {
 | 
			
		||||
  content: '';
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  background: url(../img/top_outer.png);
 | 
			
		||||
  width: 144px;
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  margin: 0 20px
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container:not(.is-success) .title.is-success {
 | 
			
		||||
  color: #22edfc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.box--outer {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  margin: 0 auto;
 | 
			
		||||
  width: 90%;
 | 
			
		||||
  max-width: 1080px;
 | 
			
		||||
  border-top: #000 18px solid;
 | 
			
		||||
  border-bottom: #000 18px solid;
 | 
			
		||||
  -o-border-image: url(../img/hor_line.png) 17 11 17 round;
 | 
			
		||||
  border-image: url(../img/hor_line.png) 17 11 17 round
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.box {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  max-width: 1080px
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.box--inner {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: calc(100% - 105px);
 | 
			
		||||
  max-width: 1010px
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.box--inner::after,
 | 
			
		||||
.box--inner::before {
 | 
			
		||||
  content: '';
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  background: url(../img/box_inner.png) no-repeat center;
 | 
			
		||||
  max-width: 642px;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 27px
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  display: block;
 | 
			
		||||
  max-height: 600px;
 | 
			
		||||
  min-height: 400px;
 | 
			
		||||
  height: 100%
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content .holder {
 | 
			
		||||
  left: 0;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  -webkit-transform: translate(0, -50%);
 | 
			
		||||
  transform: translate(0, -50%)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col.col__center,
 | 
			
		||||
.col.col__left {
 | 
			
		||||
  display: inline-block
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col.col__left {
 | 
			
		||||
  width: 130px
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col.col__center {
 | 
			
		||||
  width: 350px;
 | 
			
		||||
  margin-right: 130px
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.label::after {
 | 
			
		||||
  content: ':';
 | 
			
		||||
  margin-left: -15px;
 | 
			
		||||
  display: inline-block
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#email,
 | 
			
		||||
#username,
 | 
			
		||||
#password {
 | 
			
		||||
  border: 2px solid #d7001e;
 | 
			
		||||
  margin: 10px 0;
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
  width: auto;
 | 
			
		||||
  max-width: 100%;
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
  outline: 0;
 | 
			
		||||
  background: 0 0;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  font: inherit;
 | 
			
		||||
  line-height: normal
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#email::-moz-selection,
 | 
			
		||||
#username::-moz-selection,
 | 
			
		||||
#password::-moz-selection {
 | 
			
		||||
  background: #000
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#email::selection,
 | 
			
		||||
#username::selection,
 | 
			
		||||
#password::selection {
 | 
			
		||||
  background: #000
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#login {
 | 
			
		||||
  border: none;
 | 
			
		||||
  margin: 20px;
 | 
			
		||||
  padding: 10px 40px;
 | 
			
		||||
  width: auto;
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
  outline: 0;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  background: 0 0;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  font: inherit;
 | 
			
		||||
  line-height: normal;
 | 
			
		||||
  -webkit-font-smoothing: inherit;
 | 
			
		||||
  -moz-osx-font-smoothing: inherit;
 | 
			
		||||
  -webkit-appearance: none;
 | 
			
		||||
  background: rgba(219, 14, 21, .2);
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  transition: .1s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#login:hover,
 | 
			
		||||
#login:active {
 | 
			
		||||
  background: rgba(219, 14, 21, .25);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#content em {
 | 
			
		||||
  color: #c99c31;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media only screen and (max-width:1260px) {
 | 
			
		||||
  .title::after,
 | 
			
		||||
  .title::before {
 | 
			
		||||
    width: 42px;
 | 
			
		||||
    height: 18px
 | 
			
		||||
  }
 | 
			
		||||
  .col.col__center,
 | 
			
		||||
  .col.col__left {
 | 
			
		||||
    display: block;
 | 
			
		||||
    width: auto;
 | 
			
		||||
    margin: 0
 | 
			
		||||
  }
 | 
			
		||||
  .box--outer::after,
 | 
			
		||||
  .box--outer::before {
 | 
			
		||||
    display: none
 | 
			
		||||
  }
 | 
			
		||||
  .title::after,
 | 
			
		||||
  .title::before {
 | 
			
		||||
    margin: 0 5px
 | 
			
		||||
  }
 | 
			
		||||
  .content {
 | 
			
		||||
    height: 440px
 | 
			
		||||
  }
 | 
			
		||||
  .box::after,
 | 
			
		||||
  .box::before {
 | 
			
		||||
    height: 500px
 | 
			
		||||
  }
 | 
			
		||||
  #login {
 | 
			
		||||
    margin-bottom: 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media only screen and (max-width:600px) {
 | 
			
		||||
  .container {
 | 
			
		||||
    font-size: .8em
 | 
			
		||||
  }
 | 
			
		||||
  .title::after,
 | 
			
		||||
  .title::before {
 | 
			
		||||
    width: 4%;
 | 
			
		||||
    height: 18px
 | 
			
		||||
  }
 | 
			
		||||
  .box--outer {
 | 
			
		||||
    -o-border-image: url(../img/hor_line.png) 17 330 17 round;
 | 
			
		||||
    border-image: url(../img/hor_line.png) 17 330 17 round
 | 
			
		||||
  }
 | 
			
		||||
  .box::after,
 | 
			
		||||
  .box::before {
 | 
			
		||||
    width: 22px;
 | 
			
		||||
    background: url(ver-line-mobile.png) no-repeat center;
 | 
			
		||||
    background-size: contain
 | 
			
		||||
  }
 | 
			
		||||
  .box--inner {
 | 
			
		||||
    width: calc(100% - 44px)
 | 
			
		||||
  }
 | 
			
		||||
  #email,
 | 
			
		||||
  #username,
 | 
			
		||||
  #password {
 | 
			
		||||
    max-width: 70%
 | 
			
		||||
  }
 | 
			
		||||
  .screen::after {
 | 
			
		||||
    max-width: 180px
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.flash {
 | 
			
		||||
  -webkit-animation: flashText 1s ease-out alternate infinite;
 | 
			
		||||
  animation: flashText 1s ease-out alternate infinite
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@-webkit-keyframes flashText {
 | 
			
		||||
  0% {
 | 
			
		||||
    opacity: .3
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    opacity: 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes flashText {
 | 
			
		||||
  0% {
 | 
			
		||||
    opacity: .3
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    opacity: 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.typewriter .typewriter-line {
 | 
			
		||||
  visibility: hidden
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@-webkit-keyframes flicker {
 | 
			
		||||
  0% {
 | 
			
		||||
    opacity: .86139
 | 
			
		||||
  }
 | 
			
		||||
  5% {
 | 
			
		||||
    opacity: .12793
 | 
			
		||||
  }
 | 
			
		||||
  10% {
 | 
			
		||||
    opacity: .36759
 | 
			
		||||
  }
 | 
			
		||||
  15% {
 | 
			
		||||
    opacity: .9766
 | 
			
		||||
  }
 | 
			
		||||
  20% {
 | 
			
		||||
    opacity: .61364
 | 
			
		||||
  }
 | 
			
		||||
  25% {
 | 
			
		||||
    opacity: .94477
 | 
			
		||||
  }
 | 
			
		||||
  30% {
 | 
			
		||||
    opacity: .57811
 | 
			
		||||
  }
 | 
			
		||||
  35% {
 | 
			
		||||
    opacity: .03416
 | 
			
		||||
  }
 | 
			
		||||
  40% {
 | 
			
		||||
    opacity: .21835
 | 
			
		||||
  }
 | 
			
		||||
  45% {
 | 
			
		||||
    opacity: .62054
 | 
			
		||||
  }
 | 
			
		||||
  50% {
 | 
			
		||||
    opacity: .89452
 | 
			
		||||
  }
 | 
			
		||||
  55% {
 | 
			
		||||
    opacity: .89997
 | 
			
		||||
  }
 | 
			
		||||
  60% {
 | 
			
		||||
    opacity: .37872
 | 
			
		||||
  }
 | 
			
		||||
  65% {
 | 
			
		||||
    opacity: .04929
 | 
			
		||||
  }
 | 
			
		||||
  70% {
 | 
			
		||||
    opacity: .14477
 | 
			
		||||
  }
 | 
			
		||||
  75% {
 | 
			
		||||
    opacity: .27512
 | 
			
		||||
  }
 | 
			
		||||
  80% {
 | 
			
		||||
    opacity: .84701
 | 
			
		||||
  }
 | 
			
		||||
  85% {
 | 
			
		||||
    opacity: .85952
 | 
			
		||||
  }
 | 
			
		||||
  90% {
 | 
			
		||||
    opacity: .76553
 | 
			
		||||
  }
 | 
			
		||||
  95% {
 | 
			
		||||
    opacity: .91372
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    opacity: .05536
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes flicker {
 | 
			
		||||
  0% {
 | 
			
		||||
    opacity: .86139
 | 
			
		||||
  }
 | 
			
		||||
  5% {
 | 
			
		||||
    opacity: .12793
 | 
			
		||||
  }
 | 
			
		||||
  10% {
 | 
			
		||||
    opacity: .36759
 | 
			
		||||
  }
 | 
			
		||||
  15% {
 | 
			
		||||
    opacity: .9766
 | 
			
		||||
  }
 | 
			
		||||
  20% {
 | 
			
		||||
    opacity: .61364
 | 
			
		||||
  }
 | 
			
		||||
  25% {
 | 
			
		||||
    opacity: .94477
 | 
			
		||||
  }
 | 
			
		||||
  30% {
 | 
			
		||||
    opacity: .57811
 | 
			
		||||
  }
 | 
			
		||||
  35% {
 | 
			
		||||
    opacity: .03416
 | 
			
		||||
  }
 | 
			
		||||
  40% {
 | 
			
		||||
    opacity: .21835
 | 
			
		||||
  }
 | 
			
		||||
  45% {
 | 
			
		||||
    opacity: .62054
 | 
			
		||||
  }
 | 
			
		||||
  50% {
 | 
			
		||||
    opacity: .89452
 | 
			
		||||
  }
 | 
			
		||||
  55% {
 | 
			
		||||
    opacity: .89997
 | 
			
		||||
  }
 | 
			
		||||
  60% {
 | 
			
		||||
    opacity: .37872
 | 
			
		||||
  }
 | 
			
		||||
  65% {
 | 
			
		||||
    opacity: .04929
 | 
			
		||||
  }
 | 
			
		||||
  70% {
 | 
			
		||||
    opacity: .14477
 | 
			
		||||
  }
 | 
			
		||||
  75% {
 | 
			
		||||
    opacity: .27512
 | 
			
		||||
  }
 | 
			
		||||
  80% {
 | 
			
		||||
    opacity: .84701
 | 
			
		||||
  }
 | 
			
		||||
  85% {
 | 
			
		||||
    opacity: .85952
 | 
			
		||||
  }
 | 
			
		||||
  90% {
 | 
			
		||||
    opacity: .76553
 | 
			
		||||
  }
 | 
			
		||||
  95% {
 | 
			
		||||
    opacity: .91372
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    opacity: .05536
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@-webkit-keyframes steady {
 | 
			
		||||
  from {
 | 
			
		||||
    background: rgba(255, 230, 230, .1)
 | 
			
		||||
  }
 | 
			
		||||
  to {
 | 
			
		||||
    background: rgba(49, 45, 45, .1)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes steady {
 | 
			
		||||
  from {
 | 
			
		||||
    background: rgba(255, 230, 230, .1)
 | 
			
		||||
  }
 | 
			
		||||
  to {
 | 
			
		||||
    background: rgba(49, 45, 45, .1)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: hidden
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body::after {
 | 
			
		||||
  content: " ";
 | 
			
		||||
  display: block;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  z-index: 2;
 | 
			
		||||
  pointer-events: none;
 | 
			
		||||
  background: rgba(49, 45, 45, .1);
 | 
			
		||||
  opacity: 0;
 | 
			
		||||
  pointer-events: none;
 | 
			
		||||
  -webkit-animation: flicker .15s infinite, steady 4s;
 | 
			
		||||
  animation: flicker .15s infinite, steady 4s
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body.off {
 | 
			
		||||
  background: #000
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body.off::after {
 | 
			
		||||
  -webkit-animation: none;
 | 
			
		||||
  animation: none
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@-webkit-keyframes turn-on {
 | 
			
		||||
  0% {
 | 
			
		||||
    -webkit-transform: scale(1, .8) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1, .8) translate3d(0, 0, 0);
 | 
			
		||||
    opacity: 1
 | 
			
		||||
  }
 | 
			
		||||
  5% {
 | 
			
		||||
    -webkit-transform: scale(1.09139, 1.34235) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(1.09139, 1.34235) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  10% {
 | 
			
		||||
    -webkit-transform: scale(.63084, 1.40698) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.63084, 1.40698) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  15% {
 | 
			
		||||
    -webkit-transform: scale(.75142, 1.34118) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(.75142, 1.34118) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  20% {
 | 
			
		||||
    -webkit-transform: scale(.96173, 1.36858) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.96173, 1.36858) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  25% {
 | 
			
		||||
    -webkit-transform: scale(1.1348, 1.02729) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(1.1348, 1.02729) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  30% {
 | 
			
		||||
    -webkit-transform: scale(.97038, .71092) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.97038, .71092) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  35% {
 | 
			
		||||
    -webkit-transform: scale(.6067, 1.31101) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(.6067, 1.31101) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  40% {
 | 
			
		||||
    -webkit-transform: scale(.786, .9326) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.786, .9326) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  45% {
 | 
			
		||||
    -webkit-transform: scale(1.38602, 1.14399) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(1.38602, 1.14399) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  50% {
 | 
			
		||||
    -webkit-transform: scale(.69973, .90412) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.69973, .90412) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  51% {
 | 
			
		||||
    -webkit-transform: scale(1, 1) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1, 1) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: brightness(1) saturate(1);
 | 
			
		||||
    filter: brightness(1) saturate(1);
 | 
			
		||||
    opacity: 0
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: scale(1, 1) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1, 1) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: contrast(1) brightness(1.2) saturate(1.3);
 | 
			
		||||
    filter: contrast(1) brightness(1.2) saturate(1.3);
 | 
			
		||||
    opacity: 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes turn-on {
 | 
			
		||||
  0% {
 | 
			
		||||
    -webkit-transform: scale(1, .8) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1, .8) translate3d(0, 0, 0);
 | 
			
		||||
    opacity: 1
 | 
			
		||||
  }
 | 
			
		||||
  5% {
 | 
			
		||||
    -webkit-transform: scale(1.09139, 1.34235) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(1.09139, 1.34235) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  10% {
 | 
			
		||||
    -webkit-transform: scale(.63084, 1.40698) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.63084, 1.40698) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  15% {
 | 
			
		||||
    -webkit-transform: scale(.75142, 1.34118) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(.75142, 1.34118) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  20% {
 | 
			
		||||
    -webkit-transform: scale(.96173, 1.36858) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.96173, 1.36858) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  25% {
 | 
			
		||||
    -webkit-transform: scale(1.1348, 1.02729) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(1.1348, 1.02729) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  30% {
 | 
			
		||||
    -webkit-transform: scale(.97038, .71092) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.97038, .71092) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  35% {
 | 
			
		||||
    -webkit-transform: scale(.6067, 1.31101) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(.6067, 1.31101) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  40% {
 | 
			
		||||
    -webkit-transform: scale(.786, .9326) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.786, .9326) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  45% {
 | 
			
		||||
    -webkit-transform: scale(1.38602, 1.14399) translate3d(0, 100%, 0);
 | 
			
		||||
    transform: scale(1.38602, 1.14399) translate3d(0, 100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  50% {
 | 
			
		||||
    -webkit-transform: scale(.69973, .90412) translate3d(0, -100%, 0);
 | 
			
		||||
    transform: scale(.69973, .90412) translate3d(0, -100%, 0)
 | 
			
		||||
  }
 | 
			
		||||
  51% {
 | 
			
		||||
    -webkit-transform: scale(1, 1) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1, 1) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: brightness(1) saturate(1);
 | 
			
		||||
    filter: brightness(1) saturate(1);
 | 
			
		||||
    opacity: 0
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: scale(1, 1) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1, 1) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: contrast(1) brightness(1.2) saturate(1.3);
 | 
			
		||||
    filter: contrast(1) brightness(1.2) saturate(1.3);
 | 
			
		||||
    opacity: 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@-webkit-keyframes turn-off {
 | 
			
		||||
  0% {
 | 
			
		||||
    -webkit-transform: scale(1, 1.3) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1, 1.3) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: brightness(1);
 | 
			
		||||
    filter: brightness(1);
 | 
			
		||||
    opacity: 1
 | 
			
		||||
  }
 | 
			
		||||
  60% {
 | 
			
		||||
    -webkit-transform: scale(1.3, .001) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1.3, .001) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: brightness(10);
 | 
			
		||||
    filter: brightness(10)
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06);
 | 
			
		||||
    animation-timing-function: cubic-bezier(.755, .05, .855, .06);
 | 
			
		||||
    -webkit-transform: scale(0, .0001) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(0, .0001) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: brightness(50);
 | 
			
		||||
    filter: brightness(50)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes turn-off {
 | 
			
		||||
  0% {
 | 
			
		||||
    -webkit-transform: scale(1, 1.3) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1, 1.3) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: brightness(1);
 | 
			
		||||
    filter: brightness(1);
 | 
			
		||||
    opacity: 1
 | 
			
		||||
  }
 | 
			
		||||
  60% {
 | 
			
		||||
    -webkit-transform: scale(1.3, .001) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(1.3, .001) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: brightness(10);
 | 
			
		||||
    filter: brightness(10)
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06);
 | 
			
		||||
    animation-timing-function: cubic-bezier(.755, .05, .855, .06);
 | 
			
		||||
    -webkit-transform: scale(0, .0001) translate3d(0, 0, 0);
 | 
			
		||||
    transform: scale(0, .0001) translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-filter: brightness(50);
 | 
			
		||||
    filter: brightness(50)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.screen {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  border: none
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container.off>.screen {
 | 
			
		||||
  -webkit-animation: turn-off .55s cubic-bezier(.23, 1, .32, 1);
 | 
			
		||||
  animation: turn-off .55s cubic-bezier(.23, 1, .32, 1);
 | 
			
		||||
  -webkit-animation-fill-mode: forwards;
 | 
			
		||||
  animation-fill-mode: forwards
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container.on>.screen {
 | 
			
		||||
  -webkit-animation: turn-on 2s linear;
 | 
			
		||||
  animation: turn-on 2s linear;
 | 
			
		||||
  -webkit-animation-fill-mode: forwards;
 | 
			
		||||
  animation-fill-mode: forwards
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								webroot/img/bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								webroot/img/bg.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 961 B  | 
							
								
								
									
										
											BIN
										
									
								
								webroot/img/bottom.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								webroot/img/bottom.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								webroot/img/box_inner.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								webroot/img/box_inner.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 4.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								webroot/img/hor_line.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								webroot/img/hor_line.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								webroot/img/top_outer.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								webroot/img/top_outer.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 928 B  | 
							
								
								
									
										62
									
								
								webroot/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								webroot/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
<html lang="en">
 | 
			
		||||
 | 
			
		||||
<head>
 | 
			
		||||
  <meta charset="UTF-8">
 | 
			
		||||
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
 | 
			
		||||
  <title>Zetatech — Connection</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="css/term.css">
 | 
			
		||||
  <script src="js/jquery.js"></script>
 | 
			
		||||
  <script src="js/login.js" type="text/javascript"></script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body class="">
 | 
			
		||||
  <div class="container on">
 | 
			
		||||
    <div class="screen">
 | 
			
		||||
      <h3 class="title">
 | 
			
		||||
        CONNECTION ESTABLISHED
 | 
			
		||||
      </h3>
 | 
			
		||||
      <div class="box--outer">
 | 
			
		||||
        <div class="box">
 | 
			
		||||
          <div class="box--inner">
 | 
			
		||||
            <div class="content">
 | 
			
		||||
              <div class="holder" id="content">
 | 
			
		||||
                <b>Welcome to Zetatech cybernetic prosthetics management interface.</b><br>
 | 
			
		||||
                Please enter your credentials.
 | 
			
		||||
                <br>
 | 
			
		||||
                <br>
 | 
			
		||||
                <div class="row">
 | 
			
		||||
                  <div class="col col__left label">
 | 
			
		||||
                    Login
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="col col__center">
 | 
			
		||||
                    <input type="text" id="username" maxlength="32" value="">
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
 | 
			
		||||
                <form method="post" action=".">
 | 
			
		||||
                  <div class="row">
 | 
			
		||||
                    <div class="col col__left label">
 | 
			
		||||
                      Password
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="col col__center">
 | 
			
		||||
                      <input type="password" id="password" name="password" required="required" placeholder="" data-error="" maxlength="32" autocomplete="new-password"
 | 
			
		||||
                        autofocus="true" />
 | 
			
		||||
                    </div>
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <b class="flash" id="error">ACCESS DENIED</b>
 | 
			
		||||
                  <div class="row">
 | 
			
		||||
                    <button type="submit" id="login" name="login" value="Login">[login]</button>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </form>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										10364
									
								
								webroot/js/jquery.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10364
									
								
								webroot/js/jquery.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										36
									
								
								webroot/js/login.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								webroot/js/login.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
$(document).ready(function(){
 | 
			
		||||
 | 
			
		||||
  $("#error").css('display', 'inline', 'important');
 | 
			
		||||
  $("#error").html("<br>");
 | 
			
		||||
 | 
			
		||||
  $("#login").click(function(){
 | 
			
		||||
    username=$("#username").val();
 | 
			
		||||
    password=$("#password").val();
 | 
			
		||||
    $.ajax({
 | 
			
		||||
      type: "POST",
 | 
			
		||||
      url: "login.php",
 | 
			
		||||
      data: "username="+username+"&password="+password+"&login=Login",
 | 
			
		||||
      success: function(response) {
 | 
			
		||||
 | 
			
		||||
        var answer = JSON.parse(response);
 | 
			
		||||
 | 
			
		||||
        if(answer.return == 'true') {
 | 
			
		||||
          $("#content").html(answer.string);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
          $("#error").html(answer.string);
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      beforeSend: function() {
 | 
			
		||||
        $("#error").html("Loading...");
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      error: function() {
 | 
			
		||||
        $("#error").html("Error");
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    return false;
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										72
									
								
								webroot/login.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								webroot/login.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
if (isset($_POST['login']) && $_POST['login'] == 'Login') {
 | 
			
		||||
  if ( isset($_POST['username']) && !empty($_POST['username']) ) {
 | 
			
		||||
    if ( isset($_POST['password']) && !empty($_POST['password']) ) {
 | 
			
		||||
 | 
			
		||||
      $bdd = new mysqli("localhost", "cyber-zetatech-inc", "wY7nhg7xnzmCcJbfz3Gf89qyU5cvpr", "ctf-zetatech-inc");
 | 
			
		||||
      if ($bdd->connect_errno) {
 | 
			
		||||
          //echo "Echec lors de la connexion à MySQL : (" . $bdd->connect_errno . ") " . $bdd->connect_error;
 | 
			
		||||
 | 
			
		||||
          $state->return = 'error';
 | 
			
		||||
          $state->string = 'Connection error';
 | 
			
		||||
          $state_json = json_encode($state);
 | 
			
		||||
          echo $state_json;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      $real_user = "puppet-master";
 | 
			
		||||
 | 
			
		||||
      $user = $_POST['username'];
 | 
			
		||||
      $pass = hash("sha256", $_POST['password']);
 | 
			
		||||
      $sql = "SELECT user,password FROM access WHERE user='".$user."' AND password='".$pass."'";
 | 
			
		||||
      //$sql = "SELECT user,password FROM access WHERE user='admin' OR 1=1 LIMIT 1 OFFSET 1";// AND password='".$pass."'";;
 | 
			
		||||
 | 
			
		||||
      // curl -X POST http://localhost/netrunner/login.php -d "password=admiefn&login=Login&username=admin' OR 1 LIMIT 1 OFFSET 1 #"
 | 
			
		||||
 | 
			
		||||
      //echo "\n";
 | 
			
		||||
      //echo $sql;
 | 
			
		||||
      //echo "\n\n";
 | 
			
		||||
 | 
			
		||||
      $res = mysqli_query($bdd, $sql);
 | 
			
		||||
 | 
			
		||||
      $num_row = mysqli_num_rows($res);
 | 
			
		||||
      $row=mysqli_fetch_assoc($res);
 | 
			
		||||
      //print_r($row);
 | 
			
		||||
 | 
			
		||||
      if ($_POST['username'] === "admin") {
 | 
			
		||||
        $state->return = 'false';
 | 
			
		||||
        $state->string = 'admin is desactivated. Use your login.';
 | 
			
		||||
 | 
			
		||||
      } elseif ( $num_row == 1 && $row['user'] === $real_user) {
 | 
			
		||||
        $state->return = 'true';
 | 
			
		||||
        $html_login = "<b>Welcome to your admin board <em>".$row['user']."</em></b> <br> <br>
 | 
			
		||||
        An error occurred while connecting to your implant <br> [Zetatech Neural Processor MK.II].
 | 
			
		||||
        <br> <br>
 | 
			
		||||
        Please approach a Zetatech center for an analysis.
 | 
			
		||||
        <br> <br>
 | 
			
		||||
        IMTLD{w3b_1nT3rf4ceS_4r3_3v1L}";
 | 
			
		||||
        $state->string = $html_login;
 | 
			
		||||
 | 
			
		||||
      } else {
 | 
			
		||||
        $state->return = 'false';
 | 
			
		||||
        $state->string = 'Access Denied';
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      $state->return = 'password';
 | 
			
		||||
      $state->string = 'Password Missing';
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    $state->return = 'username';
 | 
			
		||||
    $state->string = 'Username Missing';
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  $state_json = json_encode($state);
 | 
			
		||||
  echo $state_json;
 | 
			
		||||
 | 
			
		||||
} else { // DEBUG
 | 
			
		||||
  $state->return = 'form';
 | 
			
		||||
  $state->string = 'Submit form';
 | 
			
		||||
  $state_json = json_encode($state);
 | 
			
		||||
  echo $state_json;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user