SyntaxHighlighter

2016年3月7日月曜日

まっさらなFlashAirをWi-Fi経由でupload.cgiを有効にするバッチファイル

これは、UPLOAD=1としなくても、WEBDAV=2の設定をすることで、
FlashAirにファイルをアップロードできてしまう仕様(公式サイトの記述とは合わないので
おそらくバグ)を利用したものです。

CONFIG.CGIからは、WEBDAVは設定できますが、UPLOADは設定できません。
しかしながら、WEBDAVで送り込んだLuaスクリプトを起動し、そのスクリプトによって
CONFIGを書き換えることは出来ますので、そのスクリプトからUPLOADやIFMODEなどを
書き換えることが出来ます。

そのため、以下の様なスクリプトによって、FlashAirに対してSDカード接続を一切無しで
Wi-Fiのみから、アップロード、最終的にはLua編集環境の導入(ページ下部のzip版)まで
出来てしまいます。

ただし、FlashAirを設定するためのマスターコードが必要なので、
この手法は、マスターコードが既知であるか、もしくは初期化直後で設定されていないFlashAirに対してしか使用できないため、
セキュリティ脆弱性となる可能性は低いと考えています。

---


以下のバッチファイルを実行します。
実行にはcurl.exeが必要です。

シェルスクリプトで実行すればmacやLinuxからでも可能だと思います

フォーマットされたFlashAirか、CONFIGを削除したFlashAir、
もしくはマスターコードをAA55AA55AA55にしたFlashAirが必要です。

---run.bat---
@echo off

echo FlashAirに接続せよ
pause

echo MASTERCODE...
curl "http://192.168.0.1/config.cgi?MASTERCODE=AA55AA55AA55"
echo.

echo WEBDAV...
curl "http://192.168.0.1/config.cgi?MASTERCODE=AA55AA55AA55&WEBDAV=2"
echo.

echo FlashAirを再起動し、再接続せよ
pause

echo UPLOAD SCRIPT...
curl http://192.168.0.1/run.lua -X PUT -d "f = io.open('SD_WLAN/CONFIG','a+');f:write('UPLOAD=1\r\n');f:close();print 'OK';"
echo.

timeout /T 3 >NUL

echo RUN SCRIPT...
curl "http://192.168.0.1/run.lua"
echo.

echo FlashAirを再起動し、再接続せよ
pause

explorer http://192.168.0.1/upload.cgi
pause


---

追記: curlのバイナリファイル送信機能を使って、FTLEをまとめたtarと、
 tar解凍Luaスクリプトを送り込んで実行させたら、Wi-FiのみでFTLEの環境準備ができました。
 FTLEには、各CONFIG書き換えセットアップ機能があるので、UPLOADやIFMODEも設定できますし、
 エディタ機能で書き換えもできます。

動作の保証はしません。curl.exeが必要です。
https://sites.google.com/site/gpsnmeajp/ONLYWiFiFTLE.zip

0 件のコメント:

コメントを投稿