20154312 曾林 Exp8 web基礎
1.基礎問題回答
1.1.什麽是表單
1.2.瀏覽器可以解析運行什麽語言
1.3.WebServer支持哪些動態語言
2.實踐總結與體會
3.實踐過程記錄
----3.1.Web前端:HTML基礎
----3.2.Web前端:javascipt基礎
----3.3.Web後端:MySQL基礎
----3.4.Web後端:PHP基礎
----3.5.SQL註入
----3.6XSS攻擊測試
1.基礎問題回答
1.1.什麽是表單
1.2.瀏覽器可以解析運行什麽語言
1.3.WebServer支持哪些動態語言
2.實踐總結與體會
3.實踐過程記錄
----3.1.Web前端:HTML基礎
1.使用指令apachectl start
2.使用netstat -tupln |grep 80
指令查看80端口被哪些進程占用,如果有的話,用kill+進程ID
殺死進程
3.cd ..
之後vi /var/www/html/ test.thml
在Apache工作目錄下建立一個含有表單的html文件
4.使用瀏覽器登錄localhost:80
查看
----3.2.Web前端:javascipt基礎
1.使用JavaScript來編寫一個驗證用戶名、密碼的規則,重命名為test-1.html
,其實主要是增加了一段javascript
的代碼,如下:
<script language="javascript">
function validateLogin(){
var sUserName = document.frmLogin.username.value ;
var sPassword = document.frmLogin.password.value ;
if ((sUserName =="") || (sUserName=="Your name")){
alert("Please enter the username!");
return false ;
}
if ((sPassword =="") || (sPassword=="Your password")){
alert("Please enter the password!");
return false ;
}
}
</script>
2.重新登錄localhost:80
之後不填寫用戶名,會有如下提示
----3.3.Web後端:MySQL基礎
0.kali目前使用的是MariaDB
因為mysql
有從開源變為閉源的趨勢,所以創建了MariaDB
這個分支用來規避風險
1.使用/etc/init.d/mysql start
開啟mysql服務,輸入mysql -u root -p
,並根據提示輸入密碼,默認密碼為p@ssw0rd
,進入mysql
2.輸入use mysql
進入mysql數據庫,輸入update user set password=PASSWORD("******") where user=‘root‘;
,修改密碼;輸入flush privileges;
,更新權限
3.使用create database test_db;
建立一個數據庫;使用show databases;
查看存在的數據庫;使用use test_db;
使用我們創建的數據庫
7.用create table test_table (username VARCHAR(20), password VARCHAR(20));
建立數據表,show tables
查看數據表
8.使用insert into 表名 values(‘zenglin‘,‘20154312‘);
插入數據;使用select * from test_table
查詢表中的數據
9.增加一個名為zenglin
的新mysql用戶,使用grant select(insert,update,delete) on test_db.* to zenglin@localhost identified by "*******";
指令進行
----3.4.Web後端:PHP基礎
1.vi /var/www/html test.php
新建一個名為test的php文件,使用一些基礎的語法
2.在瀏覽器窗口使用localhost:80/test.php?a=/etc/passwd
可以看到etc/passwd
文件中的內容
3.使用老師ExpGuide
中的代碼新建一個login_page.php
,進行簡單的用戶認證
4.修改test-1.html
中form
的action
屬性改為login.php
,實現跳轉到login.php
,輸入localhost/test-1.html
進行訪問
5.輸入zenglin
以及20154312
就能順利連接上去,並提示登錄成功
----3.5.SQL註入
1.在用戶名輸入框中輸入‘ or 1=1#
,密碼隨意,這時SQL查詢語句變為select * from test_table where username=‘‘ or 1=1#‘ and password=‘‘
,#
相當於註釋符,會把後面的內容註釋掉,or
後跟著的1=1
永遠為真,所以必然登錄成功
2.使用多條sql語句進行攻擊,將if ($result = $mysqli->query($query_str))
中的query()
改為multi_query
,再在Username
中輸入‘insert into test_table values(‘admin‘,‘123456‘);#
,由於分隔符後的#
把後面的內容註釋掉了,所以執行的其實是insert into lxmtable values(‘admin‘,‘123456‘);
接著登錄就會出現如下頁面
----3.6XSS攻擊測試
20154312 曾林 Exp8 web基礎