1. 程式人生 > >20155206 Exp8 WEB基礎實踐

20155206 Exp8 WEB基礎實踐

同一文件 init 文件 選擇 XP user ports tar 好的

20155206 Exp8 WEB基礎實踐

基礎問題回答

(1)什麽是表單
表單在網頁中主要負責數據采集功能。
一個表單有三個基本組成部分:
表單標簽:這裏面包含了處理表單數據所用CGI程序的URL以及數據提交到服務器的方法。
表單域:包含了文本框、密碼框、隱藏域、多行文本框、復選框、單選框、下拉選擇框和文件上傳框等。
表單按鈕:包括提交按鈕、復位按鈕和一般按鈕;用於將數據傳送到服務器上的CGI腳本或者取消輸入,還可以用表單按鈕來控制其他定義了處理腳本的處理工作。

(2)瀏覽器可以解析運行什麽語言。
支持HTML(超文本標記語言)、XML(可擴展標記語言)以及ASP、PHP、Script、JavaScript、VBScript、Perl、Python、Java、JSP等眾多腳本語言

(3)WebServer支持哪些動態語言
目前動態語音有:asp、php、cgi、lisp、Perl、python,Smalltalk、Ruby等

實驗感想與體會

本次實驗是結合之前所學的網頁編程的技術,還有對於網頁攻擊技術的基本了解,以及調用數據庫,建立連接。了解基本的SQL註入的原理,感覺收獲最大的是講一些知識結合起來使用,之前學的都是零散的知識,很多都是碎片化的知識來的,正好這幾天也是我們課程設計的時候,正好將這裏所用的思想轉換一下,希望可以在課設中確定一個好的結果。

Apache環境配置

、先將端口號設置為自己學號(興趣使然)輸入命令vi /etc/apache2/ports.conf更改apache2的監聽端口號,
、 再輸入systemctl start apache2

打開apache2。

、 輸入netstat -aptn查看端口號,確認apache正確開啟。
技術分享圖片

、 利用kali自帶的瀏覽器訪問127.0.0.1:5206(本機地址+你設置的監聽的端口),可驗證apache已經開啟
技術分享圖片
、 輸入vi /var/www/html/20155210.txt新建一個txt文件,再輸入一串字符
技術分享圖片
、 瀏覽器打開 127.0.0.1:5206/20155206.txt,可看到20155206.txt的內容。
技術分享圖片

前端編程

、 使用vi /var/www/html/20155206.html.html文件並輸入代碼
<html> <head> <title>login</title> </head> <body> <form name=“form” action="20155206.php" method="post"> Username:<input type="text" name="user"><p> Password:<input type="password" name="pw"><p> <input type="submit" value="submit"> </form> </body> </html>


、此時在firefox內打開127.0.0.1:5206/20155206.html
技術分享圖片
、 ok,我們已經有了一個簡單的前端,現在需要再編寫一個PHP
vi /var/www/html/20155210.php繼續在這個目錄建一個.php文件,並且輸入代碼
`<?php
$user=($_POST["user"]);

$psw=($_POST["pw"]);

echo "welcome ";
echo $user;
?>`
、 現在進20155206.html登錄
技術分享圖片
、 沒問題了!!!!!!

web前端javascript

、 對前端代碼進行修改
<html> <head> <title>login</title> <meta charset="utf-8"/> <script language="javascript"> function check(form){ var Username =form.user.value; var pwd =form.pw.value; if((Username == "")||(pwd == ""))//如果用戶名為空 { alert("用戶名或密碼不能為空"); return false; } if (pwd.length > 16 || pwd.length < 6) { alert("密碼長度應該在 6 - 16 位"); return false; } form.submit(); } </script> </head> <body> <form name="form" method="post" action="20155206.php"> Username:<input type="text" name="user"><p> Password:<input type="password" name="pw"><p> <input type="button" value="submit" onclick="check(form)"> </form> </body> </html>
、 測試一哈新的前端
、 (1)什麽都不輸入
技術分享圖片
、 (2)輸入1位口令
技術分享圖片
、 no problem

Web後端,MySQL基礎

/etc/init.d/mysql start啟動mysql
、 輸入mysql -u root -p,並根據提示輸入密碼,默認密碼為p@ssw0rd進入MySQL
技術分享圖片
、 初始密碼太麻煩,改一下
輸入use mysql;,選擇mysql數據庫
輸入select user, password, host from user;,mysql庫中的user表中存儲著用戶名、密碼與權限
輸入UPDATE user SET password=PASSWORD("新密碼") WHERE user=‘root‘;
輸入flush privileges;,更新權限
輸入quit退出
、想了一個簡單的密碼123456
、 重新輸入mysql -u root –p,檢測新密碼能否成功使用,能成功登錄即可。
技術分享圖片
、 創建一個數據庫TestLogin:CREATE SCHEMA TestLogin;

、 輸入use TestLogin選擇所創建的數據庫

、 創建一個數據庫表
create tableusers(useridint not null comment ‘‘,usernamevarchar(45) null comment ‘‘,passwordvarchar(256) null comment ‘‘,enabledvarchar(5) null comment ‘‘, primary key (userid) comment ‘‘);
技術分享圖片

、 使用insert into users(userid,username,password,enabled) values( 1,‘20155206‘,password("20155206"),"TRUE");添加信息
技術分享圖片
、 可以使用select * from users查詢
技術分享圖片
、 對20155206.php進行改編,連接數據庫,首先改下php代碼
`<?php
$user=($_POST["user"]);

$psw=($_POST["pw"]);

if($user==""||$psw=="")
{
echo""
}
else
{
$link=mysqli_connect(“127.0.0.1:5206”,“root”,“123456”,“TestLogin”);
mysqli_select_db($link,"TestLogin");
mysqli_query($link,‘setname utf8‘);
$sql="select username,password from users where username=‘$_POST[user]‘ and password=password(‘$psw‘) ";
$result=mysqli_query($link,$sql);
$row=mysqli_fetch_array($result);
if($num=mysqli_num_rows($result))
{
echo "welcome ";
echo $user;
}
else
{
echo"";
}
}
?>![](https://images2018.cnblogs.com/blog/1072276/201805/1072276-20180521231930343-1691316143.png) 、 再次進入201155206.html登錄,輸入賬號密碼,全為20155206`
技術分享圖片
????很明顯出問題了
、 根據同學建議,用windows做之後的實驗
、 先把windows下該做的截圖貼上來
技術分享圖片
技術分享圖片
、 上圖是輸對的截圖
技術分享圖片
、 上圖是輸入數據庫中沒有的數據後出現的提示

最簡單的SQL註入,XSS攻擊測試

SQL註入

、 後臺語句:SELECT username,password FROM users WHERE username=‘‘ and password=(‘‘)要被變為select username,password from users where username=‘‘ or 1=1#‘ and password=(‘‘),在用戶名框中輸入‘or 1=1#,密碼隨便,可以看到登陸成功
技術分享圖片

xss攻擊

、原理:攻擊者利用網站漏洞(通常這些漏洞是指網站後臺處理程序沒有很好的對用戶輸入進行過濾),輸入可以顯示在頁面上的、對其他用戶造成影響的HTML代碼;由於受害者瀏覽器對目標服務器的信任,當其訪問目標服務器上被註入惡意腳本的頁面後,這段惡意腳本可以順利執行,實現獲取用戶cookie並可以利用用戶身份進行非法操作的目的。
、 在用戶名輸入框中輸入<img src="5226gakki.jpg"/>讀取圖片,圖片和網頁代碼在同一文件夾下
技術分享圖片

20155206 Exp8 WEB基礎實踐