ctf常用函数及其绕过

1.QUERY_STRING

用法: $_SERVER['QUERY_STRING'] 获取查询语句,实例中可知,获取的是?后面的值

绕过: 不会进行urldecode,$_GET[]会,用url编码绕过

2.preg_match

用法:preg_match — 执行匹配正则表达式

例子:preg_match('/^$/')用换行符%0a绕过

3.$_REQUEST

用法:接受GET和POST参数

绕过:POST优先级高

4.file_get_contents

用法:将一整个文件读入到一个字符串中

绕过:用data伪协议绕过

例子:

if (file_get_contents($file) !== 'debu_debu_aqua')

  die("Aqua is the cutest five-year-old child in the world! Isn't it ?<br>");

绕过姿势:data://text/plain,debu_debu_aqua

5.sha1

用法:计算散列值

绕过:无法处理数组 

6.addslashes

用法:在每个双引号(")前添加反斜杠

绕过:

a.字符编码问题导致绕过

  -设置数据库字符为gbk导致宽字节注入

  -使用icon,mb_convert_encoding转换字符编码函数导致宽字节注入

b.编码解码导致的绕过

  -url解码导致绕过addslashes

  -base64解码导致绕过addslashes

  -json编码导致绕过addslashes

c.一些特殊情况导致绕过

  -没有使用引号保护字符串,直接无视addslashes

  -使用了stripslashes

  -字符替换导致的绕过addslashes

 7.parse_url

用法:解析 URL,返回其组成部分

绕过://user.php?page=php://filter/convert.base64-encode/resource=ffffllllaaaaggg

多了一个/

 

posted @ 2021-05-26 20:03  中毒219  阅读(1041)  评论(0编辑  收藏  举报