基础知识点
记录一些平时会用到的知识点,想起碰到多少记多少吧,平时回顾回顾。
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网址中存在特定关键字的网页。