今天看啥  ›  专栏  ›  船山信安

PHP 审计中的一些小操作

船山信安  · 公众号  ·  · 2024-07-23 00:00
    

文章预览

前言 最近在学习中学到了不少审计时的小技巧,都比较简单,但有一些在代码中比较容易出现的错误,这里做了一下总结分享,有错误希望师傅们斧正,一起交流学习。 for 循环中的 count 这个小技巧是从这里看到的:关于CMSMS中SQL注入漏洞的复现与分析与利用 当  count  出现在  for  循环中, count  每次都会计算,如果这时候数组发生了变化,就会有一些差异。 例子: $a = array("a","b","c"); for ($i=0; $i < count($a); $i++) { if(intval($a[$i]) < 1){ unset($a[$i]); } } var_dump($a); 分析 这里原本的目的是将数组中不是数字的值都删掉,我们来分析一下流程: 首先取值  count($a) ,此时为  3 循环第一次, $i=0 ,判断  $a[0]  是否小于  1 ,返回  True , unset  掉,此时  $a  为  ["b","c"] 循环第二次, $i=1 ,执行  count($a) ,此时为  2 ,因为  1 < 2 ,进入循环, ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览