20145227鄢曼君《網絡對抗》Web基礎

20145227鄢曼君《網絡對抗》Web基礎

實驗內容

  • (1)Web前端HTML
  • (2)Web前端javascipt
  • (3)Web後端:MySQL基礎:正常安裝、啓動MySQL,建庫、建立用戶、修改密碼、建表
  • (4)Web後端:編寫PHP網頁,鏈接數據庫,進行用戶認證
  • (5)最簡單的SQL注入,XSS攻擊測試

實驗後回答問題

(1)什麼是表單php

  • 表單:能夠收集用戶的信息和反饋意見,是網站管理者與瀏覽者之間溝通的橋樑。
  • 表單包括兩個部分:一部分是HTML源代碼用於描述表單(例如,域,標籤和用戶在頁面上看見的按鈕),另外一部分是腳本或應用程序用於處理提交的信息(如CGI腳本)。不使用處理腳本就不能蒐集表單數據。
  • 表單由文本域、複選框、單選框、菜單、文件地址域、按鈕等表單對象組成,全部的部分都包含在一個由標識符標誌起來的表單結構中。
  • 表單的種類有註冊表、留言薄、站點導航條、搜索引擎等。

(2)瀏覽器能夠解析運行什麼語言。html

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

(3)WebServer支持哪些動態語言前端

  • PHP語言、JSP語言。

實驗總結與體會

  • 上學期咱們學過一些有關html網頁編程的例子,因此編出了簡單的HTML網頁。此次實驗咱們系統的接觸了不少web方面的知識,尤爲是SQL注入和XSS攻擊測試,是咱們之前所沒有接觸到的,對咱們幫助很大。

實驗過程

Web前端HTML

  • 輸入命令apachectl start打開apahce,並查看端口號,確認apache開啓:

  • Apache服務開啓後,咱們在瀏覽器中輸入localhost:8088進行查看,如圖所示,打開了上次實驗克隆的網頁,說明咱們Apache正常工做:

  • 在/var/www/html目錄下新建一個含有表單的html,咱們經常使用的登陸頁面通常就是用表單向後臺提交數據,因此能夠編寫一個簡單的登陸頁面:

  • 在登陸網頁中的文本框中填寫一些數據,提交。由於在該目錄下咱們沒有編寫指定的php文件,因此此時提交會顯示網頁未找到。

Web前端javascipt

  • JavaScript是一種屬於網絡的腳本語言,已經被普遍用於網頁,用來改進設計、驗證表單、檢測瀏覽器、建立cookies,以及更多的應用,一般JavaScript腳本是經過嵌入在HTML中來實現自身的功能的。
  • 咱們直接在以前的代碼中進行修改來限制用戶登陸時必須輸入用戶名和密碼。

  • 結果以下圖所示:

MySQL基礎

  • mysql是一個數據庫,咱們此次進行了簡單的應用:開啓mysql,並更改用戶名密碼;創建庫表,並插入數據;實現網頁和數據庫的鏈接。
  • 輸入/etc/init.d/mysql start打開mysql服務,
  • 輸入mysql -u root -p,以root身份登陸,根據提示輸入密碼,默認密碼爲p@ssw0rd,進入MySQL:

  • 修改密碼:
輸入`use mysql;`,選擇mysql數據庫
輸入`select user, password, host from user;`,顯示mysql庫中已有的用戶名、密碼與權限
輸入`UPDATE user SET password=PASSWORD("新密碼") WHERE user='root';`更改用戶名root的密碼
輸入`flush privileges;`,更新權限。
輸入`quit`退出,從新登陸mysql

  • 從新輸入mysql -u root –p,使用新密碼成功登陸。如上圖。java

  • 建立新表。命令以下:mysql

CREATE SCHEMA `庫表的名稱`;
CREATE TABLE `庫表的名稱`.`users` (
 `userid` INT NOT NULL COMMENT '',
 `username` VARCHAR(45) NULL COMMENT '',
 `password` VARCHAR(256) NULL COMMENT '',
 `enabled` VARCHAR(5) NULL COMMENT '',
 PRIMARY KEY (`userid`) COMMENT '');

  • 在表中添加內容。如上圖下半部分。
use 剛剛創建的庫表名
insert into users(userid,username,password,enabled) values(1,'用戶id',password("用戶密碼"),"TRUE");
  • 輸入show databases,查看新建的庫表的信息:

PHP網頁

  • PHP(Hypertext Preprocessor)是一種通用開源腳本語言。主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率高,PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。
  • 咱們先來測試一下。如下是一個php測試代碼:

  • 編寫與數據庫鏈接的php頁面。能夠參考老師給的代碼編寫login.php:

  • 在登陸頁面中輸入數據庫中存有的用戶名和密碼並點擊提交進行用戶認證登陸成功,輸入數據庫中沒有的就會認證失敗。

SQL注入

  • 能夠經過在Web表單中輸入(惡意)SQL語句獲得一個存在安全漏洞的網站上的數據庫,經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
  • 在網頁登陸的用戶名中填寫' or 1=1#,密碼隨便輸入,這時候的合成後的SQL查詢語句爲select * from users where username='' or 1=1#' and password=md5('')
    如下的兩句sql語句等價:
    select * from users where username='' or 1=1#' and password=md5('')
    select * from users where username='' or 1=1
  • 因爲1=1永遠是都是成立的,即where子句老是爲真,因此可以成功登陸:

  • 或者在用戶名框中輸入';insert into users(userid,username,password,enabled) values(888,'5227',password("20145227"),"TRUE");#,在數據庫中能夠直接插入一個僞造的用戶名,密碼,下次就能夠用僞造的用戶名密碼登陸網站了。

XSS攻擊

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

相關文章
相關標籤/搜索