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組織推薦的處理可擴展標志語言的標準編程接口。
- 編寫驗證用戶名和密碼的規則:(例如用戶名和密碼不能為空)
PHP測試
PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,現在被很多的網站編程人員廣泛的運用。
簡單的php測試代碼:
- 打開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)
- 向表中添加內容:
- use 剛剛建立的庫表的表名
insert into users(userid,username,password,enabled) values(1,'用戶id',password("用戶密碼"),"TRUE");
再次show查看信息就可以看到新建表:
php+mysql編寫網頁
- 網頁的登錄頁面:
- 實現與數據庫鏈接的php頁面:
輸入登錄信息,登錄成功:
輸入登錄信息,登錄失敗:
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基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenStack开发学习笔记01
- 下一篇: ToastUtil【简单的Toast封装