2017-2018-2 20155225《网络对抗技术》实验八 Web基础
1、Web前端HTML
输入命令apachectl start打开apahce,并使用netstat -aptn查看端口号,确认apache启动成功,如图所示,监听端口是80:
在浏览器里输入http://127.0.0.1,可以访问到Apache默认页面,证明Apache可以正常工作。
.测试:apache可读取工作目录下的文件
在/var/www/html/目录下,写一个测试的txt文档,在浏览器里打开127.0.0.1/test.txt,可看到test.txt的内容,如图:
写一个有表单提交的网页:
在/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>
用浏览器打开效果如下:
再给它增加一个彩色的css:
<head>
<meta charset="utf-8">
<style>
body
{
background-color:#d0e4fe;
}
input
{
color:orange;
text-align:center;
}
</style>
</head>
效果如图:
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位会提示:
3、web后端,php
在/var/www/html/目录下,写一个test.php,进行测试:
<?php
echo "我的第一段 PHP 脚本!";
?>
尝试写了一个php,接受前端传过来的用户名,并打印出来:
<html>
<body>
Welcome <?php echo $_POST["un"]; ?><br>
</body>
</html>
成功跳转到php,如图所示:
4、web后端,mysql
开启MySQL服务,使用root权限进入,默认的密码是password
使用create database user;新建user数据库,并用show databases;查看数据库
使用use user;命令使用user数据库,同时,使用create table login (字段设定列表);建立数据库表,并设置字段基本信息:
使用insert into login values('201155225','jzy123');插入数据:
grant select on user.login to river@localhost identified by "1";将对user.login进行查询的权限赋给本机登录的River用户。
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();
?>
登录成功!
6、SQL注入和XSS攻击
- sql注入:
后台sql语句为SELECT * FROM login where username='$uname' and password='$pwd';
如果输入用户名时,输入为20155225'#,那后面口令就被注释掉了。
- xss攻击:
在用户名输入框输入 < img src="20155225.jpg" />
,对应到php中,就是echo < img src="20155225.jpg" />
,然后既可以查看到图片了。
开始尝试的时候,攻击成功了,但图片一直加载不出来,后来给图片加上权限就可以了。
实验问题回答
1.什么是表单
表单可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。
一个表单有三个基本组成部分: 表单标签
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等
表单按钮:包括提交按钮、复位按钮和一般按钮.
2.浏览器可以解析运行什么语言
超文本标记语言:HTML
可扩展标记语言:XML
脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等
3.WebServer支持哪些动态语言
比较常用的有PHP语言和JSP语言。
实验总结与体会
第一次接触了SQL注入、XSS注入攻击,这些注入非常巧妙,简直防不胜防,所以web安全有非常广阔的探索空间,进一步学习web安全,要更加努力了!