2018-2019-2 20165219《網絡對抗技術》Exp8 Web基礎

2018-2019-2 20165219《網絡對抗技術》Exp8 Web基礎

實驗內容

Web前端HTML

能正常安裝、啓停Apache。理解HTML,理解表單,理解GET與POST方法,編寫一個含有表
單的HTMLjavascript

Web前端javasciptphp

理解JavaScript的基本功能,理解DOM。編寫JavaScript驗證用戶名、密碼的規則。html

Web後端:MySQL基礎:正常安裝、啓動MySQL,建庫、建立用戶、修改密碼、建表前端

Web後端:編寫PHP網頁,鏈接數據庫,進行用戶認證java

最簡單的SQL注入,XSS攻擊測試mysql

功能描述:用戶能登錄,登錄用戶名密碼保存在數據庫中,登錄成功顯示歡迎頁面。web

基礎問題

什麼是表單sql

  • 表單在網頁中主要負責數據採集功能。一個表單有三個基本組成部分:

表單標籤:這裏麪包含了處理表單數據所用CGI程序的URL以及數據提交到服務器的方法。數據庫

表單域:包含了文本框、密碼框、隱藏域、多行文本框、複選框、單選框、下拉選擇框和文件上傳框等。apache

表單按鈕:包括提交按鈕、復位按鈕和通常按鈕;用於將數據傳送到服務器上的CGI腳本或者取消輸入,還能夠用表單按鈕來控制其餘定義了處理腳本的處理工做。

瀏覽器能夠解析運行什麼語言

  • HTML(超文本標記語言)、XML(可擴展標記語言)以及Python、PHP、JavaScript、ASP等

WebServer支持哪些動態語言

  • ASP(ActiveServerPages),JSP(JavaServerPages),PHP(HypertextPreprocessor)

實踐過程記錄

1.Web前端:HTML

service apache2 start命令打開Apache服務

瀏覽器輸入127.0.0.1,若是能夠打開Apache的默認網頁,則開啓成功

進入Apache目錄下,新建一個簡單的含有表單的html文件

1 <html>
 2 <head>
 3 <title>CryptoTeam</title>
 4 <!-- Meta tag Keywords -->
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6 <!-- Meta tag Keywords -->
 7 </head>
 8 
 9 <body>
10 <!-- main -->
11 <!--//header-->
12     <h2>Login Quick</h2>
13         <form action="login" method="post">
14             <input placeholder="E-mail" name="Name" class="user" type="text">
15             <br>
16             </br>
17             <input  placeholder="Password" name="Password" class="pass" type="password">
18             <br>
19             </br>
20             <input type="submit" value="Login">
21         </form>
22 <!--//main-->
23 </body>
24 </html>

打開網頁

2.Web前端:javascipt

添加一段代碼

1 <html>
 2 <head>
 3 <title>CryptoTeam</title>
 4 <!-- Meta tag Keywords -->
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6 <!-- Meta tag Keywords -->
 7 </head>
 8 
 9 <body>
10 <!-- main -->
11 <!--//header-->
12     <h2>Login Quick</h2>
13         <form action="login" method="post" name="form_login">
14             <input placeholder="E-mail" name="Email" class="user" type="text" onfocus="if (this.value=='Your email') this.value='';" />
15             <br>
16             </br>
17             <input  placeholder="Password" name="Password" class="pass" type="password" onfocus="if (this.value=='Your password') this.value='';"/>
18             <br>
19             </br>
20             <input type="submit" value="Login" onClick="return validateLogin()"/>
21         </form>
22 <!--//main-->
23 <script language="javascript">  
24     function validateLogin(){  
25         var sUserName = document.form_login.Email.value ;  
26         var sPassword = document.form_login.Password.value ;    
27         if ((sUserName =="") || (sUserName=="Your email")){  
28         alert("user email!");  
29         return false ;  
30         }  
31 
32         if ((sPassword =="") || (sPassword=="Your password")){  
33         alert("password!");  
34         return false ;  
35         }  
36 
37     }   
38 </script>  
39 
40 </body>
41 </html>

在瀏覽器訪問

3.Web後端:MySQL基礎

輸入/etc/init.d/mysql start開啓MySQL服務

輸入mysql -u root -p使用root權限進入,默認的密碼是password

show databases;查看數據庫基本信息

use mysql;選擇使用mysql這個數據庫

select user, password, host from user;查看當前用戶信息

update user set password=PASSWORD("新密碼") where user='root';修改密碼

flush privileges;,更新權限

退出數據庫,使用新的密碼登陸

create database 數據庫名稱;創建數據庫

show databases;查看存在的數據庫

use 數據庫名稱;使用咱們建立的數據庫

create table 表名 (字段設定列表);創建數據庫表,並設置字段基本信息

show tables;查看錶信息

insert into 表名 values('值1','值2','值3'...);插入數據

select * from 表名;查詢表中的數據

grant select,insert,update,delete on 數據庫.* to 用戶名@登陸主機(能夠是localhost,也能夠是遠程登陸方式的IP) identified by "密碼";

exit退出,而後使用新的用戶名和密碼進行登陸

成功登錄

4.Web後端:編寫PHP網頁

/var/www/html目錄下新建一個PHP測試文件phptest.php

<?php
echo ($_GET["a"]);
include($_GET["a"]);
echo "Hello word! This is my php test page!<br>";
?>

網址欄中輸入localhost:80/phptest.php?a=/etc/passwd

瀏覽器中輸入127.0.0.1/login.php

利用PHP和MySQL,,修改後的代碼以下

<?php
$uname=$_POST["username"];
$pwd=$_POST["password"];
echo $uname;
$query_str="SELECT * FROM login_table where username='$uname' and password='$pwd';";
$mysqli = new mysqli("127.0.0.1", "wyb", "20165219", "wyb");

/* 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> {$uname}:Welcome login!! <br> ";
  } 
  else {
      echo "<br> login failed!!!! <br> " ; }
  /* free result set */
  $result->close();
}
$mysqli->close();
?>

瀏覽器輸入127.0.0.1/login.html

最簡單的SQL注入,XSS攻擊測試

SQL注入

在瀏覽器輸入127.0.0.1/login.html訪問本身的登陸界面

在用戶名輸入框輸入' or 1=1#,密碼任意輸入,可登錄成功

XSS攻擊

圖片放在/var/www/html目錄下

瀏覽器輸入127.0.0.1/login.html

用戶名輸入框中輸入

實驗總結與體會

瞭解HTML、PHP、MySQL的基本語法,有些內容在上學期web編程的課程中學習過,複習了前面的知識

相關文章
相關標籤/搜索