2017-2018-2 20155225《网络对抗技术》实验八 Web基础

1、Web前端HTML

输入命令apachectl start打开apahce,并使用netstat -aptn查看端口号,确认apache启动成功,如图所示,监听端口是80:

image

在浏览器里输入http://127.0.0.1,可以访问到Apache默认页面,证明Apache可以正常工作。

image

.测试:apache可读取工作目录下的文件

在/var/www/html/目录下,写一个测试的txt文档,在浏览器里打开127.0.0.1/test.txt,可看到test.txt的内容,如图:

image

写一个有表单提交的网页:

在/var/www/html/目录下,写一个html文件:

<html>
<body>

<form action="/demo/demo_form.asp">
User name:<br>
<input type="text" name="un" value="20155225">
<br>
Password:<br>
<input type="password" name="pw" >
<br><br>
<input type="submit" value="Submit">
</form> 

</body>
</html>

用浏览器打开效果如下:

image

再给它增加一个彩色的css:

	<head>
		<meta charset="utf-8">
		<style>
			body
				{
					background-color:#d0e4fe;
				}
			input
				{
					color:orange;
					text-align:center;
				}
		</style>
	</head>

效果如图:

image

2、web前端,JavaScript

用JavaScript检查一下,用户名密码的位数有没有超过规定值。

	<script>

function inputTest(){

	if (document.getElementById("1").value.length<=8){
		return true
	} else {
       alert("The student number cannot exceed 8!")
	        return false;
	}

}

	</script>

学号不能超过8位,如果超过8位会提示:

image

3、web后端,php

在/var/www/html/目录下,写一个test.php,进行测试:

<?php
echo "我的第一段 PHP 脚本!";
?>  

image

尝试写了一个php,接受前端传过来的用户名,并打印出来:

<html>
<body>

Welcome <?php echo $_POST["un"]; ?><br>

</body>
</html>

成功跳转到php,如图所示:

image

4、web后端,mysql

开启MySQL服务,使用root权限进入,默认的密码是password

image

使用create database user;新建user数据库,并用show databases;查看数据库

image

使用use user;命令使用user数据库,同时,使用create table login (字段设定列表);建立数据库表,并设置字段基本信息:

image

使用insert into login values('201155225','jzy123');插入数据:

image

grant select on user.login to river@localhost identified by "1";将对user.login进行查询的权限赋给本机登录的River用户。

image

5、php+mysql

综合运用php和mysql,实现将前端用户名和口令,传到后端php,在php中连接数据库,进行查询,并返回查询结果。

<?php
$uname=$_POST["un"];
$pwd=$_POST["pw"];
echo "welcome";
 echo $uname;
$query_str="SELECT * FROM login where username='$uname' and password='$pwd';";
$mysqli = new mysqli("127.0.0.1", "river", "1", "user");

/* 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_str)) {
    if ($result->num_rows > 0 ){
            echo "<br> login success! <br> ";
    } 
    else {
        echo "<br> login failed! <br> " ; }
    /* free result set */
    $result->close();
}
$mysqli->close();
?>

登录成功!

image

6、SQL注入和XSS攻击

  1. sql注入:

后台sql语句为SELECT * FROM login where username='$uname' and password='$pwd';

如果输入用户名时,输入为20155225'#,那后面口令就被注释掉了。

image

  1. xss攻击:

在用户名输入框输入 < img src="20155225.jpg" />,对应到php中,就是echo < img src="20155225.jpg" /> ,然后既可以查看到图片了。

开始尝试的时候,攻击成功了,但图片一直加载不出来,后来给图片加上权限就可以了。

image

实验问题回答

1.什么是表单

表单可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。

一个表单有三个基本组成部分: 表单标签

表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等

表单按钮:包括提交按钮、复位按钮和一般按钮.

2.浏览器可以解析运行什么语言

超文本标记语言:HTML

可扩展标记语言:XML

脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等

3.WebServer支持哪些动态语言

比较常用的有PHP语言和JSP语言。

实验总结与体会

第一次接触了SQL注入、XSS注入攻击,这些注入非常巧妙,简直防不胜防,所以web安全有非常广阔的探索空间,进一步学习web安全,要更加努力了!

posted on 2018-05-21 22:10  20155225江智宇  阅读(185)  评论(0编辑  收藏  举报