深入解析:【2025 SWPU-NSSCTF 秋季训练赛】jicao

【实验工具】

Postman或Burp Suite或hackbar

【实验目的】

掌握查看php代码审计能力以及Post请求提交、Json语法等


知识点巩固:

1.Json语法:

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。

核心特点:
  1. 易于读写 - 对人友好,格式清晰

  2. 易于解析和生成 - 对机器友好

  3. 语言无关 - 几乎所有编程语言都支持

  4. 基于文本 - 使用纯文本表示数据

基本语法结构:
// 对象 - 用花括号 {} 表示,键值对形式
{
  "name": "张三",
  "age": 25,
  "isStudent": true,
  "hobbies": ["篮球", "音乐", "阅读"],
  "address": {
    "city": "北京",
    "street": "长安街"
  }
}
​
// 数组 - 用方括号 [] 表示
["苹果", "香蕉", "橙子"]
​
// 值可以是:字符串、数字、布尔值、null、对象、数组

常见应用场景:

  • AJAX请求响应数据

  • RESTful API数据传输

  • 应用程序配置文件

  • 不同系统间的数据交换

2.php代码审计

PHP代码审计是CTF(Capture The Flag)Web方向中非常重要的题型,主要考察选手对PHP语言特性、安全漏洞和代码逻辑的理解能力。

题型特点:

  1. 目标明确:通常目标是获取flag(敏感文件、数据库信息等)

  2. 代码量适中:一般几十行到几百行代码

  3. 漏洞隐蔽:需要深入理解代码逻辑才能发现漏洞

  4. 结合多种知识:需要PHP语法、Web安全、服务器配置等综合知识

本题遇到函数知识点:

①json表示法详解
https://www.php.net/manual/zh/book.json.php

②json_decode函数详解
https://www.php.net/manual/zh/function.json-decode.php

json_decode用于对传入的JSON格式的字符串进行解码

③$_GET函数详解
https://www.php.net/manual/zh/reserved.variables.get.php

简单来说:php中,利用$_GET函数用于获取HTTP请求包中的GET请求传入的参数

④$_POST函数详解
https://www.php.net/manual/zh/reserved.variables.post.php

简单来说:php中,利用$_POST函数用于获取HTTP请求包中的POST请求传入的参数

3.hackbar使用

Hackbar是一个Firefox的插件,它的功能类似于地址栏,但是它里面的数据不受服务器的相应触发的重定向等其它变化的影响。 有网址的载入于访问,联合查询,各种编码,数据加密功能。这个Hackbar可以帮助你在测试SQL注入,XSS漏洞和网站的安全性,主要是帮助开发人员做代码的安全审计,检查代码,寻找安全漏洞。Hackbar 在Burpsuite中也有该插件

1.开启环境,点击http://node7.anna.nssctf.cn:20384/进入

2.进入页面发现是PHP代码审计题

3.对代码进行分析

4.根据代码分析

当且仅当id、json都等于字符串时,出现flag;据此构造payload

5.payload

GET请求:http://node7.anna.nssctf.cn:20384/?json={"x":"wllm"}
POST请求:id=wllmNB

6.传参并获得响应

7.flag到手

NSSCTF{6efa78fd-455a-4e7e-8927-c9bb7330e328}

8.tips:

重生之我要成为web糕手:第一步:本题限时2分钟,且掌握源码中几个函数的使用方法

希望下次不要被出题人嘲讽了

posted on 2025-12-02 09:34  ljbguanli  阅读(20)  评论(0)    收藏  举报