• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

rips中如何使用PHP虚拟机自带函数--token_get_all

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

这两天在看rips源码,发现,它在审计php代码时调用了php虚拟机自带的token_get_all此函数。

这一函数会将php源码按照内置的规则进行归纳,并输出成数组格式。

如:

<?php


$tokens = token_get_all('<?php echo(123); ?>');

for($i=0 ; $i<count($tokens);$i++){
    for($j=1 ; $j<count($tokens[$i]);$j++){
        echo "</br>";
//token_name可以将数字表示的字符串的类型转化为php中固定名称,此函数PHP自带
        $token_name = token_name($tokens[$i][0]);
        echo $token_name;
        echo "</br>";
        
        echo htmlspecialchars($tokens[$i][$j]);
    }
}


?>

页面展示为:

使用token_name时:

不使用token_name时:

<?php

$tokens = token_get_all('<?php echo(123); ?>');
        
for($i=0 ; $i<count($tokens);$i++){
    for($j=0 ; $j<count($tokens[$i]);$j++){
        echo "</br>";
        echo "</br>";
        
        echo htmlspecialchars($tokens[$i][$j]);
    }
}

?>

如图:

rips使用token_get_all对文件进行整理时:

<?php


                $lines_stack = array();
//读取文件内容并转化成数组
        $lines_stack[] = file("C:\\wamp\\www\\test\\index.php");
        echo "</br>";
//对数组进行整理
        $lines_pointer = end($lines_stack);
//将数组转化成String型,并使用token_get_all
        $tokens = token_get_all(implode(' ',$lines_pointer));
//遍历并输出
                 for($i=0 ; $i<count($tokens);$i++){
//token_get_all所整理出的数组第0位代表字符串类型,第1位代表字符串内容,第2位是字符串所在文件中的行数。
                     for($j=1 ; $j<count($tokens[$i]);$j++){
                         echo "</br>";
                         $token_name = token_name($tokens[$i][0]);
                         echo $token_name;
                         echo "</br>";
        
                         echo htmlspecialchars($tokens[$i][$j]);
                     }
                 }
    
?>

结果如图:

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php7微信支付回调失败发布时间:2022-07-10
下一篇:
PHP浮点数精度问题发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap