20145217《网络对抗》web基础
一、问题
- 1.什么是表单?
表单:可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁。 表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另一部分是脚本或应用程序用于处理提交的信息(如CGI脚本)。不使用处理脚本就不能搜集表单数据。
- 2.浏览器解析语言?
超文本标记语言:HTML
可扩展标记语言:XML
脚本语言:ASP、PHP、Script、JavaScriptJava、JSP
- 3.WebServer支持哪些动态语言?
ASP、PHP、JSP
二、进行实验
1.做一个简单的登陆网站
- 1.更改监听端口号,打开apahce,并查看端口号,确认apache正确开启,如下图所示:
-
2.编写一个简单的html,并用浏览器打开查看效果,好丑呀
jokebright user: password: auto
- 未输入密码:
- 正确输入并提交显示:
- 3.编写一个简单的php,并用浏览器打开查看效果
- 4.打开mysql,初始密码为p@ssw0rd,并查看已经有的数据库
- 5.修改密码,mysql连自己的用户名密码都用数据库来存着?看来数据库是从里到外
- 6.新建数据库create database或者schema都行,后面直接跟名称,愿意用`符号包裹也成
- 7.新建表单,包括表单名元素等等,并输入几组数据以供后续实验
- 8.html可以采取拿来主义,老师提供的php内容主要以下几个方面需要注意,一是表单名要改,二是ip要改,三是登陆mysql的用户名密码要改,四是数据库名要改。
- 9.登陆网站查看效果,输入用户名密码后跳转,用户名密码正确时成功,不正确失败
- 跳转界面丑可以再拿来一个,至此网站就准备好了
2.SQL注入
- 1.使用上课讲到的例子' or 1=1#永真式来注入,成功,这是因为注入后的查询SQL语句是:SELECT * FROM users where username='' or 1=1#' and password=password('');构成了恒成立的条件
- 2.同样的思路也可以通过sql注入保存用户名密码到数据库:';insert into users(userid,username,password,enabled) values(17,'zzz',password("aaa"),"TRUE");#,但是页面跳转是空白页,以本代码会使if ($result = $mysqli->query($query_str))成立不了,对代码进行如下修改
- 再次输入输入后跳转到这样一个界面
- 为了查看注入是否成功,直接搜出来看下user这张表,显然成功了
- 用注入的用户名密码登陆下,发现虽然代码修改使注入,但是也使得输入用户名密码后新的条件成立不了,对代码再次修改
- 3.修改后进行注入实验成功
3.XSS攻击
- 1.1.输入haha先进行简单的测试
- 跳转到这张图片