web(一):PHP,数据库和注入
PHP
PHP语言基础(入门)
与C语言略微有些相近,学过C语言,更容易理解
PHP变量规则:
- 变量以$符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9以及_)
- 变量名称对大小写敏感($Y和$y是不同的变量)
PHP其他知识点:
1.echo是输出语句(相当于C语言中printf)
2.array()函数用于创建数组
3.while()条件判断语句
4.URL(同意资源定位符):
1).作用:提供资源(通常是文档)的路径或位置
2).结构:协议://授权/路径?查询
3).例子:http://www.cobranet.org/about.php?id=1
5.给服务器发送请求操作:
1).GET请求:从服务器查询数据,从链接地址发送请求
2).POST请求:从服务器传递数据,通过Form传递
数据库简述:
1.命令简述:
创建一个数据库,命名为mysql:mysql>create database mysql;
查看数据库:mysql>show databases;
删除名为mysql的数据库:mysql>drop database mysql;
选择一个数据库进入:mysql>use mysql;
创建表名为users的数据表,字段分别为id(int),username(varchar(20)),password(varchar(50)),id自增:mysql>create table users(id int auto_increment,username varchar(20),password varchar(50));
查看当前数据库所有数据表:mysql>show tables;
修改表名users为bbb:mysql>alter table users rename to bbb;
插入数据:mysql>insert into users (username,password) values(“zz”,”zz_is_handsome”);
查询数据:
mysql>select id,password from users where username=“zz”;
注入:
以下是sql注入测试页面(要保存在phpstudy根目录的www文件夹下):
打开网页,进入注入链接(由于我是GET请求,只需在网址发送请求即可)Firefox可以下载Hackbar插件,使用hackbar编辑请求:
因为id是int型,可以用order by来检测字段,只要成功链接说明测试字段数小于等于实际字段数,测试后得出字段为6:
使用union select1,2,3,4,5,6获取可显示的部分(由下图可知是2,4,5,6),挑一处使用即可,并且由于是联合查找命令,可将id=1改为id=-1,让前部分不输出:
用database()函数代替可视数字部分,可找出库名(mdxzz)
之后使用图中所示指令可得到表名user
之后使用图中所示指令可得到所有字段id,username,password,sex,age,point
字段中有我们要找的password,输入下图指令:
得到password: mdXzz_is_handsome,mdzz_is_beautiful,mdzz2_is_goodboy