20155218《網絡對抗》Exp8 Web基礎

20155218《網絡對抗》Exp8 Web基礎

一、基礎問題回答

一、什麼是表單?

  • 表單是一個包含表單元素的區域,表單元素是容許用戶在表單中(好比:文本域、下拉列表、單選框、複選框等等)輸入信息的元素,表單在網頁中主要負責數據採集功能,一個表單有三個基本組成部分:表單標籤、表單域、表單按鈕;php

    二、瀏覽器能夠解析運行什麼語言?

  • 支持HTML(超文本標記語言)、XML(可擴展標記語言)以及Python、PHP、JavaScript、ASP等衆多腳本語言。html

    三、WebServer支持哪些動態語言?

  • JavaScript、ASP、PHP、Ruby等腳本語言前端

    二、實踐內容

    (1).Web前端HTML

  • 一、打開Apache。
  • 二、cd var/www/html進入到Apache的工做目錄下,新建一個含有表單的html,包含基本登陸功能;
<html  >
<head>
    <meta charset="UTF-8">
    <title>網絡攻防</title>
 </head>
<body>
<form>
    <table width="350" bgcolor="#ccffcc"  border="1">
        <tr align=center>
            <td>用戶名</td><td><input type="text" name="username" id="username"></td>
        </tr>
        <tr align=center><td>密 碼</td><td><input type="password" name="password" id="password"></td></tr>
        <tr align=center><td colspan="2"><input type="button" value="登 錄" onclick="r();"/>     <input type="reset" value="重 置"/></td></tr>
    </table>
</form>
</body>
</html>
  • 三、頁面效果
    java

    (2).Web前端javascipt

  • 一、編寫JavaScript驗證用戶名、密碼的規則:
  • 二、代碼:
<html  >
<head>
    <meta charset="UTF-8">
    <title>網絡攻防</title>
    <script>
        function r()
        {
            var username=document.getElementById("username");
            var pass=document.getElementById("password");
            if(username.value=="")
            {
                alert("請輸入用戶名");
                username.focus();
                return;
            }
            if(pass.value=="")
            {
                alert("請輸入密碼");
                return;
            }
            return true;
        }
    </script>
</head>
<body>
<form>
    <table width="350" bgcolor="#ccffcc"  border="1">
        <tr align=center>
            <td>用戶名</td><td><input type="text" name="username" id="username"></td>
        </tr>
        <tr align=center><td>密 碼</td><td><input type="password" name="password" id="password"></td></tr>
        <tr align=center><td colspan="2"><input type="button" value="登 錄" onclick="r();"/>     <input type="reset" value="重 置"/></td></tr>
    </table>
</form>
</body>
</html>
  • 三、實現的界面:若是沒有輸入帳戶或者密碼都會進行提示

    python

    三、Web後端:MySQL基礎:正常安裝、啓動MySQL,建庫、建立用戶、修改密碼、建表

  • 一、先/etc/init.d/mysql start指令開啓mysql服務,輸入mysql -u root -p,輸入密碼,默認密碼爲password,進入MySQL
  • 二、修改密碼:
輸入use mysql;
選擇mysql數據庫
輸入select user, password, host from user;顯示mysql庫中已有的用戶名、密碼與權限
輸入UPDATE user SET password=PASSWORD("20155218") WHERE user='root';更改用戶名root的密碼
輸入flush privileges;更新權限。
輸入quit退出,從新登陸mysql

  • 三、建立數據庫和新表。
create database xzhdb;
use  xzhdb;
create table  (username VARCHAR(45),password VARCHAR(256));
  • 四、插入數據
insert into xzh(username,password) values('20155218','123456');

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

  • 一、在/var/www/html目錄下新建一個PHP測試文件
<?php
  echo ($_GET["a"]);
  include($_GET["a"]);
  echo "This is xuzhihan php test page!<br>";
?>

  • 二、編寫login.php;
<?php

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

/* echo $uname; */

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

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

$mysqli = new mysqli("127.0.0.1", "xzh", "20155218", "xzhdb");
/* 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();

?>
  • 三、在用戶界面輸入帳號密碼,登陸;
    mysql

  • 四、成功;web

    (5).最簡單的SQL注入

  • 一、在用戶名處輸入:sql

admin' or 1=1#

獲得的sql語句是:chrome

select * from users where username='admin' or 1=1#' and password='';

‘#’是註釋符,會把後面的內容都註釋掉,而1=1是永真式,因此這個條件永遠成立。數據庫

(6).最XSS攻擊測試

  • 一、首先在var/www/html目錄下放置一張圖片;
  • 二、在登陸框內輸入,至關於網頁執行了這句代碼,從而給用戶直接顯示出了圖片;
  • 三、攻擊成功顯示出你存放的圖片:

    (6)sqlmap的使用

  • 一、下載
python sqlmap.py -d "mysql://root:root@127.0.0.1:3306/DISSchool"

  • 二、直接鏈接數據庫:
python sqlmap.py -d "mysql://xzh:20155218@127.0.0.1:3306/xzhdb"

三、實驗感想

在此次試驗中,咱們瞭解到了最基本的sql注入和xss攻擊,在查找關於cookie的記錄中發現解決實際問題的一些方法;我姐姐讓我幫她填問卷(問卷星),一個微信只能填一次,讓我填5個我還得找5我的;接下來我發現我用電腦也能夠投一次,換不一樣的瀏覽器也能夠投一次,說明不是ip綁定,那就是cookie綁定了,可是我檢查網頁元素沒有找到與cookie綁定的語句,因此暫時只能採用填一次問卷清除一次本地緩存的方法;但我有疑惑的是爲何用chrome的無痕瀏覽不能屢次填問卷;

  • 在聽第九次實驗時,檢查網頁,搜索一了一下「設備」,找到了一個id=「divTip」的div;而後搜索了一下divTip,果真找到了cookie設置和綁定的語句;
相關文章
相關標籤/搜索