20145211 《網絡對抗》Exp8 Web基礎

20145211 《網絡對抗》Exp8 Web基礎

本實踐的具體要求有:

(1).Web前端HTML(1分)javascript

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

(2).Web前端javascipt(1分)php

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

(3).Web後端:MySQL基礎:正常安裝、啓動MySQL,建庫、建立用戶、修改密碼、建表(1分)css

(4).Web後端:編寫PHP網頁,鏈接數據庫,進行用戶認證(1分)html

(5).最簡單的SQL注入,XSS攻擊測試(1分)前端

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

實驗後回答問題

(1)什麼是表單java

  • HTML 表單用於蒐集不一樣類型的用戶輸入。
  •  表單包含表單元素——不一樣類型的 input 元素、複選框、單選按鈕、提交按鈕等等。mysql

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

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

  • 諸如HTML5,XML,PYTHON,PHP,CGI,JSP等。

(3)WebServer支持哪些動態語言正則表達式

  • 有的支持php、asp、net、java、ruby等

實驗總結與體會

  • 此次主要的嘗試是用了PHP腳本語言,以前咱們學JAVA web的時候,也寫過網頁代碼,也有前端,後臺,數據庫,只是咱們當時用的是JSP。後來我思考了一下,只有用exclipse啓用APACHE服務,本地才能打開jsp頁面,後來我想,若是把咱們此次作的php換成jsp,在kali裏面,應該也是可以運行的。不過此次比較忙,並無時間嘗試……
  • 看到sql和xss可以輕易地攻擊,這讓我不由想到爲何以前寫代碼,老師老是讓咱們不斷地進行邊界測試,正是當時代碼的不完善,才致使後期運行會出現問題,仍是當心爲上。

實踐過程記錄

Apache

  • 修改/etc/apache2/ports.conf裏的端口爲5211,開啓apachectl start命令開啓Apach,;這樣避免了端口占用問題。
  • 瀏覽器中輸入localhost:5211能夠正常開啓,前期準備完成。

簡單的表單網頁

  • 寫一個帶有表單功能的login頁面,在瀏覽器中打開localhost:5211/5211.html,用了css架構,並且這個雲是能夠左右移動的,此處沒法添加視頻,只有靜態畫面。

 

 

 

javascript

  • JavaScript是一種普遍用於客戶端Web開發的腳本語言,經常使用來給HTML網頁添加動態功能,好比響應用戶的各類操做。
  • 文檔對象模型(Document Object Model,簡稱DOM,是W3C組織推薦的處理可擴展標誌語言的標準編程接口。
  • 編寫驗證用戶名和密碼的規則:(好比用戶名和密碼必須由字母或數字組成,不能含有非法字符,且密碼長度不能超過10)

<script type="text/javascript">
function check(){
var user=document.getElementById("username").value;
var reg_user=/^[a-zA-Z0-9]{1,10}$/;
var pwd=document.getElementById("password").value;
var reg_pwd=/^[a-zA-Z0-9]{1,10}$/;
if(reg_user.test(user)==false){
alert("username wrong");
return false;
}
else if(reg_pwd.test(pwd)==false){
alert("密碼不能含有非法字符,長度在1-10之間");
return false;
}
else
return true;
}
</script>sql

PHP測試

  • PHP,是一種通用開源腳本語言,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,語言嘛,看起來和誰都像,不過看到正則表達式就頭大。

  • 一個簡單的php測試代碼:

<?php echo ($_GET["A"]); include($_GET["A"]); echo "this is my first php page!<br>"; ?> 20145211
  • 打開localhost:5211/login.php:

 

MySQL

  • 以前一直是在windows命令行裏操做,此次換到kali裏面,並無什麼差異。
  • 使用命令/etc/init.d/mysql start打開mysql服務
  • 輸入mysql -u root -p,並根據提示輸入密碼,默認密碼爲p@ssw0rd,進入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");

 

  • 建立表以下,必定要注意在sql中,不要忘記加「;」,否則就出不來了,只能強行退出

php+mysql編寫網頁

  • 與數據庫連接的php頁面:

 

  • 輸入登陸信息,登陸成功:

 

  • 在作實驗的過程當中,我發現數據表的名字不能叫USERS,由於這與默認的衝突,因此得換個名字,不然登陸不成功

     

SQL注入

  • 經過在Web表單中輸入SQL語句,在一個存在安全漏洞的網站數據庫上添加字段,把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器的目的。
  • 上課老師講的是永真注入,不過如今通常正常的網站登陸都已經考慮到這個問題,注入是無效的
    ' or 1=1#
  • 注入成功:

 

 

  • 這是由於注入後的查詢SQL語句是:SELECT * FROM users where username='' or 1=1#' and password=password('');構成了恆成立的條件一樣的思路也能夠經過sql注入保存用戶名密碼到數據庫:';insert into users values(「52110」,"52110"));#,  

  • 查看數據表,發現新添加了一個用戶    

  

 

  • 此時在登陸,成功

 

 

 

XSS攻擊

  • XSS攻擊:跨站腳本攻擊(Cross Site Scripting),是一種常常出如今web應用中的計算機安全漏洞,攻擊者將代碼植入到web頁面中。這能夠說是一種是新型的「緩衝區溢出攻擊「,而JavaScript是新型的「ShellCode」。

  • 輸入<img src="5211.jpg" />20145211</a>來讀取網頁目錄下的圖片:

相關文章
相關標籤/搜索