payload = 'ascii(substr(database()from/**/%d/**/for/**/1))=%d'
时间: 2024-06-18 10:04:51 浏览: 74
VUE---store中引入多modules/*.js 文件
这是一个使用 SQL 注入技术的 payload,用于从 MySQL 数据库中获取数据库名。其中,`substr(str, pos, len)` 函数用于截取字符串,`database()` 函数用于返回当前数据库名。
具体来说,`%d` 是占位符,表示待填入的数字。通过循环填入数字 0-127,可以逐个比较当前数据库名的每个字符的 ASCII 码值,最终还原出当前数据库名。
举例来说,当填入数字 97 时,payload 变成了:
```
ascii(substr(database()from/**/1/**/for/**/1))=97
```
该语句的含义是:如果当前数据库名的第一个字符的 ASCII 码值等于 97,那么查询结果为真,否则为假。根据这个原理,可以用二分法逐位确定当前数据库名。
阅读全文