zoukankan      html  css  js  c++  java
  • sqli-labs(七)——登陆处sql注入

    第十三关:

    这关也是一个登陆口,和上关所说的一样,先使用'"试一下,让程序报错然后判断后台的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

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

    第十六关:

    和第十五关类似,只是将单引符号改为了双引符号进行拼凑。怎么判断后台的拼凑方式? fuzz!!

  • 相关阅读:
    错题记录——关于Java中private的用法(类与封装)
    深度学习-人脸识别-数据集和制作
    UE4使用经验记录
    pycharm 一直索引或索引过大占用系统盘问题
    深度学习portoch笔记_概念随笔
    mysql 找不到请求的 .Net Framework Data Provider。可能没有安装。
    halcon崩溃/异常信号11 后文件临时存储路径
    halcon 错误记录
    visual studio 2012 C#exe嵌入到子窗口,程序退出后子exe文件仍然被占用
    文件操作
  • 原文地址:https://www.cnblogs.com/jinqi520/p/9545286.html
Copyright © 2011-2022 走看看