360 Secure SkillHub
360 安全技能中心

mdac-filler

脚本驱动 Playwright 自动填写并提交马来西亚数字入境卡(MDAC):读取命令行内联 JSON 或 JSON 文件中的旅客与行程信息,绕过滑块验证码后提交并输出成功状态,提交后由目标网站向所填邮箱发送确认邮件。需 Python 3.8+ 与 Playwright Chromium,须以非无头模式运行。

sidyangx
sidyangx
热度 59.67
最近更新 2026-09-15 09:19:06
分类:生活依赖:代码执行 / 联网浏览搜索 / 读写文件 / 第三方 API应用场景:旅行 / 自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add mdac-filler
Metadata
name
mdac-filler
description
Auto-fill and submit Malaysia Digital Arrival Card (MDAC) for travelers entering Malaysia. Use when a user wants to fill or submit MDAC (马来西亚数字入境卡) for Malaysia entry. Handles form filling, slider CAPTCHA bypass, and submission automatically. Requires traveler info: name, passport number, DOB, passport expiry, email, phone, arrival/departure dates, transport, accommodation address.

MDAC Auto-Filler

Automates filling and submitting the Malaysia Digital Arrival Card at: https://imigresen-online.imi.gov.my/mdac/main?registerMain

(Use ?registerMain to skip the announcement popup)

Quick Start

python3 skills/mdac-filler/scripts/fill_and_submit.py --data '{
  "name": "JOHN DOE",
  "passNo": "A1234567",
  "nationality": "CHN",
  "pob": "CHN",
  "dob": "01/01/1990",
  "sex": "1",
  "passExpDte": "01/01/2030",
  "email": "email@example.com",
  "confirmEmail": "email@example.com",
  "region": "65",
  "mobile": "91234567",
  "arrDt": "25/03/2026",
  "trvlMode": "2",
  "depDt": "25/03/2026",
  "embark": "SGP",
  "vesselNm": "Bus 170",
  "accommodationStay": "99",
  "accommodationAddress1": "106-108, Jalan Wong Ah Fook, Bandar Johor Bahru",
  "accommodationAddress2": "Johor Bahru City Square",
  "accommodationState": "01",
  "accommodationCity": "0118",
  "accommodationPostcode": "80250"
}'

Or use a JSON file:

python3 skills/mdac-filler/scripts/fill_and_submit.py --file traveler.json

CAPTCHA Bypass Strategy

The MDAC uses longbow.slidercaptcha.js. Bypass approach:

  1. Hook $.ajax to intercept /captcha POST and return {result: true}
  2. Read instance.x (real gap coordinate) via $('.slidercaptcha').data('plugin_sliderCaptcha').x
  3. Calculate moveX: instance.x * (width-40) / (width-40-20) where width=271
  4. Drag slider with ease-in-out-cubic + slight y-jitter to avoid bot detection

Success condition: sliderContainer_success class appears on container.

Manual JS Fill (browser console)

If using the script is not possible, paste this in the browser console:

(function(data){
  retrieveRefCity(data["accommodationState"]);
  document.getElementById("accommodationState").value=data["accommodationState"];
  setTimeout(function(){
    document.getElementById("accommodationCity").value=data["accommodationCity"];
    retrievePostcode(data["accommodationCity"]);
    for (var key in data){ document.getElementById(key).value=data[key]; }
  }, 1000);
})({ /* traveler data object */ });

Field Values Reference

See references/field-values.md for:

  • Country/nationality codes
  • Sex, travel mode, accommodation type codes
  • State and city codes (Johor focus)
  • Common Johor Bahru addresses
  • CAPTCHA technical details

Requirements

  • Python 3.8+
  • pip install playwright && playwright install chromium
  • Headless=False (site detects headless browsers)

Notes

  • MDAC must be submitted within 3 days before arrival
  • Singapore citizens are exempt
  • Each traveler needs a separate submission
  • Confirmation email sent to provided address after success