SQL盲注

说明

学习思路,源自《白帽子讲Web安全》,lcamry《MySQL注入天书》

1、盲注

注入漏洞不显示来自数据库的报错信息,报错信息中只包含通用的错误提示,此时SQL注入将不能通过报错信息直观获取注入语句的执行结果,既是盲注(Blind Injection)。盲注时不能直观获取结果,但可以通过基于逻辑真假的不同页面表现,来进行结果的判断,从而达到数据获取的目的。

盲注的大致分类有三种

1、基于布尔的SQL盲注

2、基于时间的SQL盲注

3、基于报错的SQL盲注

2、基于布尔的MySQL盲注

基本思路是对获取的数据进行逻辑判断,通过页面表现的“真”和“假”的现象,判断出注入逻辑表达式的结果。这种方法适用于页面上,具备明显的“真”和“假”结果显示的注入点。

由于这种办法是通过页面显示“真”和“假”的结果判断注入的逻辑表达式的结果,所以当需要爆数据库信息时,常使用截取返回信息的某一段,进行逻辑判断来爆信息。

MySQL常用字符串截取函数

# LEFT()函数
LEFT(str,length);  -- str是要提取子字符串的字符串。length是一个正整数,指定将从左边返回的字符数。
# LEFT()函数返回str字符串中最左边的长度字符。如果str或length参数为NULL,则返回NULL值。
# 如果length为0或为负,则LEFT函数返回一个空字符串。如果length大于str字符串的长度,则LEFT函数返回整个str字符串。

# ASCII()函数、substr()函数
ASCII(str)

你可能感兴趣的:(sql,web安全,安全)