zoukankan      html  css  js  c++  java
  • 代码审计技巧讲解

    0x01 注入漏洞简介

    注入漏洞是web应用中最常见的安全漏洞之一,由于一些程序没有过滤用户的输入,攻击者通过向服务器提交恶意的SQL查询语句,应用程序接收后错误 的将攻击者的输入作为原始SQL查询语句的一部分执行,导致改变了程序原始的SQL查询逻辑,额外的执行了攻击者构造的SQL查询语句,从而导致注入漏洞 的产生。

    攻击者通过SQL注入可以从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作。常见的建站系统出现SQL注入漏洞风险概率是非常高的,而本文就SQL注入漏洞的挖掘方法和大家分享交流,其他web安全漏洞暂不做探讨。

    0x02 漏洞挖掘思路

    我们知道在源码审计中这样的SQL注入漏洞很容易被发现,但是对于我们这样不会代码审计又想要挖漏洞的小菜来说该怎么办?那就要讲究方法了,这里和大家分享下我平时挖掘漏洞的一些思路。

    首先一个好的测试环境很重要,这样我们可以在短时间内准确的找出注入的位置。在挖注入漏洞之前我们开启MySQL查询日志功能,因为有没有注入的发生,日志里面都可以最直观的看到。

    然后用某个文本查看软件看日志文件打开网站程序里面执行的SQL(我这里用的是Bare Tail)

    接着就是找输入点了,这个是重点 (这个过程也要仔细观察mysql查询日志)。

    有些输入点信息,程序没有过滤直接查询数据库,就造成了注入,

    例如,我GET提交:

    在监控的MYSQL日志中跟随1a,此处出现id=1a,可以看出该处未作处理,

    并且是一个整型变量,且在单引号外面,

    那么我们提交一下URL即可注入,获取数据任意信息。

    1
    http://localhost/index2.php?id=1%20union%20select%20user%28%29%20from%20user

    0x03 Shopex漏洞实例

    以shopex漏洞挖掘为例,shopex为部分源码加密,解密较为繁琐,涉及文件太多,进行代码审计需要耗费很多时间,然而利用上面的方法即可轻松找出漏洞。

    打开网站,登录后我们随便来到一个产品页面,点击收藏该产品的时候,查看post的信息,其中的75是我们产品的ID,该处也是个输入点。

    我们将其改为74a在提交一次试试,跟随SQL日志,可以看到其执行的语句为。

    可以看到该处是没有经过过滤的,74a已经成功写入数据库了,如果二次取出时也没有过滤将造成注入,我们再来到会员中心页面,该处会在正常操作下显示我们收藏商品。

    此时查看数据库执行日志发现74a已经出现了,由此可以判断该处存在二次注入。

    由于这里是组合而成的,我们构造好注入语句然后拆分提交,即可绕过首页的过滤

    我们将上面的SQL替换成以下信息,分三次提交:

    来到会员中心页面在产品收藏处可以看到管理员信息。

    观察数据库日志可以看到此时执行的SQL语句为

    1
    Query   SELECT aGoods.*,aGimage.thumbnail FROM sdb_goods as aGoods left joinsdb_gimages

    0x04 总结

    这个半黑盒测试的流程是:

    开启查询日志——查找输入点——-跟随输入信息——–是否可利用——-构造注入语句

    此过程中的重点就是找输入点和跟随输入信息。

    输入点是我们实施注入的入口点,我们必须有效控制这些才能实现注入,这些输入点可以包含其中一些:

    1)表单提交,主要是POST请求,也包括GET请求。

    2)URL参数提交,主要为GET请求参数。

    3)Cookie参数提交。

    4)HTTP请求头部的一些可修改的值,比如Referer、User_Agent等。

    5)一些边缘的输入点,比如.jpg文件的一些文件信息等。

    有些程序采用了一些错误处理,就算SQL查询语句出错了也是没有任何报错的,这个时候我们只能通过监视SQL查询日志来判断了,一旦有注入漏洞的产生这里将是最先看到。

    熟练运用该方法基本可以找到程序中所有的注入漏洞,且不需要太懂代码,要得只是耐心和细心。

    原文地址:http://www.91ri.org/7818.html

  • 相关阅读:
    国外C#开源系统一览表
    国外的开源的CMS系统(ASP.Net_c#)
    CSS简写方法说明
    比较著名的.net技术论坛网址(含国外的)
    :domino用户的新邮件不出现在$Inbox(收件箱),但可以在'所有文档'视图中看到
    Domino邮件记录
    Lotus notes685升级安装设置
    Lotus 与 Exchange 对比评测
    Domino维护与监控
    用户在notes和shmail禁用离开办公室后,为何离开办公室代理依然运行
  • 原文地址:https://www.cnblogs.com/milantgh/p/4076207.html
Copyright © 2011-2022 走看看