动态线条
动态线条end

SQL注入:MySql探子回报函数

探子相关函数基本使用

查看当前链接数据库用户

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+

mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+

mysql> select session_user();
+----------------+
| session_user() |
+----------------+
| root@localhost |
+----------------+

获取当前数据库版本信息

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.26    |
+-----------+

获取当前数据库名称

mysql> select database();
+------------+
| database() |
+------------+
| NULL       |
+------------+

获取当前数据库名称长度

mysql> use test;
Database changed
mysql> select length(database());
+--------------------+
| length(database()) |
+--------------------+
|                  4 |
+--------------------+

#判断字符长度
#原理:网页是否能够正常显示
mysql> select length(database()) > 4;
+------------------------+
| length(database()) > 4 |
+------------------------+
|                      0 |
+------------------------+

mysql> select length(database()) > 3;
+------------------------+
| length(database()) > 3 |
+------------------------+
|                      1 |
+------------------------+

因此证明数据库为四个字符

获取左边的第一个字符

#依次尝试,直到网页显示正常为止
mysql> select left(database(),1)='t';
+------------------------+
| left(database(),1)='t' |
+------------------------+
|                      1 |
+------------------------+

#left函数
mysql> select left(database(),1);
+--------------------+
| left(database(),1) |
+--------------------+
| t                  |
+--------------------+

mysql> select left(database(),2);
+--------------------+
| left(database(),2) |
+--------------------+
| te                 |
+--------------------+

mysql> select left(database(),3);
+--------------------+
| left(database(),3) |
+--------------------+
| tes                |
+--------------------+

mysql> select left(database(),4);
+--------------------+
| left(database(),4) |
+--------------------+
| test               |
+--------------------+

切割函数substring

#指定截取范围
mysql> select substring(database(),1,1)='t';
+-------------------------------+
| substring(database(),1,1)='t' |
+-------------------------------+
|                             1 |
+-------------------------------+

定位函数

#函数1	position()
#可用于确定user()函数显示后,@的位置
mysql> select position('@' in user());
+-------------------------+
| position('@' in user()) |
+-------------------------+
|                       5 |
+-------------------------+

#函数2	locate()
mysql> select locate('@',user());
+--------------------+
| locate('@',user()) |
+--------------------+
|                  5 |
+--------------------+

什么是探子回报

user(),cersion()

探子:测试程序是否同时对函数,子查询,括号等存在过滤。

执行成功,则说明存在注入的可能性,可能执行复杂的逻辑子查询。

执行失败,基本上说明注入困难或者注入可能性很小

盲注中如何猜测用户名密码

1)猜测用户名有多少个字符

2)确认@的位置

3)逐个猜测每个字符的准确信息

posted @ 2022-01-26 18:43  v1v1v1  阅读(61)  评论(0)    收藏  举报