為什么要寫這個文章呢?因為我發現很多白帽子,甚至很牛逼的(代碼能力遠遠比我厲害)都沒這樣玩過,因為很多次項目項目基本上在大家沒輸出情況下這些小技巧讓我收獲了很多不少漏洞。當然也許大佬們是看不起這些小漏洞小技巧,我寫的目的是為了那些大部分懶人,或者基本沒深入了解開發的不深入理解代碼的能快速繞過簡單web簽名。最后分享一些實戰中的小tips。希望幫助更多的新鮮血液的白帽子多賺錢,官網說法是多為了國家信息安全做貢獻。(本文章是站在絕對黑盒的思路)
1 通過替換響應包的值繞過簽名
2 通過chromedebug繞過簽名
3 web滲透測試中一些簡單的單身超級實用的tips;
通過替換響應包的值繞過簽名
原理分析:數據在數據包加密前輸入,其次該被修改的數據沒經過多次正則處理直接進入簽名算法的。如果是正則替換了的可能只能用于簡單int類型替換。(適用app的場景)替換方法是:

chorome debug 基礎和小技巧
debug demo:https://googlechrome.github.io/devtools-samples/debug-js/get-started
用得比較多的快捷鍵:
F9:跟著函數一步步走下去。(對象是代碼行)
F10:跳過函數功能(對象是代碼的函數)
F8 : 放行bebug
debug3種放方式: 1 xhr(數據包uri的debug) 2 Event Listener--mouse-click 3 手動函數斷點
1 如果剛開始debug的小伙伴建議一步步跟這數據流走(F9),(比較熟悉的時候直接下斷點到27-33行)

2 step到這個函數然后可以debug這附近代碼:

參數這個的原因是因為是字符串拼接而不是int類型相加。console口打印一下一下變量類型和結果即可。
debug繞過sign場景:(眾測好幾個實戰,因為安全和自己打碼水平所以暫且無法公開案列)
說了這么多debug有啥用呢。用處是是在web存在sign或者多個非常復雜的簽名,難以分離算法的情況。比如我們的當前功能就是字符串:sum=addend2+addend1;(想得到'A'+'B'='AC')但是你卻無法重放數據,也無法修改數據包。(重放或者修改都會返回錯誤,得不到想要的結果。這種情況可能是web簽名過程中里面處理了幾次數據。)
本來 正常功能是 A+B=AB,
直接修改B為C ,模擬繞過sign后成了 A+B=AC

3 如果經驗很豐富了,可以通過xhr,或者關鍵字搜索等等別的方法直接定位某個js的關鍵debug點。(很多大項目一個js可能十幾M)
chrome debug查考文章:https://www.cnblogs.com/softidea/p/10451864.html
web測試的一些經驗分享
畸形數據包:
rce或者sql漏洞產生在于代碼的交互和數據庫的交互,不在于數據包包是任何形式的到服務器,只要路由對了就可以,不掛是否是正常邏輯,只要能交互即可。可能是get,post,put,甚至是不正常的比如http走私。
1 數據格式改變產生漏洞:(這些情況下可能跟繞過waf,可能產生新的漏洞。均有很多案例,比如某個src和銀行站點,所有用戶都看了無數次,但是存在全站sql注入,本身數據包是get類型不存在,改成post也不存在,然后post編程multipart存在sql注入,比如這種情況pot的簡單字段,改成json就存在了fastjson反序列化,99%數據包都不存在fsj漏洞,但是剛好有一個數據包修改了就存在。這種情況一般需要修改了數據包格式以后和修改前對服務器交互后的響應包是一樣的基本可以參數漏洞。)
(get-->post|| post-->json)
(get-->post|| post-->xml)
(get-->post|| post-->multipart)


2 參數污染造成漏洞或者繞過waf(遇到過繞過上傳類型的實列)
再目標id字段前面添加一個空字段或者再前面本身存在沒有影響的字段的內容無限擴充字符。或者盡量無限創建無效的字段。


3 萬能的js。js是參數漏洞最多最多的地方。比如vue的有些網址可以還原所有靜態邏輯文件。
當前端是vue開發的網址,如果存在js.map文件(手動添加.map)。比如https://wwww.baidu.com/app.js.map 下載app.js.map到本地。利用shuji 工具(安裝nodejs 在安裝shuji)https://www.npmjs.com/package/shuji
shuji app.js.map -o desfile
然后用vscode查看desfile的文件。
Coremail郵件安全
上官雨寶
一顆小胡椒
一顆小胡椒
尚思卓越
尚思卓越
一顆小胡椒
中國信息安全
一顆小胡椒
Anna艷娜
cayman