1.命令注入:

LOW等级:

输入没有任何限制,可以直接ping;

php代码审计——DVWA

Medium等级:

php代码审计——DVWA

 

介绍一下str_replace()函数和array_key()函数:

Str_replace(str1,str2,str3):将str3中的str1替换成str2.

Array_key():返回数组中的键值。

 所以上述代码的意思就是把&&和;过滤掉了,但是这很容易绕过,我们输入&;&就可以ping命令了。

 High等级:

php代码审计——DVWA

从上述代码可以看到,已经几乎过滤掉所有关键字,但是我们还是可以想办法绕过:

php代码审计——DVWA

可以看到'| '后有空格,所以我们可以构造127.0.0.1|||ping xxx.com这样的语句进行绕过:

php代码审计——DVWA

 总结:high等级虽然用白名单过滤掉所有关键字,但是还是能绕过去,由此可见白名单并不安全,应当采用黑名单。

2.反射性XSS:

Medium等级:

php代码审计——DVWA

从上图可以看到,它将<script>过滤掉了,但是也只是过滤掉了<script>,而且str_replacce()函数对大小写是进行区分的,所以我们可以用<img>标签 或者<Script>来绕过;

High等级

php代码审计——DVWA

先说下preg_replace()函数:

preg_replace(str1,str2,str3):将str3中的str1替换成str2.

由上图可知,这是讲<script>过滤掉,并且不区分大小写。但是我们让然可以绕过,使用<img>标签就可以了。

存储型XSS和反射性一样,这里就不作分析了。

 

相关文章:

  • 2021-06-25
  • 2022-01-06
  • 2021-10-19
  • 2021-08-17
  • 2021-11-09
  • 2021-11-03
猜你喜欢
  • 2022-12-23
  • 2021-09-24
  • 2021-09-11
  • 2022-02-14
  • 2021-07-12
  • 2021-06-10
  • 2022-01-31
相关资源
相似解决方案