记一次学习--[网鼎杯 2018]Comment二次注入

news2024/12/23 17:02:24

目录

本文章只展示二次注入过程,后续获取flag并不展示

靶场

网站流程、密码的破解和目录的查询以及对于源代码获取

密码暴力破解

网站目录扫描

网站源代码获取

网站流程

尝试注入

注入代码


本文章只展示二次注入过程,后续获取flag并不展示

靶场

可以进入在线的ctf靶场

网站流程、密码的破解和目录的查询以及对于源代码获取

首先刚进来有个留言板可以发帖

密码暴力破解

当你点击发帖的时候会提示你要登陆

登陆已经给你了部分信息这个时候可以使用bp抓包然后暴力破解一下

抓到的包

尝试暴力破解,暴力破解出密码为666尝试登陆、登陆成功,但是没有什么作用

网站目录扫描

使用dirmap或者dirsearch扫描该网站,它会有一个.git文件。.git文件可以理解为github本地仓库的一个数据库文件,也就意味着只要.git泄露就有可能还原你在本地提交的所有代码,如何还原你可以用手工,也可以用工具githack

扫描出来的目录文件

网站源代码获取

使用githack扫出来了

现在我们来看一下源码

<?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");
}
?>

网站流程

这里看它前端页面,这里请求的页面就是write_do.php这就是刚刚扫出来的页面源代码

看源码开关语句的结果等于write的结果,这里是没有办法注入的,这里的原因是应为categriy、title、content都被addslashes过滤函数保护了,当你提交了上面三个参数,他会将三个参数提交道数据库里面

下面comment是在留言版的详情里

点击详情就会跳转到comment.php的页面里

在comment.php点击提交的话就会跳转页面会write_do.php中

尝试注入

然后对于网站代码的分析,我们发现代码等于write的时候是没有办法进行注入的,也就是下面这一块

然后再往下看,再开关为comment下的bo_id也不可以进行注入了因为被过滤了

再往下看

sql变量中的category是没有过滤的,虽然他在插入数据库的时候是进行了过滤的,但是你要是插入了'的话插入的数据是被转义了,但是入库的时候‘是不会被转义的,也就是进入数据库后你的转义字符会消失

category处输入 ',content=database(),/*

content处输入*/#

这个时候再往下看刚刚再数据库查到的值在这里使用这不就可以进行注入了

注入代码

这里有一个需要注意的点,上面代码中是多行需要多行注释,将content注释掉

前面的'是为了闭合category的单引号,/*是为了注释掉下面的content

然后content处的*/#是为了和前面的多行注释配合,然后#是为了注释掉content原本的'
 

category处输入 ',content=database(),/*

content处输入*/#

然后这里content是后面详情里的content

 

然后我们是在详情里写代码,conment的注释代码

database()已经被读出来了

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

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

相关文章

IntelliJ IDEA 2024.2 夏季大版本发布,不得不说,更强了!

因 CSDN 上传大小限制&#xff0c;本文推荐微信中阅读&#xff0c;动图更完整&#xff0c;微信中阅读&#xff0c;请欢迎关注公众号&#xff1a;CodeFit 创作不易&#xff0c;如果你觉得这篇文章对您有帮助&#xff0c;请不要忘了 点赞、分享 和 关注&#xff0c;为我的 持续创…

Katalon Studio 使用教程——自动获取元素定位功能

这个功能很实用&#xff0c;简单来讲可以形容为&#xff0c;想要哪里点哪里&#xff0c;so easy。 比如你想定位某个输入框&#xff0c;只需要按住【Alt】&#xff0c;点一下输入框&#xff0c;系统就自动记录下来这个输入框叫什么&#xff0c;它的xpath是什么。你想要按钮就点…

arXiv2024.8.6 | LLaVA-OneVision:Easy Visual Task Transfer

Comment: Project Homepage: https://llava-vl.github.io/blog/2024-08-05-llava-onevision/ 论文标题&#xff1a;LLaVA-OneVision&#xff1a;Easy Visual Task Transfer 论文地址&#xff1a;https://arxiv.org/abs/2408.03326 GitHub&#xff1a;https://llava-vl.githu…

4岁小孩孤独症的表现

在儿童的成长过程中&#xff0c;孤独症&#xff08;也称自闭症&#xff09;的早期识别与干预至关重要。对于4岁的孩子而言&#xff0c;孤独症的表现可能已经开始显现&#xff0c;家长和教育者需保持高度敏感&#xff0c;以便及时采取措施。 社交互动障碍&#xff1a;4岁孤独症儿…

Stable Diffusion绘画 | 图生图-上传重绘蒙版

上传重绘蒙版&#xff0c;可以弥补局部重绘的缺点&#xff0c;能够更精细的修改画面中的指定区域 使用PS制作的蒙版图片为耳朵下方区域&#xff0c;可以为图片中的女生带上不同款式的耳环。 参数配置&#xff1a; 调整提示词&#xff1a; 生成图片如下所示&#xff1a; 调整提…

龙腾CMS downloadFile接口任意文件读取漏洞复现 [附POC]

文章目录 龙腾CMS downloadFile接口任意文件读取漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现龙腾CMS downloadFile接口任意文件读取漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非…

分享一个基于数据可视化的交通感知与车辆检测协同系统(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

【SQL】产品销售分析 I

目录 题目 分析 代码 题目 销售表 Sales&#xff1a; -------------------- | Column Name | Type | -------------------- | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | ---------------…

【省流】入网,继续更!

大家好&#xff0c;我是一名默默学习的计算机小菜菜 在几分钟前我决定继续学习计算机知识和写博客 在这之前我已经停写了很久了&#xff0c;因为我真的找不到相关工作啊啊啊&#xff0c;有点萎靡&#xff0c;经常性精神内耗&#xff0c; 而之所以我死灰复燃&#xff08;可能不…

NeRF的代码复现以及人工智能入门

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

Effective-Java-Chapter4

https://github.com/clxering/Effective-Java-3rd-edition-Chinese-English-bilingual/tree/dev/Chapter-4 准则一 减少类和成员的可访问性 如果一个方法覆盖了超类方法&#xff0c;那么它在子类中的访问级别就不能比超类 [JLS, 8.4.8.3] 更严格非零长度的数组总是可变的&am…

3、pnpm yarn npm

项目里实际上就只有这些依赖 node module 里却有很多的包 原因&#xff1a; 比如说vue&#xff0c;vue内部有依赖了其余的包。工具又依赖了别的依赖 造成的问题&#xff1a;我可以直接去用这个包&#xff0c;但是这个包在package.json中却没有看到-----幽灵依赖 那如果说别…

Python 绘图入门

数据可视化的概念及意义 数据可视化有着久远的历史&#xff0c;最早可以追溯至10世纪&#xff0c;至今已经应用和发展了数百年。不知名的天文学家是已知的最早尝试以图形方式显示全年当中太阳&#xff0c;月亮和行星的位置变化的图。 图1 数据可视化的发展历程 什么是数据可视…

就医陪诊小程序项目开发功能介绍

陪诊小程序通常是指一种通过智能手机应用程序提供陪同就医服务的平台。其主要功能可以包括 预约挂号服务&#xff1a; 用户可以通过小程序预约医院或特定科室的就诊时间&#xff0c;避免排队等待。 陪同就医&#xff1a; 提供专业的陪诊员工作&#xff0c;陪同用户到医院就诊&…

如何理解 Java 中的阻塞队列:从基础到高级的深度解析

提到阻塞队列&#xff0c;许多人脑海中会浮现出 BlockingQueue、ArrayBlockingQueue、LinkedBlockingQueue 和 SynchronousQueue。尽管这些实现看起来复杂&#xff0c;实际上阻塞队列本身的概念相对简单&#xff0c;真正挑战在于内部的 AQS&#xff08;Abstract Queuing Synchr…

javaweb_04:SpringBoot

一、SpringBoot快速入门 官网&#xff1a;https://spring.io/ spring提供了若干个子项目&#xff0c;每个项目用于完成特定的任务。 1、创建springboot工程&#xff0c;并勾选web开发相关依赖。 注意这里type要选成maven: 2、定义helloController类&#xff0c;添加方法h…

QT多语言工具实现支持生成ts文件,ts文件和xlsx文件互转

一. 工具介绍 1.如果你是Qt项目,为多语言发愁的话,看到这篇文件,恭喜你有福啦!工具截图如下:​ 2.在项目开发的过程中,尽量将所有需要翻译的文本放在一个文件中,qml翻译用一个文件,cpp用一个,如下: test.h #pragma once /******************************************…

Python:jupyter 模型可视化(VS)

step1:打开vs安装扩展 安装后重新启动vs 建立可视化模型 import pandas as pd from sklearn.tree import DecisionTreeClassifier from sklearn import treemusic_data pd.read_csv(music.csv)Xmusic_data.drop(columns[genre]) Ymusic_data[genre]modelDecisionTreeClassifie…

吴恩达机器学习 笔记四十 寻找相关特征 协同过滤的限制

寻找相关特征&#xff1a; 要找到其他和 x(i) 相关的项&#xff0c;即找到一个 item k&#xff0c; x(k) 与 x(i) 相似。x 是一个向量&#xff0c;判断相似用的是下图中的式子 &#xff0c;即 x(k) 和 x(i) 之间的平方距离&#xff0c;有时也写成下面那种形式。 协同过滤的缺点…

openfoam中为什么一个单元用27个点表示,代表什么图形(由27个节点组成的三维立方体单元,在有限元方法(FEM)中被称为“三次立方体单元”)

问题: 近期在做openfoam项目的时候,发现openfoam中固体的点为什么一个单元用27个点表示,想着代表什么图形呢?如果以顶点表示的话好像图形就复杂了,然后查询一下资料,结果如下 解答: 在OpenFOAM中,使用27个点来表示一个单元通常指的是一种高阶单元。这种单元类型在有…