zoukankan      html  css  js  c++  java
  • 实验吧[WEB]——程序逻辑问题

    拿到题 通过查看网页源代码发现index.txt

     

    通过index.txt我们获得了后端的源代码

     

    我们可以通过我画出来的这两个重要的信息得知 第一个sql查询语句没有任何过滤说明存在SQL注入漏洞。

    第二个我画出的代码就是我们要获得flag的核心

    if (($row[pw]) && (!strcasecmp($pass, $row[pw]))) {    

           echo "<p>Logged in! Key:************** </p>";

    }

    这块代码的意思是 首先从数据库中提取出pw 然后逻辑与 与右边的(!strcasecmp($pass, $row[pw])) 两条语句都为真才会打印出flag

    我们先看右边的这块strcasecmp是什么

    strcasecmp() 函数比较两个字符串。

    提示:strcasecmp() 函数是二进制安全的,且不区分大小写。

    语法:

    strcasecmp(string1,string2)

    参数

    描述

    string1

    必需。规定要比较的第一个字符串。

    string2

    必需。规定要比较的第二个字符串。

    返回值:

    该函数返回:

    • 0 - 如果两个字符串相等
    • <0 - 如果 string1 小于 string2
    • >0 - 如果 string1 大于 string2

    所以这段(!strcasecmp($pass, $row[pw]))  是要从数据库中提取出 与我们用户输入的作比较且都是经过cmd5加密的数据 可以看源代码第16行  作比较必须相等才为0 然后!取反 这段代码的运行结果返回1 与左边的($row[pw])它是有数据就返回1 所以两者条件必须都为1或者才能打印出flag  可是数据库里面的值我们不知道 所以我们想办法构造注入语法让他满足条件。

    我们可以先看一个mysql查询的特性

    这是我们admin表中的仅有数据  我们现在想查一个密码为xiaohua经过md5加密的

    ee755bdd4adb8ac6270ef476fefab245这个是xiaohua的cmd5密文  可是数据库里面没有这个怎么办我们来构造

     

    我们根据它的特性构造一个联合查询 这样第一条语句查询dsfd 这个用户查不到 然后第二个根据特性会返回这个结果到password字段下

    select password from admin where username="dsfd" union select" ee755bdd4adb8ac6270ef476fefab245";

     

    成功返回xiaohua md5的密文

    所以我们回到我们的题

     

    我们只关注右边红线这部分,从数据库提取不存在的值我们可以通过下方sql语句构造得到

     

    然后$pass这块我们要输入和加密md5一样的值也就是xiaohua 这样一来 他们的条件就成立了 就能获得flag了

    下来就要用到我们的注入手法

     

    成功获得flag

    也可以这样构造  方便

    username:username' union select md5(1)# 
    password:1

     

     

    引用: https://blog.csdn.net/dongyanwen6036/article/details/77768345

           ` https://blog.csdn.net/he_and/article/details/77618429

     

    后记  其实这个题很简单就是对SQL语法技巧不太熟。忍不住看了WP

    要继续加油啊!

  • 相关阅读:
    POJ
    归并排序+归并排序求逆序对(例题P1908)
    HDU
    2018-12-5 及 codeforces round 525v2
    2018-12-1学习纪录
    近期总结和未来规划
    C++ storage allocation + Dynamic memory allocation + setting limits + initializer list (1)
    注意项
    第四课 计算机的基本组成
    第二课+第三课 计算机系统概论
  • 原文地址:https://www.cnblogs.com/xhds/p/11169134.html
Copyright © 2011-2022 走看看