sql注入——盲注
盲注分为两类:
- 布尔盲注:字面意思,只有对和错两种,执行注入的sql语句后,页面看不到别的内容,只能看到页面的两种变化,一种是执行没出问题的页面,一种是执行错误的页面
- 时间盲注:时间盲注在执行注入的sql语句后,无论有没有问题,他的页面始终不变
这里介绍几个函数:
- Length()函数用来识别括号内字符串的长度
- ascii()函数可以将单个字符串转换为ASCII码
- substr()这是一个分割函数,它需要三个参数substr(“需要分割的数据”,“从哪里开始分割”, “分多少位”)
- if()函数,基本在很多的编程语言都有接触到。在这里它也需要三个参数:if(“条件”,“条件为True, 执行这里”,“条件为False,执行这里”)
- sleep()函数,睡眠的意思,能控制你睡眠多少秒
手工注入基本步骤:先测试出是哪种盲注类型,因为页面不会回显结果,所以必须都是靠猜,可以转换成ascll码,在sql里面比大小确定字母,判断页面的变化
- 注入点测试
- 猜数据库名长度
- 猜数据库名(ASCII)
- 猜表名长
- 猜表名
- 猜字段名长
- 猜字段名
- 猜数据长
- 猜数据
来一段注入代码以供参考:?id=1' and if(length((select table_name from information_schema.tables where table_schema=database() limit 0,1))<8,sleep(5),1)--+