LINEデータベース「talk.sqlite」のテーブル解析

Digital Forensic Artifacts Research: Forensic artifacts in LINE instant messaging app (iOS version)

2012年12月当時にLINEのtalk.sqliteを解析した人がいたようです。



そういえば、購入していないスタンプを使おうとすると送信エラーになりました。
でも使おうとしたスタンプの画像は取れました。
スタンプID等はZSTICKERPACKAGEにあります。

「Super Planet Crash」ランキングの人が明らかにチート

f:id:shutingrz:20140416212524p:plain


GIGAZINE様で紹介されているこの記事
星を配置して星系を見守るシミュレーションゲーム「Super Planet Crash」 - GIGAZINE

このフラッシュゲーム。
Super Planet Crash - Can you feel the gravity?

ランキングを見るとこんな感じ。(4/15 21時現在)
f:id:shutingrz:20140416212734p:plain

スコア、499,999,999なんですよ。
どんな置き方したんだよと思ってランキングのリンクから1位のリプレイを見たんですね。


f:id:shutingrz:20140416214845p:plain
http://www.stefanom.org/spc/index.php?view=2286666
途中で終わってる
しかも最終スコアとランキングスコア全然違う。



気を取り直して3位の人のリプレイも見たら。
f:id:shutingrz:20140416215445p:plain
初期状態。


まあこりゃあランキングのデータがおかしいんだなと考え、
自分でも適当にゲーム進めてスコア送信してFirebugでPOSTデータ見たらご名答。
f:id:shutingrz:20140416215639p:plain
やろうと思えばすぐ任意のスコア送れる。



P.S.運営側も明らかにおかしいスコアデータは随時ランクから消してるみたいです。
f:id:shutingrz:20140416220726p:plain
(ほとんどの異常なスコアが一掃されてる)


以上。

【Part2】「先着1000名様!ゲームクリアで必ず山田さんの缶車プレゼント!」を"必ず"ゲームクリアしてみる

f:id:shutingrz:20140228224944p:plain


「先着1000名様!ゲームクリアで必ずFun!Fun!ピンク缶!プレゼント!」を"必ず"ゲームクリアしてみる - !#
↑の、前のイベント時に書いた記事と仕様が全く変わっていないです。


簡単に解析結果を書いておくと、以前と変わらず、

・スロットが当たる確率は1/2000で、リーチの確率は350/1500(約1/4)です。
・以前のスロットとヒミツの番号は以前と同じ番号です。

また、システムは以前と一切変わっていないので前の記事と同じ手法が使えます。


P&Gさんにメールで報告までしたのに結局何も変えないんですね〜。


以上。

皿打だ!クリアだ!

f:id:shutingrz:20140212014155p:plain
Flashタイピング【皿打】

次は皿打のクリアデータについて簡単に。
Flashで保存されています。パスは(Macの場合は)
/Users/ユーザ/Library/Preferences/Macromedia/Flash Player/#SharedObjects/DFKM4NEJ/neutralx0.net/sarada
のsr.solファイル。WindowsでもFlashのフォルダ漁れば出てくると思います。

データの中身は

00BF000000FA5443534F0004000000000002737200000000000468617264003FF00000000000000000086D61787374616765020007312C312C312C310000096D617873636F72653102000F302C302C302C302C302C302C302C300000096D617873636F72653202000F302C302C302C302C302C302C302C300000096D617873636F72653302000F302C302C302C302C302C302C302C300000096D617873636F72653402000F302C302C302C302C302C302C302C300000036F7031003FF00000000000000000036F70320040000000000000000000036F7033003FF00000000000000000036F7034003FF00000000000000000036F703500400000000000000000

よくわからないのでバイナリエディタで確認。

f:id:shutingrz:20140212014332p:plain

ひと目で見てわかりますね。
maxstageの後の1,1,1,1は、Easy,Normal,Hard,Specialの順で解禁しているステージです。
各レベルの最大ステージは8ですが、8までクリアするとエンディングが見られるので、
全ステージクリアしたときの値は9となります。

maxscore1からmaxscore4までももう明らかですね。各難易度の各ステージの最高得点です。

op1からop5は、
f:id:shutingrz:20140212014913p:plain
このオプションの上から順に対応してます。
左を選択している場合はデータ内では0x3F、右を選択している場合は0x40となります。

こんな感じかなー。今回は簡単ですね。

寿司打だ!!スコアだ!!

f:id:shutingrz:20140130135450j:plain寿司打のランキングシステム。
普通・3000円コースで確認。たぶんほかのモードでもできる。



タイピングが終わった後、リザルト画面にて、
http://neutral.x0.com/home/sushida/cgi/ip.cgi
宛てにパラメータ、

1=

をつけてPOSTされる。
レスポンスには、

ip0=[自ISPのIPアドレス]
host0=[自ISPのホスト名]
ip= "ip:+"+ ip0 +" host:"+ host0

が返される。


次。
リザルト画面にて、ランキング登録ボタンを押し、名前を入力し、送信ボタンを押したとき、
http://neutral.x0.com/home/sushida/cgi/rank/rank.cgi
宛てにパラメータ、

1=
ad=
aday=
chkkana=§¨©ª«¬­®¯±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖܦÝÞß
d=
dc=0
dd=
er=
fla=fromflash
host0=[上記のhost0]
i=52
ip=[上記のip]
ip0=[上記のip0]
lvl=[各難易度の値]
mode=[各コースの値]
mySO=[object Object]
name=[送信時に決めた名前]
name2=[送信時に決めた名前(nameと同じ)]
ngflag=0
ref=http://typing.sakura.ne.jp/sushida/
result=[お得になったお金(つまりランキングのスコア)]
result1=[タイプ数]
result2=[平均タイプ数]
result3=[ミスタイプ数]
result_r=
resultr=
setDat=[type Function]

をつけてPOST。

lvlは、
1 => 練習
2 => 普通
3 => 正確重視
4 => スピード必須
5 => 一発勝負
と、値によりランキングに登録する難易度を変更できる。

modeは、
1 => 3000円コース
2 => 5000円コース
3 => 10000円コース
と、値によりランキングに登録するコースを変更できる

mySO,setDatパラメータはそれぞれ、
"[object Object]","[type Function]"という文字列。間違えないように。



レスポンスには、

result_r=[ランク]位 / [全体]人中&resultr=[ランク]位 / [全体]人中&fnum=[ランク]&fzyuni=[ランク]&saikou=[後述]&dum=1

が返る。
これで任意のランキングに任意のスコアを登録できる。

[ランク]はスコアに応じた自分の順位。数値。
[全体]は登録した難易度、コースのランキングの全体のランカーの数。数値。
result_rとresultrは同じ数値が入る。なぞ。
fnum,fzyuniは、自分の順位、つまり[ランク]と同じ値が入る。
saikouは、初めてランキングに登録した場合、0が入る。
初めてではない場合、今までの最高順位が入る。
例: = [ランキングのスコア]円([ランク]位)





以上。
悪用厳禁(お約束)。

mixiの脆弱性を報告したら10万円分のAmazonギフト券貰った

タイトル詐欺。
正確にはmixiプラットフォーム上のmixiゲーム「ふにゃもらけ」のゲーム内通貨が増やせる脆弱性
修正は1ヶ月以上前に終わっているので載せても大丈夫だろう!!

mixi脆弱性報告制度を導入していて、脆弱性の影響度、深刻度により定められた報酬額をAmazonギフト券という形で支払っている。
https://developer.mixi.co.jp/inquiry/security/


f:id:shutingrz:20131225180536j:plain
4コマ漫画を見ることで1日1回10K(クラゲマネー)が貰えるけど、この脆弱性を利用すれば何回でも10K貰える。
脆弱性としてはあるあるなものだったけど、影響範囲が大きいし、比較的人気なゲームなこともあってギフト券をくれたのかな?



脆弱性としてはこんなもの。


mixiゲーム、ふしぎな生き物 ふにゃもらけ
http://mixi.jp/view_appli.pl?id=9443&area=category_list

における、ゲーム内通貨であるクラゲマネーが、ある操作によって無尽蔵に増やせる脆弱性


ターゲットとなるコンテンツは、「4コマを見て10Kゲット!」コンテンツです。
4コマのページ、
http://mixi.jp/run_appli.pl?id=9443&appParams={%22mode%22%3A%22fourkoma%22}
内の「ボーナス10Kゲット!」リンク
http://funya-mixi.appspot.com/bonus_4koma
で送信するパラメータに起因します。

このパラメータは、
user_id=[mixi内部ユーザID]
date=[ある法則で算出されbase64と思われるエンコードがされた値]
req_id=[恐らくリクエストを管理する値]

の3つがありますが、dateのパラメータを変更するだけでいくらでも10Kをゲットすることができました。

実証した際のURLパラメータがこちらです。

http://funya-mixi.appspot.com/bonus_4koma?user_id=[ユーザID]&date=8k0Anj3GxycUsaFFwkVErg%3D%3D&req_id=57070648

上記のURLは、正規の手続きを踏んだURLです。

以下6つのURLは、dateパラメータ、
「8k0Anj3GxycUsaFFwkVErg%3D%3D」
の%3D%3Dの前の「g」を「h」「i」「j」「k」「l」「m」に変更して送信した際のURLです。


http://funya-mixi.appspot.com/bonus_4koma?user_id=[ユーザID]&date=8k0Anj3GxycUsaFFwkVErh%3D%3D&req_id=57070648

http://funya-mixi.appspot.com/bonus_4koma?user_id=[ユーザID]&date=8k0Anj3GxycUsaFFwkVEri%3D%3D&req_id=57070648

http://funya-mixi.appspot.com/bonus_4koma?user_id=[ユーザID]&date=8k0Anj3GxycUsaFFwkVErj%3D%3D&req_id=57070648

http://funya-mixi.appspot.com/bonus_4koma?user_id=[ユーザID]&date=8k0Anj3GxycUsaFFwkVErk%3D%3D&req_id=57070648

http://funya-mixi.appspot.com/bonus_4koma?user_id=[ユーザID]&date=8k0Anj3GxycUsaFFwkVErl%3D%3D&req_id=57070648

http://funya-mixi.appspot.com/bonus_4koma?user_id=[ユーザID]&date=8k0Anj3GxycUsaFFwkVErm%3D%3D&req_id=57070648


これによって7回の送信、つまり70Kを得ることが出来ました。


上記の脆弱性による影響をmixi脆弱性報告制度の指標に則ってまとめてみると、


脆弱性によって可能になるデータ操作(取得、削除など)

→取得


・影響を受けるデータの範囲(全データ、重要なユーザデータなど)

→ゲーム内通貨データ


・影響を受けるデータの所有者(自分、自分以外)

→内部ユーザIDパラメータを変更すれば自分以外でも変更可能なはず。


・影響を受けるユーザ数

→全ユーザ


・攻撃が成立するために、ユーザの操作が必要か否か

→URLを踏むだけで可能。


・攻撃が成立するために、攻撃用アプリケーションのインストールが必要か否か

→不要。




この旨を記述したメールを10月下旬に送ったら、すぐさま修正され、12月24日に報酬額であるAmazonギフト券10万円を貰った。
報酬額からしてmixiの定める、
「変更できるべきではない、自分の重要なデータを変更し、チート行為が可能 10万円」
に当たったのではないかな〜と思う。

みんなもmixiをよりセキュアにして報酬額を貰っちゃおう♪


以上。