• 代号A1金融交易平台漏洞挖掘


    前言


           分析某金属交易平台后台管理软件,利用SQL注入达到提权目的(演示敏感内容将会打码处理)。

    工具


           1..net framework

           2. ExeinfoPe

           3..Net Reflector 

    漏洞分析


          首先我们登录软件查看软件有哪些功能(这里我有一个权限不足的帐号)。

    登录成功后我们会看到如下菜单内容,随便点开几个界面看看,查看有数据并且操作正常。

    接着我们打开安装好的软件目录,查看一下目录下有什么内容,发现目录比较简单,而且使用了DevExpress控件库(你问我为什么知道,我把这个名字百度上一搜索就出来了),https://baike.baidu.com/item/DevExpress/8754446?fr=aladdin

    我们使用Exeinfo工具查看Launcher是什么语言开发的,是否带壳

    看到这个信息我们发现是.net开发的程序,我们可以使用Net Reflector 来查看程序源码。

    Program是.net程序的入口点,我们可以从Program下手查看Main里面调用哪些内容

     

    发现这里有一个主界面函数MainForm,通过分析代码找到合适的断点,可以多下几个断点。比如:“MessageBox.Show”、"TextBox.Text"、"DataGridview.DataSouce"、“Enable”。多尝试一些然后根据堆栈回溯,找到你需要程序逻辑的位置。

    我们随便挑选一个功能查看,看看里面代码。发现里面有SQL语句,通过这个语句我们发现这个程序有SQL注入漏洞。通过修改如何SQL可以查询更多数据,比如将时间条件移除这样可以查询出更多数据。

     

    通过SQL语句中使用IFNULL函数这里猜测使用mysql数据库。那么我们就采用mysql脚本攻击。

    1.查询库中所有表

    select * from sysobjects where xtype='U';
    --xtype='U':表示所有用户表,
    --xtype='S':表示所有系统表。

    2.查询表中所有列

    select name from syscolumns where id=Object_Id('表名');
    

    3.查询表中所有列名和字段类型

    select sc.name,st.name from syscolumns sc,systypes st where sc.xtype=st.xtype and sc.id in(select id from sysobjects where xtype='U' and name='table_name');
    

      这三条语句用于查看远程数据库中有哪些表结构关系,可以用于将远程数据库下载到本地使用(俗称“拖裤”),可以自己写一个软件也可以使用我提供的工具,工具将会在下一篇文章中发布出来。

    攻击步骤:

          1.找到select和insert、update、delete地方个一处,方便后面提权操作

          2.执行sql查询语句查询库中有哪些表结构

          3.找到类似管理员或者,用户数据表结构

          4.查看用户或者管理员表数据,找到自己ID对应的数据行

          5.通过执行sql语句进行修改对应的数据达到篡改数据的结果 

    漏洞总结


         通过静态程序,找到程序中使用Sql语句的地方,静态修改后动态运行,从而执行我们想要修改的数据,这个修改过程需要多次尝试。通过服务器返回的对应的错误信息进行反复修改尝试,最终达到攻击目的。

  • 相关阅读:
    关于博客
    latex句首缩进空格
    javable 之Iterable
    javable之Comparable
    常量池与Integer和String的“==”
    静态多态与动态多态
    String和StringBuilder效率不同的原理
    equals和hashcode
    Eclipse里面使用checkstyle(Google style)
    矩阵链乘问题
  • 原文地址:https://www.cnblogs.com/ajqfju/p/7990148.html
Copyright © 2020-2023  润新知