网站模板的修改,如何做收机微网站,不用vip也能看的黄台的app,猫代理前置知识
这个php特性可以很好的练习我们的白盒简单代码的审计能力
web89
preg_match 正则匹配函数 #xff08;绕过 #xff1a; 换行符绕过 #xff08;也可以利用他的数组返回数字进行绕过一下禁止字符的情况#xff09;#xff09;
include(flag.php绕过 换行符绕过 也可以利用他的数组返回数字进行绕过一下禁止字符的情况
include(flag.php); 文件包含
isset($_GET[num]看一下 我们是否给 get传参数
下边这个是正则匹配 我们的 $num是不能有 数字的
最后是取整函数 intval($)
这个的绕过就是我们先进入第一个逻辑
?num
再绕第二个逻辑 不能有数字 那就只能使用数组 ?num[]1 数组绕第一个逻辑的同时 也绕过了第二个逻辑 intval遇见数组等于 1 会直接取
web90 考点 intval的绕过 这个也是考我们冲突逻辑 我们的输入 num 既不能等于 4476 还必须等于 4476 来获取flag
解决 1、后缀字符 ?num4476a
2、浮点数绕过 ?num4476.1 当然还有个隐藏玩法就是 这个是不会 自动转字符 所以我们就是可以使用字符串 来伪装绕过第一次逻辑验证
正好intval 会把我们的拼接数字转为数字
web91 从第三行开始
把我们传入的内容赋值给 $a 如果a 有 php 就会进入逻辑 逻辑内是a内不能有php才会显示 flag 这个就是考察 pre的绕过 把php换行就可绕过 ?cmd111%0aphp
首先换行会让其识别到php 进入逻辑 同时 第二个没有m换行之后还会匹配会造成 pre只筛选一行 就会导致这个绕过
web92 审计 新加逻辑 我们的输入 不能等于 4476 的同时还需要等于4476
这个就是简单的
intval($num,0) 这个0表示十进制
其实不写 0 也会自动转换为10进制
八进制绕过 010574 八进制得出的结果是 10574 但是 这样会让其分不清是几进制 所以加个 0 表进制
web93 逻辑 需要我们的num 跳过上两个逻辑 8进制绕过 010574 绕过了第一个逻辑 第二个
或者是浮点数绕过 web94 strpos(目标‘要搜寻的东西’) 搜寻函数 如果我们的num没有0就会GG
绕过
2、 浮点数也可以绕过 4476.01 只需要添加一个 0 供其匹配就行看错了这个是过滤了一个 .
web95 web96 拿到直接 区解码出来了
web97
从这个题开始 这里的代码审计就会变得难很多了
这个的逻辑是这两个数是不相等 但是MD5的值是相等的
使用数组不能被MD5的特点 ?a[]1?b[]2
web98
10、如果 get是设置的 就让 getpost 否则自定义为 flag get !flag ?flag !falg 我们无法设置 cookie和session 所以需要跳过 $_GET $_POST 表示如果为假的就 让post的值等于 get