回答問題
(1)什麼是表單
在網頁中主要負責數據採集功能。一個表單有三個基本組成部分: 表單標籤:這裏麪包含了處理表單數據所用CGI程序的URL以及數據提交到服務器的方法。 表單域:包含了文本框、密碼框、隱藏域、多行文本框、複選框、單選框、下拉選擇框和文件上傳框等。 表單按鈕:包括提交按鈕、復位按鈕和通常按鈕;用於將數據傳送到服務器上的CGI腳本或者取消輸入,還能夠用表單按鈕來控制其餘定義了處理腳本的處理工做。
(2)瀏覽器能夠解析運行什麼語言。
超文本標記語言:HTML
可擴展標記語言:XML
腳本語言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等。
(3)WebServer支持哪些動態語言
PHP、JSP。javascript
1.Web前端HTML
(1)Apache
安裝
因爲個人kali好像已有Apache
,因此就沒有安裝的過程,可是應該能夠執行sudo apt-get install apache2
來安裝
(2)Apache
啓停php
service apache2 start
來啓動apache
服務80
端口被佔用,可執行netstat -tupln | grep 80
來查看佔用80端口的其餘進程,而後kill processID
來殺死該進程,而後從新開啓apache
便可。service apache2 stop
來中止apache
服務Apache
127.0.0.1:80
,若是和下圖同樣,即說明可正常工做。127.0.0.1:80/20165228szk.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登陸頁面</title> <script language="javascript"> var movingID=null; var scrolling=false; function startMove() { var left=eval(bear.style.left.replace("px","")); if(left <document.body.scrollWidth-400) bear.style.left=left+1; else bear.style.left=1; movingID=setTimeout("startMove()",0.1); } function mysubmit() { if(document.form1.password.value=="" || document.form1.username.value=="") { alert("用戶名、密碼不能爲空!"); window.location.href="login.html" } else form1.submit(); } </script> <style type="text/css"> a:link{color:#41506D;font-size:125%;text-decoration:none} a:visited{color:#41506D;font-size:125%;text-decoration:none} a:hover{color:#FFF200;font-size:125%;text-decoration:none} </style> </head> <body onload="startMove()" style="background-image: url(./login.png);background-repeat:no-repeat;topmargin:60;leftmargin:12 ;overflow-x:hidden;overflow-y:scroll;" > <br><br><br> <p align="right"> <a target=_parent href="index.jsp" >登 錄</a> <a target=_parent href="addone.jsp" >注 冊</a> </p> <form action="login.php" method="POST" name="form1"> <table style="background: url(./登陸.png);background-repeat:no-repeat;position:relative;left:300px;top:0px;border-collapse:collapse;"> <tr><th style="border:5px solid white;height:50px;width:230px;padding:0px;text-align:center;vertical-align:center;color:#41506D;font-size:150%;font-family:Microsoft YaHei UI;"> 帳 號 密 碼 登 錄 </th></tr> <tr> <td style="border:5px solid white;height:180px;width:230px;padding:0px;text-align:center;vertical-align:center;color:#41506D;"> <p style="position:absolute;left:27px;top:50px;font-size:130%;color:black;font-family:Microsoft YaHei UI;">用戶名 </p> <input align="center" type="text" name = "username" style="position:absolute;left:100px;top:70px;height:35px;width:100px;font-size:130%;"/> <br><br> <p style="position:absolute;left:27px;top:100px;font-size:130%;color:black;font-family:Microsoft YaHei UI;">密 碼 </p> <input align="center" type="password" name = "password" style="position:absolute;left:100px;top:120px;height:35px;width:100px;font-size:130%;"> <br> <input type = "button" value = "提交" onClick="mysubmit()" style="position:absolute;left:50px;top:190px;height:35px;width:150px;font-size:120%;"> </td> </tr> </table></form> <div id="bear" style="visibility:visible;position:absolute;left:1px;top:330px;z-index:1;width:400px;height:170px;overflow-x:hidden;overflow-y:hidden;"> </div> </body> </html>
2.Web前端javasciptcss
/etc/init.d/mysql start
便可開啓MySQL服務mysqladmin -u root password "20165228"
,將root
的密碼修改成20165228
。mysql -u root -p
以root
身份登陸MySQL,而後輸入剛剛修改的密碼。insert into mysql.user(Host,User,Password) values("localhost","szk",password("20165228"));
新建用戶,用戶名爲szk,口令爲20165228mysql
數據庫內,執行use mysql;
使用該數據庫。執行select user, password from user;
能夠查詢到用戶、口令(密文)信息grant all privileges on *.* to 'szk' identified by '20165228' with grant option; FLUSH PRIVILEGES;
給新用戶賦予權限create database 20165228szk;
可建立名爲20165228szk的數據庫。show databases;
可查看已有數據庫的基本信息。use 20165228szk;
使用該數據庫create table szk (username VARCHAR(20),password VARCHAR(20));
新建表insert into szk values('20165228','123456');
即向表中插入數據。select * from szk;
測試是否插入成功grant select,insert,update,delete on 20165228szk.* to szk@localhost identified by "20165228";
將對某數據庫的全部表select
,insert
,update
,delete
權限授予當前主機localhost用戶szk,其密碼是20165228<?php $uname=($_POST["username"]); $pwd=($_POST["password"]); echo $uname; $query_str="SELECT * FROM szk where username='{$uname}' and password='{$pwd}';"; /* echo "<br> {$query_str} <br>";*/ $mysqli = new mysqli("127.0.0.1", "szk", "20165228", "20165228szk"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo "connection ok!"; /* Select queries return a resultset */ if ($result = $mysqli->query($query_str)) { if ($result->num_rows > 0 ){ echo "<br> Wellcome login Mr/Mrs:{$uname} <br> "; } else { echo "<br> login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
' or 1=1#
,密碼隨意,這時候的合成後的SQL查詢語句爲select * from users where username='' or 1=1#' and password=md5(''),#
至關於註釋符,會把後面的內容都註釋掉,而1=1是永真式,因此這個條件確定恆成立,因此可以成功登錄:在登陸的用戶名中輸入:<img src="1.png" />szkun</a>
,讀取/var/www/html
目錄下的圖片:
html
在運行MySQL時,總是忘記在命令結束時加;
,有時候從新打開MySQL不少次... 還有一個很神奇的是,昨天能好好解析php的瀏覽器,今天在html跳轉action時居然提示php文件下載,很迷!最後發如今本地文件打開html時會出現該狀況,經過apache打開時就能正常解析。前端
在上學期的網絡安全編程課程中,咱們也學習了前端和後臺的編寫方法,而且演示過最簡單的攻擊,當時以爲很神奇,但沒有本身嘗試過,此次實驗中得以知足。java