2018-2019-2 20165325《网络攻防技术》Exp 8 Web基础
2018-2019-2 20165325《网络攻防技术》Exp 8 Web基础
实验内容
Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML
Web前端javascipt
理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则
Web后端_MySQL基础
正常安装、启动MySQL,建库、创建用户、修改密码、建表
Web后端
编写PHP网页,连接数据库,进行用户认证
最简单的SQL注入,XSS攻击测试
功能描述:用户能登陆,登陆用户名密码保存在数据库中,登陆成功显示欢迎页面
实验步骤
前端
输入service apache2 start
(默认情况下kali里面有apache)
启动之后打开浏览器,输入网址127.0.0.1可以看到apache的默认界面,如图所示:
关闭:service apache2 stop
,如图所示:
进入cd /var/www/html
进入Apache目录下,新建form.html
代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>表单</title>
</head>
<body>
<center>
<form name="myform" method="post" action="login">
<label>
<input type="text" name="username" required placeholder="用户名">
</label>
<label>
<input type="password" name="password" required placeholder="密码">
</label>
<br><br>
<input type="submit" value="登 录" onclick="return beforeSubmit()">
</form>
</center>
<script type="text/javascript">
function beforeSubmit()
{
if(document.myform.username.value=="")
{
alert("请输入正确的用户名");
return false;
}
if(document.myform.password.value=="")
{
alert("请输入正确的密码");
return false;
}
return true;
}
</script>
</body>
</html>
效果如下:
不输入用户名:
不输入密码:
MySQL
输入:/etc/init.d/mysql start
进入mysql:mysql -u root -p
修改密码:先use mysql;
,再UPDATE user SET password=PASSWORD("root") WHERE user='root';
建库:create database newdb;
建表:create table users(uname VARCHAR(20),password VARCHAR(20)) ;
查看表信息:show tables;
插入数据:insert into users values('testnew','testnew');
查询表中的数据:select * from users;
Web后端
首先测试一下php能不能使用,编写test.php代码如下:
<?php
echo ($_GET["a"]);
include($_GET["a"]);
echo "This is my php test page!<br>";
?>
输入网址,如图所示:
这证明,虚拟机里面的php是正常工作的。
编写login.php:
<?php
$username=$_POST["username"];
$password=$_POST["password"];
$query_str="SELECT * FROM users where uname='$username' and password='$password';";
$mysqli = new mysqli("127.0.0.1", "ldj", "5325", "newdb");
$query_str1="use newdb;";
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
/* Select queries return a resultset */
if (!($result = $mysqli->query($query_str1)))
echo"<br>Success into database!";
if ($result = $mysqli->query($query_str)) {
if ($result->num_rows > 0 ){
echo "<br> {$username},Welcome login! <br> ";
}
else {
echo "<br> login failed!!!! <br> " ; }
/* free result set */
$result->close();
}
$mysqli->close();
?>
记得修改之前的表单,form处添加action=login.php,运行效果如图:
SQL注入,XSS攻击
SQL注入如图所示:
结果如图所示:
XSS攻击如图所示:
结果如图所示:
回答问题
什么是表单
就是form,提交给后台的一张表。里面有各种信息,后台可读取。
浏览器可以解析运行什么语言
支持HTML、XML、PHP、JavaScript等
WebServer支持哪些动态语言
JavaScript、PHP等脚本语言