Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

書き込み仕様変更について #2

Open
onihusube opened this issue Mar 24, 2022 · 54 comments
Open

書き込み仕様変更について #2

onihusube opened this issue Mar 24, 2022 · 54 comments

Comments

@onihusube
Copy link
Owner

onihusube commented Mar 24, 2022

X-PostNonce: 現在のunix時間
X-MonaKey: 書き込み確認画面のレスポンスヘッダにある
X-PostSig: リクエストボディとかのハッシュ?

一番最初の書き込みは
X-MonaKey: 00000000-0000-0000-0000-000000000000
で投げて
書き込み確認のレスポンスが帰ってくるからそのヘッダにある
X-MonaKey: ???
を使って改めて書き込み
そしてX-MonaKeyを保持して次からの書き込みに使い回す
X-MonaKeyの寿命は604800秒(一週間)
荒らすとそのX-MonaKeyがBANされて書き込み不可に
ってとこか
X-PostSigの算出が分かれば解決しそう
APIってより書き込みの際のbbs.cgiのヘッダを変えただけかな
webブラウザからはどうするんだろ

@onihusube
Copy link
Owner Author

onihusube commented Mar 26, 2022

とりあえずEn2chを使ってアルゴリズムはわかった

板名<>dat番号<>UinxTime<>名前<>メール<>本文<>空<>ユーザーエージェント<>MonaKey<>空<>Nonce(UnixTime + ".000")

っていう文字列をEn2chから取り出した秘密鍵でHmacSHA256でハッシュすれば署名通って書き込めた
MonaKeyは専ブラを再インストールしたり1週間で変わるとか言われてるやつで署名なしで書き込もうとするとレスポンスヘッダに付いてくる
空のところはEn2chにはないお絵描きとかBe番号とかかなのかもしれない

ChMateの秘密鍵も探してみる

@onihusube
Copy link
Owner Author

F7vFm
WCGd5
Gzs8hc03
NpRvw4
bPwMz3

@onihusube
Copy link
Owner Author

◆UserAgent(例)
Monazilla/1.00 2chMate/0.8.10.153 Dalvik/2.1.0 (Linux; U; Android 10; Pixel Build/QP1A.191005.007.A3)

◆X-2ch-UA
2chMate/0.8.10.153

◆X-ApiKey
8yoeAcaLXiEY1FjEuJBKgkPxirkDqn

◆HMKey
>>111-115

書き込みのApiKey, HMKeyは
DAT読み込みのAppKey, HMKey
としても使えるっぽいな

onihusube added a commit that referenced this issue Mar 30, 2022
2chMateのものとされているキーで確認、ヘッダも少しカスタム
Monakeyの寿命管理してないなどとりあえずの対応
@onihusube
Copy link
Owner Author

onihusube commented Mar 30, 2022

大変参考にした🙏

C#版はだいたいこんな感じ?

実際には

  • ポストするエンコードとハッシュを求めるときのエンコードを合わせる
  • MonaKey更新時は書き込みますか?の画面が帰ってくるらしい
    • なので、自動リトライとかは専ブラに任せればよさげ?
  • MonaKey取得後、速攻で書き込むと早すぎるといわれる
    • 1秒でもまだ早い、今は5秒で行けてる
    • https://egg.5ch.net/test/read.cgi/software/1623141723/793

      そういえば、新仕様の専ブラは定期的に書き込み前の警告を5秒ほど強制表示するようになったから
      MonaKey発行の時はその秒数ぐらい待たないといけないとかあるかも(あてずっぽ

  • 成功した時は、レスポンスヘッダにX-Chx-Errorヘッダはないらしい

@onihusube
Copy link
Owner Author

0000 Set cookies;
1000 Post date is invalid;
1011 Thread is not alive;
6990 MultiPost1;
9804 Banned by Oven;
6970 Landfill1;
9911 Banned;
9999 Not yet;

(そんな前からあったのか

@onihusube
Copy link
Owner Author

onihusube commented Mar 31, 2022

そのほか見たやつ

  • X-Chx-Error:0001 Confirmation phase;
  • X-Chx-Error:6200 Invalid RONIN SID;
  • X-Chx-Error:6902 CoPiPe;
  • X-Chx-Error:8853 Detect invalid proxy.
  • X-Chx-Error:8903 Rejected;
    • ただ今制限を設けております。
  • X-Chx-Error:9801 Posting is so fast.
  • X-Chx-Error:E3000 Broken request header.;
  • X-Chx-Error:E3304 Invalid API key.;
  • X-Chx-Error:E3331 Invalid signature.
    • 署名が一致しません。
  • X-Chx-Error:E3310 Invalid key.
    • 鍵が無効です。
  • X-Chx-Error:E3324 Expired key.;
    • 鍵の有効期限が切れています。
  • X-Chx-Error:E3390 Unavailable key.;

スレで見かけたやつ(真偽は不明、一応)

  • X-Chx-Error : 9100 Banned. Go news4vip;
  • X-Chx-Error : 6202 Can not get RONIN SID: NoUnpad;
  • X-Chx-Error : 1030 Thread is stopped;
  • X-Chx-Error : E3381 No key has been issued.;
  • X-Chx-Error : E3392 Key has been lost.;
  • X-Chx-Error : E3391 Key has expired.;

@onihusube
Copy link
Owner Author

正常に得られたMonakeyを改変(最下位桁を+1)して送ったところX-Chx-Error:E3310 Invalid key.が得られた。

初期値は000のやつじゃないとだめっぽい?

@onihusube
Copy link
Owner Author

onihusube commented Apr 7, 2022

同じ板でもスレによって書き込めたり署名が一致しません。って出たりするな

昨日以前の取得したスレではエラーでるけど
その場合はスレのログ削除して新たに取得したらエラー一切でないわ

他のブラウザでそのスレに書き込んでたり、キーを変えて書き込むとそうなるみたい

あーもしかして、一度新仕様で書き込みを試みていた(書き込めなかった)状態でUAとかを設定し直すとこうなる?
なんか状態あったっけ・・・

@onihusube

This comment was marked as resolved.

@onihusube
Copy link
Owner Author

onihusube commented Apr 9, 2022

未確認(少なくともSID取得は問題なかった、一部はdat取得もできた)

これってほんもの?

UA: Monazilla/1.00 JaneStyle_Android/2.3.1 Dalvik/2.1.0 (Linux; U; Android 10; Pixel Build/QP1A.191005.007.A3)
AppKey: vIyNd18OvKKeRkMmBUqqtEsdLuA8hh
HMKey: EowMzHCOOQVJ3xQCfU9iyLu6MwRCN1

UA: Monazilla/1.00 2chGear/1.1.3 Dalvik/2.1.0 (Linux; U; Android 10; Pixel Build/QP1A.191005.007.A3)
AppKey: hmCELmps15cHN8mL7viOH23nH24EwP
HMKey: fOOxqHdfCactc639EMjCF1mUAkG1Lx

UA: Monazilla/1.00 En2ch/1.4.21 Dalvik/2.1.0 (Linux; U; Android 10; Pixel Build/QP1A.191005.007.A3)
AppKey: CD59oXlsHKztxozKg3m33RsIvCwghQ
HMKey: ZqFSgmJt3GXBVoa90QTVftqwODjR0E

UA: Monazilla/1.00 Ciisaa/1.71 Dalvik/2.1.0 (Linux; U; Android 10; Pixel Build/QP1A.191005.007.A3)
AppKey: 1n0gDnwQE6st8KPj1qD7dKEWubpp1N
HMKey: 3Op2jFmeYpcMfuDwnV8OtXmKu6n8oL

@onihusube
Copy link
Owner Author

今来た人用
書き込みの1回目で「制限を設けております」、2回目で「鍵が無効です」となるのは、UserAgentが規制されたから
2chMateのUAの末尾が(Linux; U; Android 10; Pixel Build/QP1A.191005.007.A3)となっているものが規制された
あまりに多くの人が使いすぎたから

UAの末尾の部分を適当に変えるだけで回避できる。実在しないものでもよい。実在するものの例は>>634
一つのものを大勢の人が使うとまた規制される可能性があるので適当にでっち上げたものを使うのがよい

@onihusube
Copy link
Owner Author

onihusube commented Apr 10, 2022

書き込めない理由はわかったで
書き込み時に本家のChMateはX-2ch-UAがリクエストヘッダに設定されるけどこのソフトでは設定されないからや

取り敢えず本家はこんな感じ
https://pastebin.com/UjCyrwPJ

それがこのプロキシで

こういう設定をしたときは
https://pastebin.com/69uVF6VW

こうなってる
https://pastebin.com/R1zsBqbJ

本家のリクエスト文に完全に成りすませばプロキシにたいする規制は理論上不可能

@onihusube
Copy link
Owner Author

署名が一致しません。はまったやつ原因メモ

書き込みUA等のPostSig計算にかかわるものをUAから設定する(コピペしてくる)時、末尾にホワイトスペースがついてる。

ヘッダで送るときは末尾のホワイトスペースは消されるため、PostSig計算時と文字列が変わる。

@onihusube
Copy link
Owner Author

onihusube commented Apr 11, 2022

Torにあったけど使える?
https://pastebin.com/9VHdefF2

AppKey: a6kwZ1FHfwlxIKJWCq4XQQnUTqiA1P
HMKey: ZDzsNQ7PcOOGE2mXo145X6bt39WMz6
X2chUA(SID): JaneStyle/4.23
X2chUA(Get): (None)
X2chUA(Post): (None)
UA(SID): Monazilla/1.00 JaneStyle/4.23 Windows/10.0.22000
UA(Get): Monazilla/1.00 JaneStyle/4.23 Windows/10.0.22000
UA(Post): Monazilla/1.00 JaneStyle/4.23 Windows/10.0.22000

AppKey: vIyNd18OvKKeRkMmBUqqtEsdLuA8hh
HMKey: EowMzHCOOQVJ3xQCfU9iyLu6MwRCN1
X2chUA(SID): (None)
X2chUA(Get): (None)
X2chUA(Post): (None)
UA(SID): Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)
UA(Get): Monazilla/1.00 JaneStyle_Android/2.3.1 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)
UA(Post): Monazilla/1.00 JaneStyle_Android/2.3.1 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)

AppKey: 8yoeAcaLXiEY1FjEuJBKgkPxirkDqn
HMKey: F7vFmWCGd5Gzs8hc03NpRvw4bPwMz3
X2chUA(SID): 2chMate/0.8.10.153
X2chUA(Get): 2chMate/0.8.10.153
X2chUA(Post): 2chMate/0.8.10.153
UA(SID): Monazilla/1.00 2chMate/0.8.10.153 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)
UA(Get): Monazilla/1.00 2chMate/0.8.10.153 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)
UA(Post): Monazilla/1.00 2chMate/0.8.10.153 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)

AppKey: hmCELmps15cHN8mL7viOH23nH24EwP
HMKey: fOOxqHdfCactc639EMjCF1mUAkG1Lx 
X2chUA(SID): Monazilla/1.00 2chGear/1.1.3 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)
X2chUA(Get): (None)
X2chUA(Post): (None)
UA(SID): DOLIB/1.00
UA(Get): Monazilla/1.00 2chGear/1.1.3 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)
UA(Post): Monazilla/1.00 2chGear/1.1.3 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)

AppKey: 1n0gDnwQE6st8KPj1qD7dKEWubpp1N
HMKey: 3Op2jFmeYpcMfuDwnV8OtXmKu6n8oL 
X2chUA(SID): Ciisaa/1.71 (A)
X2chUA(Get): (None)
X2chUA(Post): (None)
UA(SID): DOLIB/1.00
UA(Get): Monazilla/1.00 (Ciisaa/1.71 (A))
UA(Post): Monazilla/1.00 Ciisaa/1.71 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)

AppKey: CD59oXlsHKztxozKg3m33RsIvCwghQ
HMKey: ZqFSgmJt3GXBVoa90QTVftqwODjR0E
X2chUA(SID): En2ch/1.4.21
X2chUA(Get): (None)
X2chUA(Post): (None)
UA(SID): Monazilla/1.00 En2ch/1.4.21 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)
UA(Get): Monazilla/1.00 En2ch/1.4.21 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)
UA(Post): Monazilla/1.00 En2ch/1.4.21 Dalvik/2.1.0 (Linux; U; Android 10; Pixel 5 Build/SP2A.220305.012)

@onihusube
Copy link
Owner Author

自分で解析した JaneStyle/4.22 のリクエスト文を上げておきます
また書けなくなったときの参考にどうぞ

https://pastebin.com/2nLSwx4N

@onihusube
Copy link
Owner Author

これってほんもの?

Live5ch 1.59
AppKey: HnNrwoBmZhuS2Iy7XcfKcNjXWbStay
HMKey: Mw1lAicafV2JFefaoBURwgMJ7IqfvM

@onihusube
Copy link
Owner Author

@onihusube

This comment was marked as resolved.

@onihusube

This comment was marked as resolved.

@onihusube

This comment was marked as resolved.

@onihusube

This comment was marked as resolved.

@onihusube
Copy link
Owner Author

onihusube commented May 4, 2022

>>654
参考までに…
https://pastebin.com/8Ekw3cm4

2chGearのpost時ヘッダ

feature=confirmedってなんや・・・

@onihusube
Copy link
Owner Author

@onihusube
Copy link
Owner Author

onihusube commented May 7, 2022

トランスポートのコネクションは一致させれないの?

BoardSettings.yamlのKeep-AliveをfalseにするとConnectionの行自体が消えるな

これとかヘッダ順序とか、HTTPWebRequestを使わないようにしないとダメそう

Fiddlerにリクエストをやってもらうのがよさそうだけど、今は何でそうしてないんだっけ・・・

@onihusube
Copy link
Owner Author

onihusube commented May 8, 2022

20連投すると
鍵が失効しています
IP変えたら書ける
もしくは串ではないJaneからIP変えなくても書き込める

20連投じゃなくて5回Monaキー再取得のほうかな
5連投でUA替えてるから5回目でアウト

俺の見立て
短時間に連投もしくはMonaキー取得を繰り返し行うとIPアドレスが要注意リストに載り
5回目の再取得で鍵が失効

その目をつけられてしまったIPからのMonaキー取得は
JaneStyleで1回目の取得であっても5回目扱いとなり鍵が失効する

IPアドレスがブラックリスト(≠BBX)に載らない程度のもっさり連投だったんだろう
45秒で5連投して4分以内に5回目のMonaキー再取得を行うくらいの連投じゃないと

IPアドレスがブラックリスト(≠BBX)に載るレベルの(45秒で5連投)書き込みを行い
Monaキー取得を繰り返し行うとIPアドレスが要注意リストに載り
5回目の再取得で鍵が失効

その目をつけられてしまったIPからのMonaキー取得は
JaneStyleで(クッキー削除して)1回目の取得であっても5回目扱いとなり鍵が失効する

VPN探してて既に他の人によってこれにされてしまっているIPを使った時、
串が原因かといろいろ設定変える無駄が減る

前スレでpovo2.0で再現できなって言ったけどさっき書き込んだスレを確認したら勝手にIDがコロコロしてた

今はコロコロしなくなったからまた試したら、確かに短時間に何回も鍵を更新すると、そのIPには5回目からは失効した鍵しか渡されなくなった

@onihusube
Copy link
Owner Author

色々と実験をして「ERROR: 不正取得を検出しました」を出す事に成功した
IPを変えれば回避できる

>>639
多分6時間くらいで解除される気がする

@onihusube
Copy link
Owner Author

>>186
俺も今PCから書き込むと串規制(101)が出て書けないんだよね
有志がpastebinに貼ってくれた例のUAとKEYだと書けなくなってるんだろうけど代わりのが見つからんから詰んでるわ
どうしたら良いんだ

AppKeyとHMKeyそのままで書き込み用UAを実在のものに変えてもダメだね
参ったわ
8853 Detect invalid proxy.; って出る

PCから来たID:QNOehZwI0だけど書けたわ、原因が分かった
恐らく運営側は今「独自のUserAgent」を持ってる書き込みを規制してるんじゃないか?
みんな↓みたいなUA設定してるでしょ?

Monazilla/1.00 BROWSER_NAME/BROWSER_VERSION Dalvik/2.1.0 (Linux; U; Android 10; XXX/YYY)

これのXXX/YYY部分だけ変えてCookie削除したら書き込めた、それ以外は一切弄ってない
逆に言うとこのXXX/YYY部分で汎用的な機種名の入ったUA使ってない場合、悪目立ちして規制されることがあるっぽい
俺は「Chinko Build/454545.191919」とかにしてたから不興を買ったのかも知れん

なるほど(ちょっと笑ったw

@onihusube
Copy link
Owner Author

Monakey再取得し過ぎによる「ERROR: 不正取得を検出しました」への対策は
書き込める設定+Monakeyが記載されたバックアップしておくべきsetting.xmlをまだ所持したことが無い者にとってはIP変えるしかないのが現状なのかな

既に「ERROR: 不正取得を検出しました」が出されたIPで
有効なMonakeyを新たに5chから発行してもらえるようになる条件が
そのIPに対する既存の有効なMonakeyの自然失効だとしたら実質2週間規制?

2日待ったら解除されたよ

@onihusube
Copy link
Owner Author

■鍵(MonaKey)について

5chは2022年3月から専ブラ用にAPI経由の新しい書き込み方式(以下、新方式)が導入され、JaneStyleはv4.20以降で対応した
従来の書き込み方式(以下、旧方式)は移行期間を経て2022年4月未明に停止された模様

新方式では専ブラがインストールされた各クライアント環境毎にユニークな鍵(MonaKey)が5chから発行され、書き込み時の認証に使用される
鍵(MonaKey)には有効期限(現状で1~2週間)があり、定期的に更新の為の同意が求められる
5ch側は規制として鍵(MonaKey)をBANする事が出来、BANされた鍵(MonaKey)では書き込みが拒否される

■鍵(MonaKey)関係の主なエラーメッセージ

・「ERROR: 鍵の有効期限が切れています。」
 →1~2週間で発生。[同意]をすれば鍵が更新される。

・「ERROR: 鍵が失効しています。」
 →何らかの理由で鍵が失効している。[同意]をすれば鍵が更新される。

・「ERROR: 鍵が一致しません。 」
 →何らかの理由で鍵が合わず使えない。[同意]をすれば鍵が更新される。

・「ERROR: 鍵が無効です。 」
 →鍵が規制でBANされている。規制解除を待つか鍵の削除が必要。

・「ERROR: 不正な取得を検出しました。」
 →鍵の取得を同じIPで短時間に繰り返すと発生。IPが規制されている。規制解除を待つかIPの変更が必要。

@onihusube
Copy link
Owner Author

ソフトウェア板でRock54
Mango板で確認しようとしたら ERROR: 不正取得を検出しました
nonceの設定間違ってたがそれまでは普通に書けてた
IP変更とnonceの設定正したら復帰出来た
NGWordとか他の何かの規制に引っ掛かると不正な串判定をチェックされるのか或いは板に依るのか
全てで厳密なチェックはしていないみたいね

@onihusube
Copy link
Owner Author

En2chだと不正な串。色々試してみた
https://pastebin.com/Y8uLnhmf
コレによると Accept-Encoding ヘッダが無い
yamlでは消してあるのに付加されてしまってる gzip
nonce ミリ秒有り無しも試してみたけどダメ
ミリ秒 .000 固定なら専用対応が必要なのかも
どちらが要因なのかは分からないけどログから見れる違いはその2つくらい

>>837
スレ立て出来無いっぽいですね~^^;
でも本家で出来無いスレ立て出来たら面白そう

@onihusube
Copy link
Owner Author

onihusube commented Jun 3, 2022

とりあえずiOS版のjanestyleの通信キャプチャしたけどAPIKeyしかわからないし、できる人いるならHMKey解析して

Connection:keep-alive
Host:agree.5ch.net
Accept-Language:ja-JP;q=1
Content-Type:application/x-www-form-urlencoded
Accept-Encoding:gzip, deflate, br
X-MonaKey:省略
Accept:*/*
User-Agent:Monazilla/1.00 JaneStyle_iOS/2.7.7.1 iOS15.4.1 iPhone10,1
X-APIKey:3VR1n0X53THKErNL07ex5bL3Hm33dt
X-PostNonce:1654262422.471
Content-Length:129
Referer: http://agree.5ch.net/test/read.cgi/operate/1652610044/
X-PostSig:c15fec69e9dc171b81b9e59b6e13027f30f6f4e91795c23e1ac666592f200f34

これが>>930のフィールド

FROM=&MESSAGE=test&bbs=operate&feature=confirmed&key=1652610044&mail=&submit=%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80&time=1654262422

@onihusube
Copy link
Owner Author

onihusube commented Jun 5, 2022

最新バージョンはリクエストボディにfeature=confimedが追加されるようになってるからこれが本家にはなくて検知される
取り敢えず一個前のバージョンに戻せば書ける

鍵を捨てて書き込みボタンを押して確認画面を通過して書き込みするとfeatureが付いたリクエストが送られるのでブロックされる
そこからもう一回書き込むと鍵が無効になってるのでそもそも書き込めない

そこでまた鍵を捨てて今度は確認画面を通過したあとの再書込みのリクエストをfiddlerのリクエスト書き換えるとfeatureを消して書き込むともちろん書き込める

そして2回目以降は最初からfeatureが入ってないリクエストがapi串で生成されるようになるので何も書き換えずに書き込める

これは最新バージョンでも前のバージョンでも同じだった

これxeroの生リクエスト自体が状況に応じてfeatureついたり付かなかったりしててそれが串のリクエストにも反映されてるっぽい
あとviewだと更新からの初書き込みフィーチャー付かなかないな

>>46
かも知れない
ただ前スレのやり取りを見てるとxenoとか特定のブラウザが付けるパラメーターに問題があるかもという事なので使っている専ブラによっては起こらないかも
ちなみにこの書き込みはdetourで作ったmonakeyを2chproxyのsetting.xmlに設定して書き込んでいる
最初のmonakey取得プロセスさえクリアすれば使える

@onihusube
Copy link
Owner Author

試してみてください🙏

2chAPIProxy test.zip

@as123414
Copy link

as123414 commented Jun 5, 2022

なおりました

@onihusube
Copy link
Owner Author

onihusube commented Jun 5, 2022

>>52
使ってみたけど駄目だったね

>>53で駄目だったって書いたけど
「不正取得を~」ってエラーが出た後に串を再起動させたら書き込めました

@onihusube
Copy link
Owner Author

現在の状況まとめ
0528でGUIの設定とyamlを正しく設定すればEn2ch以外の全てのKeyで書ける (ソフトウェア板のテストスレで確認)
Xenoは0528にissueの「書き込み仕様変更について」で公開されてるtest版zipの中のexeを上書きすれば書けるようになる
それ以外の「書けない」は正しく設定出来ていないか以下の規制に巻き込まれている
【速報】5ch全板、AndroidとiPhoneから書き込めなくなる「鍵が無効です」
http://hayabusa9.2ch.net/test/read.cgi/news/1654419782/

BANの種類にも依るが、UAの機種やOSのバージョン部分を有効なモノに変えてMonakeyを更新すれば書けるようになるはず
不正取得に掛かっていたらipの変更も必要
Monakeyのリセットは自動でやってくれるので設定ファイルから手作業で消したりする必要は無い
ip変えられない人は規制解除まで大人しく待つしかない

@onihusube
Copy link
Owner Author

荒らした板でUA規制

書き込むと

制限されています

鍵無効

別の板で書き込んで再取得

別の板で書ける

荒らし板

制限されています

鍵無効

IPは一切変えず

@onihusube
Copy link
Owner Author

4/1 新仕様に対応しない専ブラのUAが死亡

4/3 新仕様に対応する専ブラの最後の旧仕様バージョン以外のUAが死亡

4/6 全ての専ブラの旧仕様のUAが死亡

4/8 新仕様への対応が間に合ってないBB2CのUA(旧仕様)が特例で復活

4/13 新仕様に対応した全ての専ブラの旧仕様のUAが復活

4/16 全ての専ブラの旧仕様のUAが再び死亡

7/26 新仕様に対応した全ての専ブラの最新バージョン以外のUAが死亡 [New]

@onihusube
Copy link
Owner Author

Live5ch/1.59 (スレ立て)

POST http://egg.5ch.net/test/bbs.cgi HTTP/1.1
Proxy-Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded; Charset=shift_jis
Accept: */*
Cookie: NAME=; MAIL=sage
Referer: http://egg.5ch.net/software/
User-Agent: Monazilla/1.00 Live5ch/1.59 Windows/10.0.22000
X-PostSig: 71539a5e85f21a30958fb45a1379abcd********************************
X-APIKey: HnNrwoBmZhuS2Iy7XcfKcNjXWbStay
X-PostNonce: 1659596387.489
X-MonaKey: 1c232433ec64dadfadf6d944e12b32fg********************************
Content-Length: 132
Host: egg.5ch.net

subject=test&submit=%90%56%8B%4B%83%58%83%8C%83%62%83%68%8D%EC%90%AC&FROM=&mail=sage&MESSAGE=test&bbs=software&time=1659596387&sid=

色々と修正して取得し直したので上げ直し

HOST /test/bbs.cgi HTTP/1.1
Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded; Charset=UTF-8
Accept: */*
Cookie: NAME=; MAIL=
Referer: http://egg.5ch.net/test/read.cgi/software/16595*****/
User-Agent: Monazilla/1.00 Live5ch/1.59 Windows/10.0.22000
X-PostSig: 81539a5e85f21a30958fb45a1379abcd********************************
X-APIKey: HnNrwoBmZhuS2Iy7XcfKcNjXWbStay
X-PostNonce: 1659596387.489
X-MonaKey: 0c232433ec64dadfadf6d944e12b32fg********************************
Content-Length: 132
Host: egg.5ch.net

subject=test&submit=%90%56%8B%4B%83%58%83%8C%83%62%83%68%8D%EC%90%AC&FROM=&mail=sage&MESSAGE=test&bbs=software&time=1659596387&sid=

@onihusube
Copy link
Owner Author

onihusube commented Aug 31, 2022

■書き込みOK
Monazilla/1.00 JaneStyle/4.23 Windows/10.0.22000
Monazilla/1.00 JaneStyle/4.24 Windows/10.0.22000
Monazilla/1.00 2chMate/0.8.10.153 Dalvik/0 (Linux; U Android 0)
Monazilla/1.00 2chMate/0.8.10.154 Dalvik/0 (Linux; U Android 0)
Monazilla/1.00 2chMate/0.8.10.155 Dalvik/0 (Linux; U Android 0)
Monazilla/1.00 Ciisaa/1.71 Dalvic/0
Monazilla/2.00 JaneStyle/4.23 Windows/10.0.22000
Monazilla/1.00 JaneStyle/4.23 (^o^) Windows/10.0.22000
Monazilla/1.00 2chMate/0.8.10.153 Dalvik/0 (Linux; U Android 0) (^o^)

■■未登録のバージョンです。
Monazilla/1.00 JaneStyle/4.22 Windows/10.0.22000
Monazilla/1.00 JaneStyle/4.25 Windows/10.0.22000
Monazilla/1.00 2chMate/0.8.10.152 Dalvik/0 (Linux; U Android 0)
Monazilla/1.00 2chMate/0.8.10.156 Dalvik/0 (Linux; U Android 0)

■もっと古いのにしましょうね。
Monazilla/1.00 2chMate/0.8.10.153 Dalvik/0 (Linux; N Android 0)
Monazilla/1.00 2chMate/0.8.10.153 Dalvik/0 (Linux; I Android 0)

■もう新しいのにしましょうね。
Monazilla/1.00 JaneStyle/4.23 Windows/5.1.2600

■■新仕様に対応した専用ブラウザをご利用ください。
Monazilla/1.00 JaneStyle/4.23
Monazilla/1.00 2chMate/0.8.10.154 Dalvik/0 (Linux; U)
Monazilla/1.00 JaneStyle/4.23 (^o^)

■不正なPROXYを検出しました。
Monazilla/1.00 JaneStyle/4.23 Windows/10.0.22001
Monazilla/1.00 JaneStyle/4.23 Windows/10.0.22000 (^o^)

■■APIキーが一致しません。4
Monazilla/1.01 JaneStyle/4.23 Windows/10.0.22000
Monazilla/1.00 JaneStyle 4.23 Windows/10.0.22000

■署名が一致しません。
Monazilla/1.00 JaneStyle/4.23 Windows/10.0.22000

■403 Forbidden
Monazilla/0.00 JaneStyle/4.23 Windows/10.0.22000
Monazilla/1,00 JaneStyle/4.23 Windows/10.0.22000
Monazilla/3.00 JaneStyle/4.23 Windows/10.0.22000
Monazilla 1.00 JaneStyle/4.23 Windows/10.0.22000
onazilla/1.00 JaneStyle/4.23 Windows/10.0.22000

■400 Bad Request
Monazilla/1.00 janeStyle/4?23 Windows/10.0.22000 ※?は$20~$7E以外の文字コード

>>282のこれは先頭に空白が入ってるパターンね
>■署名が一致しません。
> Monazilla/1.00 JaneStyle/4.23 Windows/10.0.22000

@onihusube
Copy link
Owner Author

泥Spyleは出回ってたリクエスト文とは違いが在るようだ
専用ブラウザを助けるプロクシ作らね?26.1串目
http://egg.2ch.net/test/read.cgi/software/1661687123/45
2chAPI串のフィールド順に'oekaki_thread1', 'oekaki'とか設定して反映されるのだろうか?

case 'JaneStyle_Android':
new_query.seed_time = new_query.time

function create_nonce(
let nonce = query.seed_time ? query.seed_time + '000' : String(new Date().getTime())

コレって泥Spyleがミリ秒'000'固定になってて
En2chの方では000で無くても書けるから"new_query.seed_time"は設定されてないけど
泥Spyleではそこを判断されてるってことかな?

@onihusube
Copy link
Owner Author

Jane Android2.3.3

POST http://egg.5ch.net/test/bbs.cgi HTTP/1.1
X-PostNonce: 1662002761.061
Accept: */*
X-MonaKey: 176e015c4dc17b3bb0a07ecc0f9e1e7d********************************
Referer: http://egg.5ch.net/test/read.cgi/software/16612*****/
Connection: close
User-Agent: Monazilla/1.00 JaneStyle_Android/2.3.3 Dalvik/2.1.0 (Linux; U; Android 12; ***** Build/*****)
Host: egg.5ch.net
Accept-Encoding: gzip
Accept-Language: ja
X-PostSig: 5456d9bb5dc4dc4b23e1bf8377e4edbd********************************
X-APIKey: vIyNd18OvKKeRkMmBUqqtEsdLuA8hh
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 125

MESSAGE=test&bbs=software&mail=sage&submit=%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80&subject=&FROM=&time==1662002658&key=16612***** 

>>117ありがとうございます
2.3.2 からの変更点は
・nonce がミリ秒付加
・ボディのフィールドからfeature削除
みたいですね

@onihusube
Copy link
Owner Author

nonce が偽装元と違っていると 「不正なPROXY 403」

@onihusube
Copy link
Owner Author

Ciisaaが不正なPROXY

本家との差異
・Accept-Encoding : gzip 偽装に在って 本家には無い
・Referer: http://egg.5ch.net/software/ が本家はspyle形式
・nonce スレ立てはミリ秒なのに投稿はセンチ秒??? コピペミスだと思うが
投稿: https://pastebin.com/mkWR7NGx
スレ立て: https://pastebin.com/ibpppvBB
・Connection: close 偽装ではyamlのheaderに書いても反映されないけど Keep-Alive しとけばConnection:ヘッダは付加されるので良いはず

試せる人は Accept-Encoding : gzip を削除してPOSTしてみて欲しい

>>178
>試せる人は Accept-Encoding : gzip を削除してPOSTしてみて欲しい
やってもダメ

検証結果
CiisaaのUAに「Build/」が含まれていると不正なPROXYエラーになる

なんだそれ

Jane Style (Windows版) Part208 http://egg.5ch.net/test/read.cgi/software/1662203433/554
> ChromeとCiisaaだけは素でもBuild/~を吐かない

だそうだ
nutsも\sBuild/以下を)に置き換えて削除してる

ブルスタにCiisaa入れてのテストだけど「Build/」~が付いてないのが正しいみたい

@onihusube
Copy link
Owner Author

>>219,220
制限、余所、もう書けません、この手のエラーは、
UAだけ、回線だけ、UAと回線の組み合わせ、どれもあり得て一概には言えないな

>>223,229
こちらでも確認した
何種か試したが eonet で Monazilla/~ が制限規制されてるっぽいな
Mozilla/~ で余所規制を回避すれば eonet でも書ける

@onihusube
Copy link
Owner Author

>>121
不正なPROXY 201 は 2chMate 関係のエラーとまでしかわからない
例えば X-2ch-UA がないとか

@onihusube
Copy link
Owner Author

泥のUAチェックが厳密になって機種名や機種ビルドまで見るようになり出したけど
泥の最新ビルドまでそんなタイムリーに漏れなく更新出来るものなんだろうか
いばらの道を突き進むなぁ

>>430
JaneStyle_Android/2.4.0のUAを試してみるといい
バージョンアップ前は
Monazilla/1.00 JaneStyle_Android/2.3.3 Dalvik/0 <好きの文字列>
みたいなレベルのがOKだったけど
最新版は
Monazilla/1.00 JaneStyle_Android/2.4.0 Dalvik/2.1.0 (Linux; U; Android **; <機種名> Build/機種ビルド番号)
のフォーマットで実在する組合せじゃないと不正なPROXY扱いになる
(少なくとも自分が確認した範囲では)

ちなみにJaneStyle_Androidの予約バージョンだけは2.4.1から2.4.9まで全部通る
なんだそれ

いま改めて確認したらめちゃめちゃ緩くなってた
なんか問題が発生したのかな

>>438
書けなかった UAに戻してら書けた
運営がなんかやらかしたみたいだね

@onihusube
Copy link
Owner Author

>>493
spyleやLiveならこういうので分かる
【test】投稿テスト【ワッチョイ】 part5
http://egg.5ch.net/test/read.cgi/software/1660099053/

20220917-20220923

****-Mc42 … Monazilla/1.00 JaneStyle.4.23 Windows/6.0.6000
****-TQyE … Monazilla/1.00 JaneStyle.4.23 Windows/6.1.7600
****-rZTD … Monazilla/1.00 JaneStyle.4.23 Windows/6.1.7601 Service Pack 1
****-QNcw … Monazilla/1.00 JaneStyle.4.23 Windows/6.2.9200
****-+HgJ … Monazilla/1.00 JaneStyle.4.23 Windows/6.3.9600
****-4wF4 … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.10240
****-MhoU … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.18363
****-eAa0 … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.19041
****-91vb … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.19042
****-okD4 … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.19043
****-E+l9 … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.19044
****-aM1M … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.19045
****-epGT … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.20270
****-PPqk … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.21390
****-ldZd … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.22000
****-6Po3 … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.22449
****-xH4D … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.22622
****-9gzz … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.25115
****-t/ch … Monazilla/1.00 JaneStyle.4.23 Windows/10.0.25188

20220917-20220923

****-YO1K … Monazilla/1.00 Live5ch/1.59 Windows/6.0.6000
****-nMbm … Monazilla/1.00 Live5ch/1.59 Windows/6.1.7600
****-AZvI … Monazilla/1.00 Live5ch/1.59 Windows/6.1.7601 (Service Pack 1)
****-bI3p … Monazilla/1.00 Live5ch/1.59 Windows/6.2.9200
****-bPEN … Monazilla/1.00 Live5ch/1.59 Windows/6.3.9600
****-+BtO … Monazilla/1.00 Live5ch/1.59 Windows/10.0.10240
****-6Hnt … Monazilla/1.00 Live5ch/1.59 Windows/10.0.18363
****-vqHb … Monazilla/1.00 Live5ch/1.59 Windows/10.0.19041
****-uMuI … Monazilla/1.00 Live5ch/1.59 Windows/10.0.19042
****-UC+/ … Monazilla/1.00 Live5ch/1.59 Windows/10.0.19043
****-cETI … Monazilla/1.00 Live5ch/1.59 Windows/10.0.19044
****-HdVQ … Monazilla/1.00 Live5ch/1.59 Windows/10.0.19045
****-85zq … Monazilla/1.00 Live5ch/1.59 Windows/10.0.20270
****-z0sj … Monazilla/1.00 Live5ch/1.59 Windows/10.0.21390
****-/PCR … Monazilla/1.00 Live5ch/1.59 Windows/10.0.22000
****-nN9E … Monazilla/1.00 Live5ch/1.59 Windows/10.0.22449
****-zja0 … Monazilla/1.00 Live5ch/1.59 Windows/10.0.22622
****-49sq … Monazilla/1.00 Live5ch/1.59 Windows/10.0.25115
****-O3CH … Monazilla/1.00 Live5ch/1.59 Windows/10.0.25188

@onihusube
Copy link
Owner Author

pinkには新仕様での書き込みを旧と区別することなく受け入れる板と
スクリプト被害に遭ったので新を受け入れずにはじく設定になってる板がある

棲息域が違えばどっちもあることに気付かないけどね

@onihusube
Copy link
Owner Author

onihusube commented Jan 8, 2023

2chMate/0.8.10.158のユーザーエージェントでモナキーを取得しようとしてもAPIキーが一致しませんと出てきてしまいます。
153と何か違うのかと思い確かめたく。

2chMate/0.8.10.158でAPIキーが変更されてたのか
そういえば155あたりでX-2ch-UAを送らなくなったとか聞いたことがあるし微妙にいじってきてるんだな

リクエスト文はこちらです。
https://pastebin.com/QGzcSQMr

POST https://egg.5ch.net/test/bbs.cgi?guid=ON HTTP/1.1
Referer: https://egg.5ch.net/test/read.cgi/software/1672480787/
X-PostSig: c30d8c053ed****************************
X-APIKey: T14RBuDO60GZErtPZRZ91XwwwFLIhv
X-PostNonce: 1673158856.140
X-MonaKey: 0ca27ca67cf463ab886****************************
User-Agent: Monazilla/1.00 2chMate/0.8.10.158 Dalvik/2.1.0 (Linux; *****************)
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 116
Host: egg.5ch.net
Connection: Keep-Alive
Accept-Encoding: gzip
 
FROM=&mail=sage&MESSAGE=test&bbs=software&key=1672480787&submit=%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80&time=1673158856

153のAPIKey+153のHMKey+158のUA → APIキーが一致しません
158のAPIKey+153のHMKey+158のUA → 署名が一致しません

ソフトウェア板での結果
どっちもX-2ch-UAは消してる

153のAPIKey+153のHMKey+158のUA+158のX-2ch-UA → APIキーが一致しません
153のAPIKey+153のHMKey+158のUA+153のX-2ch-UA → APIキーが一致しません

解析しておいたので例のサイトを参照してください

AppKey: T14RBuDO60GZErtPZRZ91XwwwFLIhv
HMKey: U8N0m4PXvfi7hWz7hEJBTAsioigNl0
...

🙏🙏🙏🙏

@onihusube
Copy link
Owner Author

https://egg.5ch.net/test/read.cgi/software/1675673014/44-45

最新バージョンだとgearや泥janeのキーが例のサイトのやつから変わってるみたいだけど誰か解析してくれないかのぅ

gearとjane、追加しといた

AppKey: b9bsxpLQ5yqYt5jGIXOyb3jdKge5wY
HMKey: 1LLQiJjXNLpkqncsVtAcvorGtZsMkT

AppKey: hRG8Mi2B5KBy7Verp5dvx23MKXWdrD
HMKey: Vd2lLFTXQkpczSBgySsCHIKka7F4EG

🙏🙏🙏🙏

@onihusube
Copy link
Owner Author

あくまで自分が認識しているレベルでだが、いまのUAチェックってザックリこんな感じだろう

<5ch全体>

文字列の先頭にMozilla/*.又はMonazilla/.が記載されていない→ 403
  (Monazilla/
.の場合は専ブラ用のUAチェックへ)

Mozilla/4.0未満 → 403
Mozilla/4.
→ もう新しいのにしましょ
Mozilla/5.0以外 → 不正なProxy 5

クッキーが何かおかしい → もうこのスレには書けません/VPN931 等々

文字列長が385以上 → 不正なProxy 2
全角文字を含んでいる → 不正なProxy 2
"<"又は">"を含んでいる → 不正なProxy 15

特定のOS名かプラットホーム名、及び特定のブラウザ名か「Gecko/」を両方含んでいる状態にない → 不正なProxy 11

OSやブラウザのバージョン表記が指定の範囲外 → もう新しいのにしましょ/もっと古いのにしましょ
【重要】バージョン表記が無い場合や数値として認識できない場合はノーチェック

正常なUAとして認定、引き続き板ごとのチェックへ

<板ごと>

ブラウザやOSの種類やバージョンが板で設定したブラックリストに該当している → 余所
【重要】バージョン表記が無い場合や数値として認識できない場合はやっぱりノーチェック

@onihusube
Copy link
Owner Author

不正なPROXY 23 は、Accept-Language がない
不正なPROXY 27 はわからんが、edge で出るってレスあるな

不正なPROXY 12 は Refererの中身が不十分だとか
不正なPROXY 20 は Acceptの中身が*/*だけだとか

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants