2021.10.31学习笔记

1.网站是如何保持会话的

        服务器会给每一个用户(浏览器)创建一个Session对象,一个Session独占一个浏览器,只要浏览器没有关闭,那么Session就一直存在。用户登录之后,整个网站都可以访问–>保存用户的信息。在浏览器打开一个网页就会立刻产生一个Session,并分配SessionID,但产生的Session中并不会存放数据。因为每个Session都对应的是都是一个浏览器,也就是说两个不同的浏览器同时打开一个网站,这个网站的Session不是同一个,SessionID也不一样。

2.md5绕过

        md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的。

        利用==比较漏洞

如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。

下列的字符串的MD5值都是0e开头的:

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

3.sql order by

Order by+列的相对顺序,表示按对应列排序。

如果order by+多个列,表示先按... 再按...排序

4.sql select查询直接跟数字

select直接加数字串时,可以不写后面的表名,那么它输出的内容就是我们select后的数字

5.宽字节注入

我们这里的宽字节注入是利用的MySQL的一个特性,MySQL的在使用GBK编码的时候,会认为两个字符是一个汉字(前一个ASCII码要大于128,才到汉字的范围)。这就是MySQL的的特性,因为GBK是多字节编码,他认为两个字节代表一个汉字,所以%DF和后面的\也就是%5c中变成了一个汉字“运”,而“逃逸了出来。

6.substr字符截断函数

substr函数格式 (俗称:字符截取函数)
  格式1: substr(string string, int a, int b);
  格式2:substr(string string, int a) ;

格式1:

    1、string 需要截取的字符串

    2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)

    3、b 要截取的字符串的长度

格式2:

    1、string 需要截取的字符串

2、a 可以理解为从第a个字符开始截取后面所有的字符串

7.序列化与反序列化

序列化过程是把数据转换为可存储或传输的形式

反序列化过程就是转化成当初的数据对象

file_get_contents — 将整个文件读入一个字符串

8.Strcmp

Strcmp比较的参数类型是字符串类型,但在PHP5.3以后的版本中strcmp()函数在比较字符串类型和数组类型时,返回的结果是0,即认为他们相等

9.sql union查询

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

10.information schema

  select table_name, table_type, engine
  FROM information_schema.tables
  WHERE table_schema = 'test'
  ORDER BY table_name DESC;

table_schema是数据库的名称,table_name是具体的表名

11.substring截取子串函数

1)MySQL SUBSTRING函数:截取字符串

MySQL 中获取子串函数 SUBSTRING(s,n,len) 带有 len 参数的格式,从字符串 s 返回一个长度同 len 字符相同的子字符串,起始于位置 n。也可能对 n 使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的第 n 个字符,即倒数第 n 个字符,而不是字符串的开头位置。n从1开始,即第一个字符对应1而不是0

2)JavaScript

stringObject.substring(start,stop)

返回一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start

  1. mysql盲注需要的函数

database(): 当前数据库名称

system_user():数据库的系统用户

current_user():当前登录的数据库用户

Select table_name, table_type from information_schema.tables where table_schema = mysql

  1. mysql_real_escape_string

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:

  • \x00
  • \n
  • \r
  • \
  • '
  • "
  • \x1a

如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。

  1. php://

php:// — 访问各个输入/输出流(I/O streams)

php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_data 潜在需要更少的内存。 enctype="multipart/form-data" 的时候 php://input 是无效的。

php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。

  1. php类型脚本名

*.php *.php3 *.php4 *.php5 *.php7 *.phps *.phpt *.phpml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值