發現一個總結了烏雲以前代碼審計案例的寶藏網站:https://php.mengsec.com/
希望自己能成為那個認真復現和學習前輩們思路的那個人,然后准備慢慢開始審計一些新的小型cms了
騎士cms3.0儲存型XSS漏洞,源代碼可以在74CMS官網上找到:http://www.74cms.com/download/
要挖掘儲存型XSS需要尋找未過濾的輸入點和未過濾的輸出函數,這個最終的輸出點可能跟輸入點完全不在一個業務流上,對於這類可以根據當前代碼功能去猜,或者老老實實去追哪里有操作過這個數據,使用表名,字段名去代碼里面搜索。
在74cms3.0中這個XSS儲存型漏洞也是如此,我們將74CMS在本地安裝后,到admin/admin_link.php位置處
也就是說,當存在我們對網站的輸入的時候,我們就可以考慮是否有XSS漏洞
這里有添加友情鏈接的功能,是一個輸入的位置,查看admin/admin_link.php文件
此處有:
當我們不指定act參數的時候,$act=list ,進入if語句
然后在這個位置將使用get_links函數從數據庫中讀取友情鏈接,也就是我們可以輸入儲存在數據庫中的link
我們跟進get_links函數
get_links函數是一個從數據庫里面讀取友情鏈接並返回的函數
再接着就是輸出, 我們自己點擊添加鏈接,也可以看出我們有幾個部分的輸入,可以一一在模板中查看
鏈接名稱,鏈接地址,LOGO地址,備注,顯示順序都是我們可以控制的輸入,同時是按照link/admin_link.htm為模板輸出的,跟進link/admin_link.htm
在logo處是img標簽,在XSS-labs里面有過類似的題目,src屬性我們利用onerror輸出,輸入點就是輸入友情鏈接的地方
書上這里使用了HTML實體編碼,實際上這里不需要編碼也可以直接彈窗
這里有一篇將XSS漏洞的文章:https://wooyun.js.org/drops/Bypass%20xss%E8%BF%87%E6%BB%A4%E7%9A%84%E6%B5%8B%E8%AF%95%E6%96%B9%E6%B3%95.html
我覺得里面說的挺好的:本文主要是一個測試XSS的思路流程,並沒有把所有的payload寫全,其實也沒有人能夠寫全,只是列了一個大體的框架,大家實際在尋找的過程中可以不斷慢慢的根據這種思路補充自己的payload,想必呢,一定會有很大的進步的!~
在不斷的代碼審計中不斷積累自己的payload,能夠在看到漏洞點時下意識本能反應出來,應該就是代碼審計的大手子了。