zoukankan      html  css  js  c++  java
  • [典型漏洞分享]Insert型SQL注入的发现和利用,篡改订单金额

    本例中的SQL注入和其它发现的SQL注入的主要区别:1、生成订单接口是一次性的,反复提交无效,因此,此类型的SQL注入比较难通过扫描器发现,需要人工提取和手动测试。2、Insert类型的SQL注入,不经常见。在本例中,我们成功的通过该漏洞篡改订单金额。

    YS 电商生成订单接口存在INSERTSQL注入漏洞,可修改订单金额数据【中】

    问题描述:

             YS MALL在生成订单时会往数据库插入数据,但此处使用了动态查询语句的方式进行插入,通过注入数据可以达到篡改订单数据的目的。

    测试步骤:

    1、  登录YS MALL,选择需要购买的设备C1(此处C1价格为880,优惠券优惠额度为100RMB),并进入购物车提交订单,如图所示:

    clip_image002

    2、  提交订单并拦截生成订单请求,转入burp repeater,在” delivery[shipping_id]”参数输入非法参数,通过返回的错误信息可以看到存在INSERT型的SQL注入,同时清除地看到相关表格和字段信息,如图所示:

    clip_image004

    3、  通过delivery[shipping_id]参数注入payload可以修改运费和汇率等字段的数据::

    image

    4、  生成订单成功后查看支付信息如下:

    clip_image008

    问题扩展:

             但实际支付时只有运费字段的数据会对实际支付造成影响,故技术影响面大,但业务影响面比较小,故整体风险为中。

    解决建议:

             使用参数化查询语句防止SQL注入。

  • 相关阅读:
    基于聚类和神经网络的图像颜色提取和评分方案
    spring cloud单点登录
    普通spring jsp+mybatis项目修改为springboot + jsp +mybatis项目
    Java使用RSA加密解密签名及校验
    开源项目源代码阅读清单
    git 命令 —— checkout
    集大成者 —— 荀子
    Scikit-learn库中的数据预处理(一)
    arduino远程刷新(烧录)固件
    概念的理解 —— 电学
  • 原文地址:https://www.cnblogs.com/fishou/p/4202028.html
Copyright © 2011-2022 走看看