一、OWASP果汁店介紹
OWASP果汁店是OWASP組織提供的官方提升安全技術(shù)的示例網(wǎng)站:
源碼:
-
https://github.com/bkimminich/juice-shop#docker-container
網(wǎng)站的框架結(jié)構(gòu):
框架結(jié)構(gòu).png
幫助文檔:大家可以仔細讀這個也可提升。https://pwning.owasp-juice.shop/appendix/solutions.html
我?guī)痛蠹艺硪恍┯幸馑嫉睦?,提升大家的安全測試水平。 詳細可以到我的51cto課堂搜索 linda,找到相關(guān)課程。
二、搭建示例網(wǎng)站
使用docker
docker run --rm -p 3000:3000 bkimminich/juice-shop
完成的效果 如下圖:
三、闖關(guān)開始
基本按簡單到難的方式,涉及的技術(shù)大家自己腦補自學(xué)。
第一星級-1 【*】:找到隱藏的記分板 類型:代碼分析
1、點擊搜索,發(fā)現(xiàn)url為http://IP/#/search,現(xiàn)使用chrome的F12找到main-es2018.js,在source,打開文件,使用pretty print查看內(nèi)容。

2、搜索search這個關(guān)鍵詞,這是個模塊的路由??词欠裼须[藏的路由。我們可以找到有score-board,administation等。

3、訪問這個地址:http://IP/#/score-board,如下圖,找到隱藏的記分板,如果你 成功,網(wǎng)站會有恭喜的成功了一個挑戰(zhàn)??!

第一星級-2 【* 】查閱機密文件 類型:敏感信息泄漏
1、點擊提示,組成url為http://IP/#/ftp;或使用上面方法也可以
2、進入查看能看的文件,發(fā)現(xiàn)機密文件

第一星級-3 【* 】是否有Xss注入的漏洞 類型:Xss攻擊
在搜索框中輸入xss注入用例(參考我寫的安全用例http://www.itdecent.cn/p/658f10a66acc)
<iframe src="javascript:alert(`xss`)">,
如果出現(xiàn)彈出框,就表示這個腳本運行了。如果換成其他攻擊腳本也會執(zhí)行。所有有這方面的漏洞。

第一星級-4 【* 】給商店一個毀滅性的零星反饋 類型:輸入驗證不當(dāng)
有兩種方法實現(xiàn):
第一種:使用前端技術(shù):修改disabled屬性,提交按鈕可提交(掌握這個技術(shù)可以隨意修改任何屬性)

2、刪除button的屬性:disabled="true",mat-button-disabled,右鍵選擇edit as html,刪除后如下圖:

3、隨意點擊白色的部分讓刪除的屬性生效,這時看到提交按鈕可以點擊了。

4、點擊提交,在network中找到發(fā)送成功并且rating:0評價是0.

第二種:通過接口技術(shù),修改評星為0,重發(fā)請求
1、使用fiddler 抓包,
2、找到提交評論的請求feedbacks,
3、將此請求拖拽到composer中,將post數(shù)據(jù)中rating的值改為0,再excute發(fā)送。

第一星級-5 【* 】:找到貓的照片并顯示 類型:輸入驗證不當(dāng)/惡作劇
1、在左側(cè)邊欄中進入【照片墻】,可看如下圖:第一張圖片顯示不出來。

2、連接查看其他圖片,并使用F12進入元素界面查看圖片的原地址,并進行訪問。

如果要訪問直接使用網(wǎng)站地址+相對地址。
例如:http://IP:8001/assets/public/images/uploads/favorite-hiking-place.png
當(dāng)我們訪問第一個圖片原地 址時:http://IP:8001/assets/public/images/uploads/??-#zatschi-#whoneedsfourlegs-1572600969477.jpg 是 訪問不到的。
我們發(fā)現(xiàn)這個地址有問題,因為所有地址就是url不能有特殊字符和漢字,這些都要轉(zhuǎn)碼才可以。我記得因為http協(xié)議是美國人發(fā)明的,所以不支持漢語,哈哈,這些不支持的需要進行url轉(zhuǎn)碼。
3、搜索網(wǎng)上url轉(zhuǎn)碼:"#"的轉(zhuǎn)碼為%23,因此這個地址就變成了http://IP:8001/assets/public/images/uploads/??-%23zatschi-%23whoneedsfourlegs-1572600969477.jpg

4、在前端頁面我們把這個地址修改正確就行了。
chrome-F12-元素,在未顯示的圖片右鍵-檢查,在高亮的位置找到圖片的鏈接,右鍵編輯as html,修改#為%23,再點擊其他地方保存生效,左側(cè)圖片顯示出來了

第一星級-6 【*】讓我們將您重定向到我們不再使用的加密通用地址。
重定向:redirect
1、在提示信息中復(fù)制重定向的地址
2、在 main*.js中搜索

3、再 把地 址復(fù)制到url(http://IP地址/redirect?to=https://blockchain.info/address/1AbKfgvw9psQ41NbLi8kufDQTezwG8DRZm)
4、直接訪問已經(jīng)不用的重定向地址。

第一星級-7 【*】注冊用戶時請遵循DRY原則
1、注冊用戶,正常輸入密碼和驗證密碼,校驗通過
2、回頭再次修改密碼為不同,提交注冊成功

點評:開發(fā)一 般遵循DRY原則不寫重復(fù)的代碼,測試一般 使用 相反的手段,重復(fù)提交,回頭修改等 。
第一星級-8 【*】讓聊天機器人給你優(yōu)惠 碼
1、注冊-登陸2、左側(cè)邊欄-客服聊天,3、一直 輸入就 會得到優(yōu)惠碼。

第二星級-1【**】:登陸管理員賬戶 類型:sql注入
1、點擊帳戶,進入登陸頁面,在用戶名中輸入注入 的用例 ' or 0=0 --(可參考我寫的安全用例http://www.itdecent.cn/p/658f10a66acc),密碼隨便輸入,點擊登陸。

2、登陸成功的效果。

第二星級-2【**】:登陸管理員頁面 類型:失效的訪問控制
1、在第一關(guān)通過查看前端js得到一些路由-url的路徑

2、直接訪問的效果(http://IP:8001/#/administation)

3、思考:訪問管理員權(quán)限下的界面是否需要驗證管理員的身份。于是先使用上面sql注入闖關(guān)的登陸管理員,再訪問管理員頁面地址http://IP:8001/#/administation,于是成功顯示了只有管理員擁有的功能,可以查看所有注冊的用戶及客戶反饋。

第二星級-3【**】 讓你富有的訂單,商品數(shù)量 為負數(shù) 類型:輸入驗證不當(dāng)
1、抓到添加購物車的請求(fiddler)
2、修改數(shù)量為-100,重發(fā)(將請求拖拽到composer,修改數(shù)量為-100,excute提交)

3、成功后刷新購物車的響應(yīng)如下:

4、在頁面中刷新顯示效果,可以接著支付,錢不會花掉,反到會增加。



第二星級-4 【**】刪除所有 5 星級客戶反饋
管理員 可 刪除別人的反饋
1、上面通過sql注入方式登陸管理員賬號
2、進行管理員界面administration
3、看到所有用戶信息和客戶反饋直接刪除5星客戶反饋就行。
下圖通過接口層刪除的

第二星級-5 【**】查看其他用戶的購物車
1、找到購物車的id,更換ID(13-12)

2、直接在地址欄中輸入將url中的13改成12就行

第二星級-6 【**】將其他產(chǎn)品放入另一個用戶的購物籃
1、抓到一個添加購物車的請求
2、修改產(chǎn)品id和購物籃子的id,提交不成功,把購物籃子的id (BasketId)再復(fù)制一份(一個自己籃子,一個是別人籃子),再發(fā)成功

第二星級-7 【**】注冊為具有管理員權(quán)限的用戶
1、接口層發(fā)請求修改角色權(quán)限admin
POST向http://localhost:3000/api/Users提交請求:
{“email”:”888@qq.com","password":"admin","role":"admin"} 作為body
并且application/json作為Content-Type

第二星級-8 【**】以其他用戶名發(fā)布一些反饋
1、刪除隱藏hidden標(biāo)簽,激活無法修改的標(biāo)簽,
2、修改id,(用戶名)

第二星級-9【**】以其他用戶的身份發(fā)表產(chǎn)品評論或編輯任何用戶的現(xiàn)有評論
抓包,修改,重發(fā)

