- Web應(yīng)用安全威脅與防治
- 王文君 李建蒙編著
- 5字
- 2018-12-26 19:42:28
第1篇 引子
故事一:家有一IT,如有一寶
我的愛人是做銷售的,每天晚上回家都要上網(wǎng)填寫一個系統(tǒng),若不填的話會扣獎金。有一天,她還是照常填寫好了,等要提交的時候,忽然出現(xiàn)一個對話框,如下:
可問題是,她仔細(xì)地檢查了填寫的日期,并沒錯,遂求助于我。我看了看,第一反應(yīng)就是:這個提交是在客戶端做校驗(yàn)的,那是相當(dāng)不可靠的,我一定能繞過去這個驗(yàn)證而正確提交。于是找到了這個按鈕的那段HTML代碼:
<input name="btn_SaveMsg" class="button" id="btn_SaveMsg" style="width: 110px;" onclick="return Check_Form();" type="submit" value="保存"/>
并查看了Check_Form函數(shù),函數(shù)相當(dāng)長,這里就不全列舉出來了,只貼幾行:
if(document.getElementById("txt_Evalueation_Date").value>returndate) { alert('前半天不能大于當(dāng)天!'); document.getElementById("txt_Evalueation_Date").focus(); return false; } … return true;
但我們知道,只要是客戶端進(jìn)行校驗(yàn)的,就不靠譜。于是我用Chrome打開了這個頁面,然后在Console面板上執(zhí)行了下面的命令:
MainPanel.document.getElementById("btn_SaveMsg").onclick="return true;" MainPanel.document.getElementById("btn_SaveMsg").click();
這里做簡單的介紹,MainPanel是Frame的名字,原始頁面包括了好幾個Frame,然后根據(jù)id取得保存按鈕這個元素,并且將onclick函數(shù)改成return true,即驗(yàn)證永遠(yuǎn)通過,這樣就可以跳過原來客戶端的Check_Form函數(shù)中那么多的return false的情況了,最后調(diào)用保存按鈕的click方法進(jìn)行提交。
Bingo!提交通過!于是本人也獲得了一句贊語:家有一IT,如有一寶。
這個故事告訴我們——永遠(yuǎn)不要在客戶端做安全檢驗(yàn)!
推薦閱讀
- 云原生安全:攻防實(shí)踐與體系構(gòu)建
- DevSecOps敏捷安全
- 數(shù)字身份與元宇宙信任治理
- Metasploit Penetration Testing Cookbook(Second Edition)
- 可信計算3.0工程初步
- Enterprise Cloud Security and Governance
- 代碼審計:企業(yè)級Web代碼安全架構(gòu)
- 數(shù)字化轉(zhuǎn)型浪潮下的數(shù)據(jù)安全最佳實(shí)踐指南
- 網(wǎng)絡(luò)安全技術(shù)與實(shí)訓(xùn)(第4版)(微課版)
- 硬黑客:智能硬件生死之戰(zhàn)
- CTF競賽權(quán)威指南(Pwn篇)
- 構(gòu)建新型網(wǎng)絡(luò)形態(tài)下的網(wǎng)絡(luò)空間安全體系
- 網(wǎng)絡(luò)安全實(shí)戰(zhàn)詳解(企業(yè)專供版)
- Mastering Python for Networking and Security
- 交換機(jī)·路由器·防火墻(第2版)