其他分享
首页 > 其他分享> > 20175104 李屹哲 exp8 Web基础

20175104 李屹哲 exp8 Web基础

作者:互联网

目录

一、实验步骤

(1)Web前端HTML

(2)Web前端javascip

(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表编写PHP网页,连接数据库,进行用户认证

(4)最简单的SQL注入【永真式攻击、普通sql攻击】

(5)XSS攻击

二、问题回答

三、实验感想

Web前端HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>login</title>
</head>
<body>
<div align="center" style="padding-top: 50px;">
<form action="login" method="post" name="login" >
<table width="740" height="300" >
<tr height="30">
<td colspan="2"></td>
</tr>
<tr height="1">
<td width="40%"></td>
<td width="5%">用户名:</td>
<td><input type="text" value="input your name" name="username" id="username"/></td>
<td width="30%"></td>
</tr>
<tr height="1">
<td width="40%"></td>
<td width="5%">密 码:</td>
<td><input type="password" value="" name="password" id="password"/></td>
<td width="30%"></td>
</tr>
<tr height="1">
<td width="40%"></td>
<td width="5%"><input type="submit" value="登录"/></td>
<td align="center"><input type="button" name="close" value="关闭" οnclick="window.close();" /></td>
<td width="30%"></td>
</tr>
</table>
</form>
</div>
</body>
</html>

Web前端javascip

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>login</title>
<script type="text/javascript">
    function resetValue(){
        document.getElementById("username").value="";
        document.getElementById("password").value="";
    }
</script>

</head>
<body>
    <div align="center" style="padding-top: 50px;">
        <form action="login5104.php" method="POST" name="login" >//这里一定要注意POST要大写,一开始没注意,后面和php链接会出问题
        <table  width="740" height="300"  >

                <td colspan="2"></td>
            </tr>
            <tr height="1">
                <td width="40%"></td>
                <td width="5%">用户名:</td>
                <td><input type="text" value="inpu your name" name="userName" id="username"/></td>
                <td width="30%"></td>
            </tr>
            <tr height="1">
                <td width="40%"></td>
                <td width="5%">密  码:</td>
                <td><input type="password" value="" name="password" id="password"/></td>
                <td width="30%"></td>
            </tr>
            <tr height="1">
                <td width="40%"></td>
                <td width="5%"><input type="submit" name="login" value="登录"onClick="return Login()" /></td>
                <td align="center"><td align="center"><input type="button" name="close" value="关闭" οnclick="window.close();" /></td></td>
                <td width="30%"></td>
            </tr>
            
            
        </table>
        </form>
    </div>


    <script language="javascript">
    function Login(){
        var Name = document.login.userName.value ;
        var Pwd = document.login.password.value ;
        if ((Name =="") ){
            alert("用户名为空!");
            return false ;
        }
       if ((Pwd=="")){
            alert("密码为空!");
            return false ;
        }
    }
</script>
</body>
</html>

返回顶部

Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表、建表编写PHP网页,连接数据库,进行用户认证

- 输入use mysql;//选择mysql数据库
- UPDATE mysql.user SET authentication_string = 20175104, plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';//更改密码,但我这里不知道为什么修改了密码之后不会保存所以索性不想改了,就默认为空吧

REATE TABLE `5104` (

-> `id` int(8) NOT NULL AUTO_INCREMENT,
-> `userName` varchar(30) DEFAULT NULL,
-> `password` varchar(20) DEFAULT NULL,
-> PRIMARY KEY (`id`));

insert into `5104`(`id`,`username`,`password`) values (04,'20175104','llyyzz');

<?php
  echo ($_GET["a"]);
  include($_GET["a"]);
  echo "175104<br>";
?>

<?php
$uname=($_POST["username"]);
$pwd=($_POST["password"]);
$query_str="SELECT * FROM lyz where username='{$uname}' and password='{$pwd}';";
$mysqli = new mysqli("127.0.0.1", "root", "", "mysql");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: \n");
}

if ($result1= $mysqli->multi_query($query_str))
echo "来了 <br> ";
$mysqli->close();
$mysqli = new mysqli("127.0.0.1", "root", "", "mysql");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: \n");
exit();
}
echo "connection ok!";
/* Select queries return a resultset */
if ($result = $mysqli->query($query_str)) {
if ($result->num_rows > 0 ){
echo "<br> 欢迎:{$uname}<br> ";
} else {
echo "<br> 登入失败 <br> " ;
}
/* free result set */
$result->close();
}
$mysqli->close();
?>

 

返回顶部

最简单的SQL注入【永真式攻击、普通sql攻击】

 

 

  • 注意:在数据库中可以直接插入一个伪造的用户名,密码,下次就可以用伪造的用户名密码登录网站了,但是得修改一下之前的代码,因为我们之前的login5104.php中if ($result = $mysqli->query($query_str))这条判断语句不允许多条sql语句执行,所以将它改成 if ($result = $mysqli->multi_query($query_str)) 便能实现执行多个sql语句,这里也算是血的教训,执行了半天语句不知道为啥出错,感觉心态爆炸。后来看到学长博客,解决了这个问题。

 

返回顶部

XSS攻击

<?php   
    $input = $_GET["param"];
    echo "<div>".$input."</div>"
?>

返回顶部

什么是表单

表单在网页中主要负责数据采集功能。
一个表单有三个基本组成部分:
表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

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

可以运行的有:超文本标记语言(HTML);可扩展标记语言(XML);脚本语言(ASP、PHP、Script、JavaScript、VBScript、Perl、Python等)

WebServer支持哪些动态语言

web server支持 JavaScript、ASP、PHP、Ruby等脚本语言,ASP基于IIS WEB SERVER,是微软的服务器端脚本技术,PHP基于APACHE WEB SERVER,与ASP有几分类似,都是一种在服务器端执行的嵌入HTML文档的脚本语言。

返回顶部

实验感想

本次实验并不是很复杂,但由于之前javaweb没学好,导致如今吞了苦果,调整一个个莫名其妙的bug,感觉自己简直不是被实验难住的,是被自己难住的。不过在写完网页代码后感觉对整体的为什么会收到XSS和sql攻击也就更加明确了;整体来说本次实验这也是对之前学的很多科目的一个总结吧。
返回顶部

 

标签:exp8,李屹哲,20175104,密码,用户名,query,mysql,mysqli,输入
来源: https://www.cnblogs.com/20175104lyz/p/12840771.html