日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20145233《网络对抗》Exp8 Web基础

發布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20145233《网络对抗》Exp8 Web基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

20145233《網絡對抗》Exp8 Web基礎

實驗問題思考

  • 什么是表單?
    • 表單在網頁中主要負責數據采集功能
    • 一個表單有三個基本組成部分: 表單標簽
    • 表單域:包含了文本框、密碼框、隱藏域、多行文本框、復選框、單選框、下拉選擇框和文件上傳框等
    • 表單按鈕:包括提交按鈕、復位按鈕和一般按鈕.表單按鈕可以用于將數據傳送到服務器上的CGI腳本或者取消輸入,還可以用表單按鈕來控制其他定義了處理腳本的處理工作
  • 瀏覽器可以解析運行什么語言?
    • 超文本標記語言:HTML
    • 可擴展標記語言:XML
    • 腳本語言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等
  • WebServer支持哪些動態語言?
    • php、asp、net、java、ruby等多種動態開發語言

實驗內容

  • Web前端HTML
    • 能正常安裝、啟停Apache。理解HTML,理解表單,理解GET與POST方法,編寫一個含有表單的HTML。
  • Web前端javascipt
    • 理解JavaScript的基本功能,理解DOM。編寫JavaScript驗證用戶名、密碼的規則。
  • Web后端:MySQL基礎:正常安裝、啟動MySQL,建庫、創建用戶、修改密碼、建表

  • Web后端:編寫PHP網頁,連接數據庫,進行用戶認證

  • 最簡單的SQL注入,XSS攻擊測試
    • 功能描述:用戶能登陸,登陸用戶名密碼保存在數據庫中,登陸成功顯示歡迎頁面

實驗過程

  • (我做完了才發現怎么名字又變回老師的名字了,我以為上次改過之后會保存的,但是實驗中的所有都是我自己做的,絕無虛假!)

    Apache

  • 先通過apachectl start命令開啟Apach,使用netstat -aptn命令查看端口占用的情況

  • 因為端口號80已經被占用(上次DNS實驗設置的),所以先修改/etc/apache2/ports.conf里的端口為5233后重新開啟

  • 可以在瀏覽器中輸入localhost:5233來檢查是否正常開啟,這里可以看到打開了上次實驗的網頁,啟動正常

簡單的表單網頁

  • 重新生成一個5233.html文件,做成一個有表單功能的網頁:

  • 在瀏覽器中打開localhost:5233/5233.html(顏色我使用了一個很有意思的顏色):
  • (當然是選擇原諒她啊)

  • 點擊提交會把表單提交到指定頁面,因為還沒有編寫php文件,所以提交后找不到頁面(notfound):

javascript

  • JavaScript是一種廣泛用于客戶端Web開發的腳本語言,常用來給HTML網頁添加動態功能,比如響應用戶的各種操作。
  • 文檔對象模型(Document Object Model,簡稱DOM,是W3C組織推薦的處理可擴展標志語言的標準編程接口。
  • 編寫驗證用戶名和密碼的規則:(例如用戶名和密碼不能為空)
function nameText(){ var name= document.getElementByIdx_x ("username");var divID= document.getElementByIdx_x ("divName");divID.innerHTML="";if(name.value==""){divID.innerHTML="用戶名不能為空";return false; } } function passText(){ var pass= document.getElementByIdx_x ("password");var divIP= document.getElementByIdx_x ("divPass");divIP.innerHTML="";if(pass.value==""){divIP.innerHTML="密碼不能為空";return false; } } } </script>

PHP測試

  • PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,現在被很多的網站編程人員廣泛的運用。

  • 簡單的php測試代碼:

<?phpecho ($_GET["A"]);include($_GET["A"]);echo "php page test!hahahahahaha<br>"; ?> 20145233
  • 打開localhost:5208/20145208test.php:

MySQL

  • 使用命令/etc/init.d/mysql start打開mysql服務

  • 輸入mysql -u root -p,并根據提示輸入密碼,默認密碼為p@ssw0rd,進入MySQL:

  • 可以使用命令show databases;查看信息(注意:分號不能漏掉,因為分號表示命令結束)

  • 修改密碼可以進行下列指令:
    • 輸入use mysql;,選擇mysql數據庫
    • 輸入select user, password, host from user;,mysql庫中的user表中存儲著用戶名、密碼與權限
    • 輸入UPDATE user SET password=PASSWORD("新密碼") WHERE user='root';
    • 輸入flush privileges;,更新權限
    • 輸入quit退出
  • 重新登錄就可以發現密碼修改成功

創建新表

  • 使用如下兩條命令可以建立新表(開始的符號出錯了導致有一個error)

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查看信息就可以看到新建表:

php+mysql編寫網頁

  • 網頁的登錄頁面:
<html lang="en"> <head><meta charset="UTF-8"><title>login</title><script type="text/javascript"> $("#login-button").click(function(event){event.preventDefault(); $('form').fadeOut(500);$('.wrapper').addClass('form-success');});function check(){{if(form.username.value == "")//如果用戶名為空{alert("您還沒有填寫用戶名!");form.username.focus();return false;}if(form.pass.value == "")//如果密碼為空{alert("您還沒有填寫密碼!");myform.pass.focus();return false;}} </script> </head> <body><div class="wrapper"><div class="container"><h1>Welcome</h1> <form name='form' class="form" method='get' action='login.php' onSubmit="return check()"><input type="text" placeholder="Username" name='username'><input type="password" placeholder="Password" name='password'><button type="submit" id="login-button" name='submit' value='submit'>Login</button><button type="submit" id="register-button"><a href="register.html" class="cc">register</a></button></form></div></div> </body> </html>

  • 實現與數據庫鏈接的php頁面:
<?php $uname=($_GET["username"]); $pwd=($_GET["password"]); echo $uname; $query_str="SELECT * FROM users where username='{$uname}' and password=password('{$pwd}');"; echo "<br> {$query_str} <br>"; $mysqli = new mysqli("127.0.0.1", "root", "20145233", "hhc_5233"); /* check connection */ if ($mysqli->connect_errno) {printf("Connect failed: %s\n", $mysqli->connect_error); } else echo "aishiyidaoguang,rucimeimiao<br>";if ($result1= $mysqli->multi_query($query_str))echo "dangranshixuanzeyuanliangtaa <br> "; $mysqli->close(); $mysqli = new mysqli("127.0.0.1", "root", "20145233", "hhc_5233"); /* 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(); ?>
  • 輸入登錄信息,登錄成功:

  • 輸入登錄信息,登錄失敗:

SQL注入

  • 老師上課所講的永真式注入:' or 1=1#,密碼隨便輸入
  • 開始注入的時候我出現了問題,是因為我沒有將庫的信息輸入正確,我自己前面設置的密碼與其他搞混了,出現以下狀況,修改后成功:

  • 注入成功

  • 接下來我看到了蔡野同學通過sql注入保存用戶名密碼到數據庫,我也同樣試用了一下他的方法,利用這個判斷將結果引導其他地方:
    ';insert into users(userid,username,password,enabled) values(5233,'hhc',password("20145233"),"TRUE");#
  • 注入成功(愛是一道光如此美妙):

XSS攻擊

  • XSS攻擊:跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊縮寫為XSS。XSS是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。比如這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞由于被駭客用來編寫危害性更大的phishing攻擊而變得廣為人知。對于跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新型的“緩沖區溢出攻擊“,而JavaScript是新型的“ShellCode”。
  • 在html文件下放置一個圖片:
  • 輸入<img src="5233.jpg" />20145233</a>來讀取網頁目錄下的圖片(可愛的2b小姐姐):

會話管理

  • 實驗代碼參照羅天晨同學的代碼git托管
  • 進入http://localhost:5233/logIn.php并登錄發貼:

  • 我的這里有些問題,無法跳轉很奇怪,我會在之后繼續研究

實驗總結

  • 本次實驗涉及到的只是還是比較多的,其中關于javaweb的知識還是比較多的,這又讓我想起了Java,曾經被Java博客支配的恐懼,不過劉老師的博客寫的還是讓人很舒服的,覺得有所收獲,不像java一樣難懂,雖然Java也有所學。
  • 其中關于網頁編寫的地方,很多地方都有些遺忘了,只記得比較簡單的地方,在后面的實驗中,我看到有的同學還是可以憑借自己的實力寫出代碼,我還是覺得他們很厲害,學的知識不容易忘。我覺得自己在這方面還是需要加強,知識需要不停地復習。
  • 在最后一部分的會話管理中,我的出現了問題,就是輸入庫里的賬號密碼信息,居然沒有跳轉,不清楚是為什么,在咨詢了蔡野同學之后,依舊沒有解答,所以我先將這個問題放在這里,就在這兩天對其進行更詳細的解答。

轉載于:https://www.cnblogs.com/hanhaochen/p/6822237.html

總結

以上是生活随笔為你收集整理的20145233《网络对抗》Exp8 Web基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。