基础知识点

学习

Posted by lll-yz on March 18, 2021

基础知识点

记录一些平时会用到的知识点,想起碰到多少记多少吧,平时回顾回顾。

PHP语言中,会将反引号(``)之间的内容当作shell执行。

常见的字符URL编码

URL编码值 字符
%20 空格
%22
%27
%23 #
%25 %
%26 &
%28 (
%29 )
%2B +
%2C ,
%2F /
%3A :
%3B ;
%3C <
%3D =
%3E >
%3F ?
%4o @
%5C /
%7C I

对md5()特性利用:

if (md5($id) === md5($gg) && $id !== $gg)

$id !== $gg,这个条件中的”!”表示”不全等”(值相同但类型不同),这时候我们需要利用md5函数本身的特性,传递两个值不同但无法用来比较的数据类型,这里可以通过数组也就是gg[]和id[]来绕过,于是我们通过get提交?gg[]=1&id[]=2来绕过。

md5加密可以对明文进行处理,产生一个128位(16字节)的散列值,为了便于展示和读写一般将128位的二进制数转换为32位的16进制数。

如:655A6E9A375DF4F82B730833C807AADD。通常用在密码存储和文件的完整性校验上。

常规的0e绕过:

  • QNKCDZO
  • 240610708
  • s878926199a
  • s155964671a
  • s214587387a
  • s214587387a
这些字符串的 md5 值都是 0e 开头,在 php 弱类型比较中判断为相等。   弱类型(==)

这些字符md5编码后都是0e开头,在php中0e会被当做科学计数法,就算后面有字母,其结果也是0,所以上面的if判断结果使true,成功绕过!

$a==md5($a):

0e215962017 的 MD5 值也是由 0e 开头,在 PHP 弱类型比较中相等

PHP中的函数:

intval(): 进制转化,默认为十进制。

trim() : 移除字符串两侧的字符。(空白符或其他预定义字符)

parse_str(): 讲字符串解析成多个变量。

搜索引擎的搜索技巧:

site:搜索指定域名的网页内容,用来搜索子域名、跟此域名相关的内容。

site:baidu.com		//搜索与baidu.com相关的网页。
site:baidu.com "web安全"	//搜索baidu.com跟web安全相关的网页

filetype:搜索指定文件类型。

"web安全" filetype:pdf  	//搜索跟web安全书籍相关的pdf文件

intitle:返回网页标题中包含关键词的网页。

intext:返回网页正文部分包含关键词的网页。

inurl:搜索url网址中存在特定关键字的网页。

cwMlOH.png