20155204《網絡對抗》Exp8 Web基礎

20155204《網絡對抗》Exp8 Web基礎

1、基礎問題回答

1.什麼是表單

表單在網頁中主要負責數據採集功能。一個表單有三個基本組成部分: 表單標籤:這裏麪包含了處理表單數據所用CGI程序的URL以及數據提交到服務器的方法。 表單域:包含了文本框、密碼框、隱藏域、多行文本框、複選框、單選框、下拉選擇框和文件上傳框等。 表單按鈕:包括提交按鈕、復位按鈕和通常按鈕;用於將數據傳送到服務器上的CGI腳本或者取消輸入,還能夠用表單按鈕來控制其餘定義了處理腳本的處理工做。php

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

超文本標記語言:HTML
可擴展標記語言:XML
腳本語言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSPhtml

3. WebServer支持哪些動態語言

PHP語言、JSP語言。前端

2、實踐總結與體會

此次實驗咱們主要實踐了關於web中SQL的使用,以及一些簡單的SQL的攻擊方式。這幾個攻擊方式讓我感受邏輯上的漏洞真的是十分巧妙的,也是很是難以防範的。java

3、實踐過程記錄

1.Web前端HTML

  • 經過apchectl start打開apahce。mysql

  • 在kali瀏覽器中輸入localhost:80,觀察Apache正常工做。
    web

2.Web前端:javascipt基礎

  • 進入Apache工做目錄/var/www/html,新建一個wh.html文件,限制用戶登陸時必須輸入用戶名和密碼。

3.MySQL基礎

  • 這部分主要練習SQL的使用。
  • 輸入/etc/init.d/mysql start打開mysql服務,
  • 輸入mysql -u root -p,以root身份登陸,根據提示輸入密碼,默認密碼爲p@ssw0rd,進入MySQL;
  • 用show databases;查看基本信息。(分號必定要加)

  • 建立數據庫和新表。命令以下:
create database 庫名;
use 庫名;
create table tb1 (userid VARCHAR(100),username VARCHAR(45),password VARCHAR(256),enabled VARCHAR(5));

  • 在表中添加內容:
insert into tb1(userid,username,password,enabled) values(1,'20155204','5204',"TRUE");
  • 輸入select * from tb1;查看錶中如今的信息:

4.Web後端:PHP網頁

  • 在/var/www/html目錄下編寫一個wh1.html(在以前的wh.html上修改),設置將wh1.html的表單提交到whL.php。sql

  • 編寫wh.php,經過php實現對數據庫的鏈接,並顯示用戶是否能成功登陸。數據庫

<?php

$uname=($_POST["username"]);
$pwd=($_POST["password"]);

/* echo $uname; */

$query_str="SELECT * FROM tb1 where username='$uname' and password='$pwd';";

/* echo "<br> {$query_str} <br>";*/

$mysqli = new mysqli("127.0.0.1", "wh15204", "5204", "db1");

/* 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> Welcome login Mr/Mrs:{$uname} <br> ";
    } else {
        echo "<br> login failed!!!! <br> " ;
    }

    /* free result set */
    $result->close();
}


$mysqli->close();

?>
  • 在登陸頁面中輸入數據庫中存有的用戶名和密碼並點擊提交,若是匹配就登陸成功。

5.SQL注入

  • 能夠經過在Web表單中輸入(惡意)SQL語句獲得一個存在安全漏洞的網站上的數據庫,經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
  • 在網頁登陸的用戶名中填寫' or 1=1#,密碼隨便輸入,這時候的合成後的SQL查詢語句爲select * from users where username='' or 1=1#' and password=md5(''),#至關於註釋符,會把後面的內容都註釋掉,而1=1是永真式,因此這個條件確定恆成立,因此可以成功登錄。

  • 或者先在PHP中改語句if ($result = $mysqli->query($query_str))爲if ($result = $mysqli->multi_query($query_str)),而後在用戶名框中輸入';insert into users values('66','5204','20155204',"TRUE");#在數據庫中能夠直接插入一個僞造的用戶名,密碼,下次就能夠用僞造的用戶名密碼登陸網站了(登陸前將if ($result = $mysqli->query($query_str))語句改回來)。

6.XSS攻擊

  • 跨站腳本攻擊(Cross Site Scripting),爲不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊縮寫爲XSS。XSS是一種常常出如今web應用中的計算機安全漏洞,它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。好比這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞因爲被駭客用來編寫危害性更大的phishing攻擊而變得廣爲人知。對於跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新型的「緩衝區溢出攻擊「,而JavaScript是新型的「ShellCode」。後端

  • 在登陸的用戶名中輸入:5204,讀取/var/www/html目錄下的圖片:瀏覽器

相關文章
相關標籤/搜索