当前位置: 首页 > news >正文

【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.对代码进行分析

<?php
// 高亮显示当前文件(index.php)的源代码
highlight_file('index.php');
​
// 包含flag.php文件,该文件中定义了$flag变量
include("flag.php");
​
// 从POST请求中获取名为'id'的参数值,并赋给变量$id
$id=$_POST['id'];
​
// 从GET请求中获取名为'json'的JSON字符串参数,使用json_decode解析为关联数组
// 第二个参数true表示将JSON对象转换为PHP关联数组而非对象
$json=json_decode($_GET['json'],true);
​
// 条件判断:如果POST的id等于"wllmNB"且GET的json参数中x键的值等于"wllm"
if ($id=="wllmNB"&&$json['x']=="wllm")
{// 如果条件满足,输出flag(即显示flag内容)echo $flag;
}
?>

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分钟,且掌握源码中几个函数的使用方法

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

http://www.dtcms.com/a/560989.html

相关文章:

  • 网站建设.龙兵科技做推广的网站那个好
  • trimesh库初步接触
  • 对链表进行插入排序:用Java实现
  • 资讯类网站建设方案书docker wordpress 4.2
  • 设计模式——原型模式(prototype)
  • 设计模式-单列模式
  • ArgoCD与Helm:云原生部署对比解析
  • 我的创作纪念日:从 2024.11.02 到今天的一整年
  • go语言 做网站外贸导向企业网站
  • 十堰微网站建设电话计算机哪个专业最吃香而且最简单
  • OpenCV(十六):椭圆的绘制
  • 数据仓库·简介(一)
  • 如何细分行业 做网站赚钱品质培训网站建设
  • 网站建设 思路室内设计平面图包括
  • 【软件安全】Web Security(Cookies / Session / XSS / SQL Injection / CSRF)概念介绍
  • 【踩坑篇】MyBatis-Plus拦截 ResultSetHandler.handleResultSets返回结果为空List
  • SSM框架高频考点
  • Chart.js 气泡图
  • C4D R21文字挤压的封盖变化详解
  • 网站咨询弹窗是怎么做的视频教做家常菜的网站
  • 网站备案 图标jsp网站开发框架
  • 网站翻页模板wordpress 点击导航链接老是跳转到当前页面
  • 计算机毕业设计java和Vue的在线购物系统 电商平台管理系统 网上购物平台
  • C++ string(四):编码
  • enumerate
  • C++ 多线程同步机制详解
  • EMB电子机械制动器夹紧力分析
  • 计算机操作系统:缓冲区管理
  • 绥化市建设工程网站招投标网站 服务器 域名
  • Altium23批量将元器件的摆放角度恢复正常