sql-labs 2关

1.先判断闭合符号

image-20220322184201955

2.再来判断一下类型

image-20220322184130610

image-20220322184101493

可知这是整型。所以就不用再添加闭合符号了。

3.然后在判断列数

image-20220322184337046

image-20220322184358415

image-20220322184410037

image-20220322184428351

与第一关情况相同。

4.爆数据库

image-20220322191126573

5.爆数据表/查询表名

image-20220322185051451

6.爆字段/查询列名

image-20220322192105122

7.爆值/查询数据

image-20220322185158410

sql-labs 1关

image-20220322175551909

1.先判断闭合符号,单引号报错 http://45.32.113.109:11650/Less-1/?id=1'

在后面加上–+试一下http://45.32.113.109:11650/Less-1/?id=1'--+

image-20220322180024702

2.判断一下注入类型http://45.32.113.109:11650/Less-1/?id=1 and 1=1

http://45.32.113.109:11650/Less-1/?id=1 and 1=2

看页面回显位的反馈,如果一致,则是字符注入,否则是数字注入。

image-20220322180340433

image-20220322180427825

都显示正确,为字符注入

3.判断列数

image-20220322180825723

image-20220322180859130

image-20220322180928019

image-20220322181000638

从1到3试了都正确,但大于3后就超出该数据库列的个数,列的个数为3

4.爆数据库

image-20220322181512472

5.爆数据表/查询表名

image-20220322181711810

image-20220322182721940

6.爆字段/查询列名

image-20220322182042257

image-20220322182932858

7.爆值/查询数据

image-20220322182226222

PHP访问MySQL数据库的流程

第一步:连结MySQL服务器

​ 使用 mysql_connect() 函数建立与MySQL服务器的连接

第二步:选择MySQL数据库

​ 使用 mysql_select_db() 函数选择MySQL数据库服务器上的数据库,并与数据库建立连接

第三步:执行SQL语句

​ 在选择的数据库中使用mysql_query() 函数执行SQL语句。

对数据的操作方式主要包括四种方式:

查询数据:使用select语句实现数据的查询功能

插入数据:使用insert into语句向数据库中插入数据

更新数据:使用update语句修改数据库中的记录

删除数据:使用delete语句删除数据库中的记录

PHP文件访问函数:读取文件

读取文件常用函数

fread() :读取整个文件或文件中指定长度的字符串,可用于二进制文件读取

fgets() :读取文件中的一行字符

fgetss() :读取文件中的一行字符并去掉所有HTML和PHP标记

fgetc() :读取文件中的一个字符

file_get_contents() :将文件读入字符串

file() :把文件读入到一个数组中

readfile() :读取一个文件,并输出到输出缓冲

PHP文件操作函数:操作文件

函数 语法 说明
copy() copy(源文件,目的文件) 复制文件
unlink() unlink(目标文件) 删除文件
rename() rename(旧文件名,新文件名) 重命名文件或目录,或移动文件
ftruncate() ftruncate(目标文件资源,截取长度) 将文件截断到指定长度
file_exists() file_exists(目标文件名) 判断文件或文件夹是否存在
is_file() is_file(文件名) 判断指定的路径存在且为文件
realpath() realpath(文件名) 返回文件的物理路径
pathinfo() pathinfo(文件名) 以数组形式返回文件的路径和文件名信息

PHP目录的基本操作:操作目录

函数 说明 示例
mkdir(pathname) 新建一个指定的目录 mkdir(‘temp’)
rmdir(dirname) 删除目录,该目录必须为空 rmdir(‘data’)
getcwd(void) 取得当前文件所在的目录 echo getcwd();
chdir(dirname) 改变当前目录 chdir(‘../‘);
opendir(path) 打开目录,返回目录的指针 $dirh=opendir(‘temp’);
closedir() 关闭目录,参数为目录指针 closedir($dirh);
readdir() 遍历目录 $file=readdir($dirh);
scandir(psth,sort) 以数组形式遍历目录,sort参数可设置升序或降序排列 $arr=acandir(‘D:\ICQ’,1);

Session概述

什么是Session?

Session译为“会话”,其本意是指有始有终的一系列动作/消息

Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间

因此Session实际上是一个特定的时间概念,Session默认的生命周期为20分钟

Session的作用

Session可以用于身份认证,程序状态记录,页面之间的参数传递等

因为HTTP协议无状态,为了在服务器保持客户端的状态,就需要使用Session

总结Cookie和Session的异同点

异同点 Cookie Session
相同 能够保存用户信息的区别 同Cookie
存储位置 存放在客户端浏览器 存放在服务器
保留时间 设定有效保存期限 关闭浏览器后自动作废
不同点 存储容量 每个浏览器只能保存某个Web服务器的最多20个Cookie且大小不超过4KB 可以创建多个但是过多会影响服务器性能
是否被禁用 用户设置是否开启Cookie 不会被禁用,因为内容保存在服务器端
隐私策略 对客户端可见,不安全 存储在服务器,较安全
跨域支持 支持跨域名访问 不支持跨域名访问

Cookie注意事项

1.SetCookie()之前不能有任何html输出,空格,空白行都不行

2.SetCookie()之后,在当前页调用echo $_COOKIE[“name”]不会有输出,必须刷新或到下一个页面才可以看到Cookie值

3.使用Cookie的限制,一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个

4.Cookie是保存在客户端的,如果用户禁用了Cookie,那么Cookie也就失效了

5.Cookie的生命周期到了,Cookie就会失效

6.设置一个Cookie时失效时间为time()那么在页面浏览完之后就被删除

HTTP会话控制的概述

HTTP协议本身是无状态的

http协议无法记录用户经常上哪些网站,有什么爱好,也无法记录用户的ID账号和密码,这就是无状态

HTTP协议本身是无状态的,客户端只需要简单的向服务器请求下载某些文件,无论是客户端还是服务器都没有必要记录彼此过去的行为,每一次请求之间都是独立的

HTTP协议自身不具备保存之前发送过的请求或相应的功能