<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      20184307章森洋《網(wǎng)絡(luò)對(duì)抗技術(shù)》Exp8 WEB綜合

      基礎(chǔ)知識(shí)

      • Web前端
        • 編程言語(yǔ):html/css/javascript(js)
        • 運(yùn)行環(huán)境:瀏覽器
        • 編程用途:在瀏覽器內(nèi)部的動(dòng)態(tài),美觀展示形式
      • Web后端
        • 編程語(yǔ)言:PHP/JSP/.NET...
        • 運(yùn)行環(huán)境:應(yīng)用服務(wù)器/中間件
        • 編程用途:對(duì)前端提交的數(shù)據(jù)進(jìn)行處理并返回相應(yīng)的HTML網(wǎng)頁(yè)內(nèi)容
      • 數(shù)據(jù)庫(kù)編程
        • 編程語(yǔ)言:PHP/JSP/.NET相應(yīng)的庫(kù),SQL語(yǔ)言
        • 運(yùn)行環(huán)境:數(shù)據(jù)庫(kù)服務(wù)器
        • 編程用途:基本的數(shù)據(jù)增、刪、改、查

      實(shí)驗(yàn)過(guò)程

      Web前端

      ①kali中輸入service apache2 start命令,打開(kāi)Apache服務(wù)

      在瀏覽器中輸入127.0.0.1,如果可以打開(kāi)Apache的默認(rèn)網(wǎng)頁(yè),則開(kāi)啟成功

      ②使用cd /var/www/html進(jìn)入Apache目錄下,新建一個(gè)簡(jiǎn)單的含有表單的html文件login.html
      method 屬性:

      標(biāo)簽的 method 屬性中指明表單處理服務(wù)器要用方法來(lái)處理數(shù)據(jù),可以使用POST或者GET方法。

      如果采用 POST 方法,瀏覽器將會(huì)按照下面兩步來(lái)發(fā)送數(shù)據(jù)。首先,瀏覽器將與 action 屬性中指定的表單處理服務(wù)器建立聯(lián)系,一旦建立連接之后,瀏覽器就會(huì)按分段傳輸?shù)姆椒▽?shù)據(jù)發(fā)送給服務(wù)器。

      另一種情況是采用 GET 方法,這時(shí)瀏覽器會(huì)與表單處理服務(wù)器建立連接,然后直接在一個(gè)傳輸步驟中發(fā)送所有的表單數(shù)據(jù):瀏覽器會(huì)將數(shù)據(jù)直接附在表單的 action URL 之后。這兩者之間用問(wèn)號(hào)進(jìn)行分隔。

      <html>
      <head>
      	<script>
      
      function inputTest(){
      	//alert(document.getElementById("ppp").value);
      
      	if (document.getElementById("ppp").value.length>4){
      		return true
      	} else {
      	        return false;
      	}
      }
      
      	</script>
      
      </head>
      <body>
      
      Please Input Your Name and Password to login
      <form action="login.php" method="GET" onsubmit="return inputTest()">  
          <input type="text" name="username" value="Please Input Your Username"/>  <br>
          <input type="password" name="password" value="default" id="ppp"/>  <br>
          <input type="submit" value="Login GET"/>  
      </form> 
      <br>
      <br>
      
      </body>
      </html>
      

      在瀏覽器中輸入http://127.0.0.1/login.html,打開(kāi)網(wǎng)頁(yè)

      Web前端javascript

      DOM:是W3C組織推薦的處理可擴(kuò)展置標(biāo)語(yǔ)言的標(biāo)準(zhǔn)編程接口。它是一種與平臺(tái)和語(yǔ)言無(wú)關(guān)的應(yīng)用程序接口(API),它可以動(dòng)態(tài)地訪(fǎng)問(wèn)程序和腳本,更新其內(nèi)容、結(jié)構(gòu)和www文檔的風(fēng)格(目前,HTMl和XML文檔是通過(guò)說(shuō)明部分定義的)。文檔可以進(jìn)一步被處理,處理的結(jié)果可以加入到當(dāng)前的頁(yè)面。DOM是一種基于樹(shù)的API文檔,它要求在處理過(guò)程中整個(gè)文檔都表示在存儲(chǔ)器中。
      ①在原有l(wèi)ogin.html基礎(chǔ)上,可以添加一段JavaScript代碼,判斷用戶(hù)是否填寫(xiě)用戶(hù)名和密碼。修改后的login_test.html如下所示

      <html>
      <head>
      	<script>
      
      function inputTest(){
      	//alert(document.getElementById("ppp").value);
      
      	if (document.getElementById("ppp").value.length>4){
      		return true
      	} else {
      	        return false;
      	}
      }
      
      	</script>
      
      </head>
      <body>
      
      Please Input Your Name and Password to login
      <form action="login.php" method="GET"  name="form_login" onsubmit="return inputTest()">  
          <input type="text" name="username" value="Please Input Your Username"/>  <br>
          <input type="password" name="password" value="default" id="ppp"/>  <br>
          <input type="submit" value="Login GET" onClick="return valid_Login()"/>  
      </form> 
      <br>
      <br>
      
      <script language="javascript">  
          function valid_Login(){  
              var sUserName = document.form_login.username.value ;  
              var sPassword = document.form_login.password.value ;    
              if ((sUserName =="") || (sUserName=="Please Input Your Username")){  
              alert("Please Input Your Username!");  
              return false ;  
              }  
      
              if ((sPassword =="") || (sPassword=="default")){  
              alert("Please Input Your Password!");  
              return false ;  
              }  
      
          }   
      </script>  
      
      </body>
      </html>
      
      • 不輸入用戶(hù)名:
      • 不輸入密碼:

        ②嘗試注入攻擊,利用回顯用戶(hù)名注入HTML及JavaScript
        在輸入框輸入后<script>alert("20184307zhangsenyang")</script>

        會(huì)顯示出一個(gè)彈框,如下所示

      Web后端:MySQL基礎(chǔ)

      ①輸入service mysql start開(kāi)啟MySQL服務(wù)

      ②輸入mysql -u root -p使用root權(quán)限進(jìn)入,默認(rèn)的密碼是password

      ③輸入use mysql進(jìn)入mysql模塊;輸入update user set password=PASSWORD("新密碼") where user='root';修改密碼(這里我們注意可能是mysql數(shù)據(jù)庫(kù)的更新版本,這條修改密碼的語(yǔ)句已經(jīng)不可用了,因此我們換另外一條可行的指令:set password for root@’localhost’= password(‘20184307’);
      輸入flush privileges;,更新權(quán)限:

      ④輸入exit退出數(shù)據(jù)庫(kù),并輸入mysql -u root -p,使用新的密碼登錄

      ⑤使用create database 數(shù)據(jù)庫(kù)名稱(chēng);建立數(shù)據(jù)庫(kù)

      ⑥使用show databases;查看存在的數(shù)據(jù)庫(kù)

      ⑦使用use 數(shù)據(jù)庫(kù)名稱(chēng);使用我們創(chuàng)建的數(shù)據(jù)庫(kù)

      ⑧使用create table 表名 (字段設(shè)定列表);建立數(shù)據(jù)庫(kù)表,并設(shè)置字段基本信息;使用> show tables;查看表信息

      ⑨使用insert into 表名 values('值1','值2','值3'...);插入數(shù)據(jù);使用select * from 表名;查詢(xún)表中的數(shù)據(jù)

      ⑩在MySQL中增加新用戶(hù),使用grant select,insert,update,delete on 數(shù)據(jù)庫(kù).* to 用戶(hù)名@登錄主機(jī)(可以是localhost,也可以是遠(yuǎn)程登錄方式的IP) identified by "密碼";指令,這句話(huà)的意思是將對(duì)某數(shù)據(jù)庫(kù)的所有表的select,insert,update,delete權(quán)限授予某ip登錄的某用戶(hù):

      ?增加新用戶(hù)后,使用新的用戶(hù)名和密碼進(jìn)行登錄:

      登陸成功,新增用戶(hù)成功

      Web后端:編寫(xiě)PHP網(wǎng)頁(yè),連接數(shù)據(jù)庫(kù),進(jìn)行用戶(hù)認(rèn)證

      ①在/var/www/html目錄下新建一個(gè)PHP測(cè)試文件phptest.php,簡(jiǎn)單了解一下它的一些語(yǔ)法:

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


      ②在瀏覽器網(wǎng)址欄中輸入localhost:80/phptest.php?a=/etc/passwd,可看到/etc/passwd文件的內(nèi)容

      ③利用PHP和MySQL,結(jié)合之前編寫(xiě)的登錄網(wǎng)頁(yè)進(jìn)行登錄身份認(rèn)證,修改后的login.php代碼如下:

      <?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", "zhangsenyang", "111111", "4307zxy");
      
      /* 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!!! <br> ";
          } 
          else {
              echo "<br> login failed!!!! <br> " ; }
          /* free result set */
          $result->close();
      }
      $mysqli->close();
      ?>
      

      最簡(jiǎn)單的SQL注入,XSS攻擊測(cè)試

      SQL注入

      SQL注入,就是通過(guò)把SQL命令插入到Web表單提交或輸入域名或頁(yè)面請(qǐng)求的查詢(xún)字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。具體來(lái)說(shuō),它是利用現(xiàn)有應(yīng)用程序,將(惡意的)SQL命令注入到后臺(tái)數(shù)據(jù)庫(kù)引擎執(zhí)行的能力,它可以通過(guò)在Web表單中輸入(惡意)SQL語(yǔ)句得到一個(gè)存在安全漏洞的網(wǎng)站上的數(shù)據(jù)庫(kù),而不是按照設(shè)計(jì)者意圖去執(zhí)行SQL語(yǔ)句。
      在用戶(hù)名輸入框輸入' or 1=1#,密碼任意輸入,可登陸成功:

      這是因?yàn)椋斎氲挠脩?hù)名和我們的代碼中select語(yǔ)句組合起來(lái)變成了select * from users where username='' or 1=1#' and password='',#相當(dāng)于注釋符,會(huì)把后面的內(nèi)容都注釋掉,而1=1是永真式,所以這個(gè)條件永遠(yuǎn)成立,所以不管密碼是否輸入正確,都能夠成功登陸。

      XSS攻擊

      跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫(xiě)混淆。故將跨站腳本攻擊縮寫(xiě)為XSS。XSS是一種經(jīng)常出現(xiàn)在web應(yīng)用中的計(jì)算機(jī)安全漏洞,它允許惡意web用戶(hù)將代碼植入到提供給其它用戶(hù)使用的頁(yè)面中。比如這些代碼包括HTML代碼和客戶(hù)端腳本。攻擊者利用XSS漏洞旁路掉訪(fǎng)問(wèn)控制——例如同源策略(same origin policy)。這種類(lèi)型的漏洞由于被駭客用來(lái)編寫(xiě)危害性更大的phishing攻擊而變得廣為人知。
      將一張圖片放在/var/www/html目錄下,在用戶(hù)名輸入框輸入<img src="2.jpg" />,密碼隨意,就可以讀取圖片

      選做Webgoat或類(lèi)似平臺(tái)的SQL注入、XSS、CSRF攻擊各一例

      webgoa的安裝

      ①檢查jdk的版本

      ②下載webgoat-server-8.0.0.M21.jar包后,在cmd命令下打開(kāi),輸入java -jar webgoat-server-8.0.0.M14.jar

      在瀏覽器中輸入http://127.0.0.1:8080/WebGoat/login.mvc

      注冊(cè)一個(gè)賬號(hào),然后登錄

      我們點(diǎn)開(kāi)sql注入漏洞界面

      SQL注入攻擊

      數(shù)字型注入:Numeric SQL Injection

      構(gòu)造如下:101 or 1 = 1

      xss攻擊

      Reflected XSS Attacks

      當(dāng)我們輸入錯(cuò)誤用戶(hù)信息后,服務(wù)器校驗(yàn)輸入有誤,返回錯(cuò)誤頁(yè)面并將錯(cuò)誤內(nèi)容展示給我們看,這時(shí)如果我們將帶有攻擊性的URL作為輸入源,就會(huì)彈出對(duì)話(huà)框
      這里我們輸入<script>alert('my javascript here')</script>作為credit card number輸入,會(huì)彈出my javascript here

      CSRF攻擊

      跨站請(qǐng)求偽造,盡管聽(tīng)起來(lái)像跨站腳本(XSS),但它與XSS非常不同,XSS利用站點(diǎn)內(nèi)的信任用戶(hù),而CSRF則通過(guò)偽裝來(lái)自受信任用戶(hù)的請(qǐng)求來(lái)利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對(duì)其進(jìn)行防范的資源也相當(dāng)稀少)和難以防范,所以被認(rèn)為比XSS更具危險(xiǎn)性。

      點(diǎn)擊頁(yè)面中的提交按鈕,復(fù)制新的頁(yè)面的地址:http://127.0.0.1:8080/WebGoat/csrf/basic-get-flag?csrf=false&submit=提交
      在kali上/var/www/html下新建了一個(gè)html文件,代碼如下:

      因?yàn)槲业腤EBGOAT是裝在win上,所以在瀏覽器中輸入kali的ip+攻擊文件,即:http://192.168.50.224/ppp.html
      按F12打開(kāi)控制臺(tái),選中網(wǎng)絡(luò)下面的ppp.html文件,就能得到答案

      問(wèn)題回答

      1. 什么是表單
      • 表單是用來(lái)讀取用戶(hù)操作的數(shù)據(jù)的,例如輸入的內(nèi)容,點(diǎn)擊按鈕、超鏈接等。
      • 表單包含了文本框、密碼框、隱藏域、多行文本框、復(fù)選框、單選框、下拉選擇框、文件上傳框;按鈕包含提交按鈕和復(fù)位按鈕。
        2.瀏覽器可以解析運(yùn)行什么語(yǔ)言。
      • 支持HTML、JavaScript、PHP、Python、XML等腳本語(yǔ)言。
      1. WebServer支持哪些動(dòng)態(tài)語(yǔ)言
      • 比較常用的三種動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言有PHP(HypertextPreprocessor)、ASP(ActiveServerPages)、JSP(JavaServerPages)。
        4.防范注入攻擊的方法有哪些
      • 檢查是否包函非法字符,在后臺(tái)控制輸入的長(zhǎng)度或者禁止用戶(hù)輸入一些特殊符號(hào),例如 -- 、' 等
      • 使用正則表達(dá)式過(guò)濾傳入的參數(shù)

      實(shí)驗(yàn)心得體會(huì)

      這是最后一次試驗(yàn)了,一開(kāi)始配jdk的環(huán)境花了挺久的時(shí)間,之后的攻擊也是花了非常久的時(shí)間,總體來(lái)說(shuō)這次實(shí)驗(yàn)的量還是非常大的。通過(guò)本次實(shí)驗(yàn)學(xué)習(xí)了使用WebGoat工具進(jìn)行SQL注入攻擊、XSS攻擊、CSRF攻擊,自己操作下來(lái)覺(jué)得挺有意思的,對(duì)SQL語(yǔ)句格式有了更深掌握,對(duì)各種攻擊的防御也有了一些感觸。實(shí)驗(yàn)中碰到不會(huì)的地方也請(qǐng)教了同學(xué),最終還是完成了本次實(shí)驗(yàn)。

      posted @ 2021-06-01 19:32  章森洋  閱讀(152)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 久久精品熟妇丰满人妻久久| 成人网站免费观看| 国产精品一区二区三区黄色| 中文字幕亚洲综合第一页| 日韩狼人精品在线观看| 天堂俺去俺来也www色官网| 亚洲一级特黄大片在线观看| 吉安县| 免费视频欧美无人区码| 精品国产免费第一区二区三区| 亚洲国产精品国自拍av| 精品国产精品中文字幕| 日韩精品亚洲专在线电影| 天天躁夜夜躁天干天干2020| 精品亚洲无人区一区二区| 亚洲精品无码你懂的| 色偷偷女人的天堂亚洲网| 人妻少妇精品系列一区二区| 精品国产成人午夜福利| 蜜桃臀av在线一区二区| 中文字幕在线日韩| 精品人妻蜜臀一区二区三区| 肉大榛一进一出免费视频| 国产乱码精品一区二区三上| 国产精品自在线拍国产手机版| 日韩一区二区三区水蜜桃| 中文字幕亚洲精品人妻| 欧美人与禽2o2o性论交| 亚洲国产精品高清久久久| 亚洲毛片不卡AV在线播放一区| 亚洲av综合久久成人网| 国产精品高清国产三级囯产AV| 特级做a爰片毛片免费看无码| 久久久久久久久久久久中文字幕 | 无码熟妇人妻AV影音先锋| 精品国产午夜理论片不卡| 亚洲人成18在线看久| 狠狠色综合久久狠狠色综合| 在线亚洲+欧美+日本专区| 日韩一区二区三区在线视频| 日韩人妻无码一区二区三区99|