0


记一次简单的白加黑测试

前一阵子成了小洋人,所以很长的时间也没更新了,今天更一篇PHP代码审计的吧,此次分享的内容十分的简单,大家简单的看看即可

命令注入 -1

在这里插入图片描述
从上述代码,我们可以看出来,$ip变量接收过来之后通过合并运算符(??)判断是不是空,是空的话就返回114.114.114.114,否则就返回变量本身,说实话,这里并没有看到对ip参数的任何形式的过滤,但是这里的的确确是修复了。

而后

    n
   
   
    u
   
   
    m
   
   
    变量、
   
  
  
   num 变量、
  
 
num变量、time变量以及$bit变量,在接收出来之后都进行了强制类型转换(int),所以并没有任何毛病。

但是**$net变量只是将&&&|||以及;**进行替换为空,但是没有过滤%,这就导致命令注入漏洞的一个绕过

我们看一下命令注入的效果
在这里插入图片描述
在这里插入图片描述
显而易见,我们注入成功了,原谅厚码和角图

命令注入 -2

在这里插入图片描述
首先我们可以看到,代码中圈出来的地方,首先校验数据存在与否,如果不存在的话会直接存到数据库里面
在这里插入图片描述
而这里就可圈可点了,存进数据库之后,他没有经过任何的处理就直接拿出来了,并且利用nat_exec()函数进行执行,由于这里是无回显的注入,所以我们骚操作一把
在这里插入图片描述在这里插入图片描述

命令注入 -3

在这里插入图片描述
删除nat配置的时候,会在数据库里面搜索对应的nat配置,而后将搜索到的nat配置直接使用nat_del_exec();进行删除操作,但是在删除的过程中,oldInfo变量与array()数组并没有进行任何形式的过滤,导致命令注入漏洞的产生。

在这里插入图片描述

我们先删除第一个配置,删除成功后,其实也就顺带执行了 ls -ll命令
在这里插入图片描述
我们接着删除第二个配置,也就顺带执行了 rm 命令
在这里插入图片描述
难道是不难,我觉得这种是十分明显的命令注入,笔者同时还找到了几处相似的洞,但是没复现出来,因为找不到接口,这个代码写的不是很好,你说他是MVC架构吧,他还真就不是,但是你说他不是MVC吧,偏偏还魔改了。。。。。。菜是原罪

仅仅几率一次测试的技巧,如果侵权,请私信我,我会删除​

标签: php 安全 web安全

本文转载自: https://blog.csdn.net/weixin_48421613/article/details/128393342
版权归原作者 vlan911 所有, 如有侵权,请联系我们删除。

“记一次简单的白加黑测试”的评论:

还没有评论