CTF
文章平均质量分 71
CTF
魏大橙
努力不一定被看见,但休息一定会被看见。
展开
-
PHP黑魔法之既是0又是1/switch/$a==0可用.绕过(非数字都可绕过)/PHP://伪协议绕过
php在处理数字时,如果数字的位数超过 16 位是可以弱等于1的,也就是因为当数字位数超过 16 位时,是将该数字转换成了数值为 1 的字符串进行处理在科学计数法中也有种特殊情况,0.1e1 是代表 0.1*10,而 .1e1 代表的也是 0.1*10 ,但在数组中时,由于 . 代表的是字符串,所以会于数组中变成 0 ,于 is_numeric 中有点则正常输出为数字。原创 2024-05-16 00:04:19 · 424 阅读 · 0 评论 -
PHP黑魔法之intval绕过
当 op 字符串长度大于 1 时或者长度等于 1 且这个字符不是 0 时,条件判断为真由此可以得出:空字符、"0" 和 0 作为条件判断时都等同于 false。原创 2024-05-15 00:34:11 · 346 阅读 · 0 评论 -
PHP黑魔法之strcmp与is_numeric绕过
当输入的两个值为不是字符串时就会产生不预期的返回值strcmp()在比较字符串和数组的时候直接返回 0我们可以传入字符串和数组返回 0 来达到一些目的。原创 2024-05-14 23:35:14 · 558 阅读 · 0 评论 -
PHP黑魔法之md5绕过
示例:240610708和ONKCDZ0的md5值相似,但并不相同,在"=="相等操作符的运算下,结果会返回true(sha1和Md5一样)在两种情况下,会导致变量原值不同但 md5 或 sha1 相同。原创 2024-05-14 22:27:49 · 314 阅读 · 0 评论 -
PHP代码审计(反序列化)
在传递变量的过程中主要作用是保存一个对象方便以后重用。php有可能遇到变量值要跨脚本文件传递的过程。试想,如果为一个脚本中想要调用之前一个脚本的变量但是前一个脚本已经执行完毕,所有的变量和内容释放掉了,我们要如何操作呢?让前一个脚本不断的循环,等待后面脚本调用。这肯定是不现实的。serialize和unserialize就是用来解决这一问题的。serialize可以将变量转换为字符串并且在转换中可以保存当前变量的值;unserialize则可以将serialize生成的字符串变换回变量。原创 2024-05-13 22:58:38 · 1051 阅读 · 1 评论