聲明
由於傳播、利用此文所提供的信息而造成的任何直接或者間接的後果及損失,均由使用者本人負責,雷神眾測以及文章作者不為此承擔任何責任。雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用於商業目的。
No.1
語法&定義&注釋
查詢字符串解析到變量,首先看一下parse_str()函數:語法:parse_str(string,array)
定義和用法:
parse_str() 函數把查詢字符串解析到變量中。注釋:
如果未設置 array 參數,則由該函數設置的變量將覆蓋已存在的同名變量。注釋:
php.ini 文件中的 magic_quotes_gpc 設置影響該函數的輸出。如果已啟用,那麼在 parse_str() 解析之前,變量會被 addslashes() 轉換。
No.2
如何繞過waf程序規則
TL;DR,PHP將查詢字符串(在URL或body中)轉換為$_GET或$_POST中的數組。例如:/?foo=bar變成Array([foo] => "bar"),查詢字符串解析過程使用下劃線刪除或替換參數名稱中的某些字符。
例如/?%20wenson[id%00=42]轉換為Array([wenson_id] => 42)
如果遇到waf對wenson_id的值進行攔截時,怎麼樣使用濫用PHP查詢字符串解析器來繞過WAF,可以通過以下面方式來繞過這個解析過程:
/wenson.php?%20wenson[id%00=42"+AND+1=0—在PHP中,上面的示例%20wenson[id%00]中的參數名的值將存儲為$_GET["wenson_id"]。
PHP需要將所有參數轉換為一個有效的變量名,因此當解析查詢字符串時,它主要做兩件事:
刪除初始空格將一些字符轉換為下劃線(包括空格)
通過如下所示的簡單循環,您可以使用parser_str函數發現哪個字符被刪除或轉換為下劃線:
在這裡可以用foo_bar的值進行fuzz測試,「[X]foo[X]bar[X]」是[X]的標記位,對這個標記位進行測試,如果web伺服器接受帶點或空白的標題名稱,也會發生類似的事情。
可以對fuzz測試的一些點:
接下來進行拆分,進行分析:
[1st]foo_barfoo[2nd]barfoo_bar[3rd]
可以看出foo%20bar 等同於 foo+bar ,並且可以被解析為foo bar。如果使用一個正則規則來匹配時:
alert http any any -> $HOME_NET any (\msg: "Block SQLi"; flow:established,to_server;\ content: "POST"; http_method;\ pcre: "/wenson_id=[^0-9]+/Pi";\ sid:1234567;\)
可以使用下面的方式進行繞過:
/?wenson**[**id=1%22+AND+1=1--'/?wenson**%5b**id=1%22+AND+1=1--'/?wenson_id**%00**=1%22+AND+1=1--'
如果像ModSecurity的話,使用這個規則的話SecRule !ARGS:wenson_id "@rx ^[0-9]+$",以上的方式是不成功的,
所以在有時候可以這樣子繞過waf:所以在繞PHP文件中,遇到類似的parse_str()函數時,可以嘗試去繞過。
/test.php?tt<span style="color:#ab4642">%00</span>=1&%20wenson=fsf23424234234ffsdfds
等同於下面的URL地址:
/test.php?tt=1&wenson=fsf23424234234ffsdfds
No.3
尾言
最後,文章的內容部分參考網際網路的文章來寫,在繞過的過程中,多嘗試一下PHP替代函數進行繞waf。
招聘啟事
安恆雷神眾測SRC運營(實習生)————————【職責描述】1. 負責SRC的微博、微信公眾號等線上新媒體的運營工作,保持用戶活躍度,提高站點訪問量;2. 負責白帽子提交漏洞的漏洞審核、Rank評級、漏洞修復處理等相關溝通工作,促進審核人員與白帽子之間友好協作溝通;3. 參與策劃、組織和落實針對白帽子的線下活動,如沙龍、發布會、技術交流論壇等;4. 積極參與雷神眾測的品牌推廣工作,協助技術人員輸出優質的技術文章;5. 積極參與公司媒體、行業內相關媒體及其他市場資源的工作溝通工作。【任職要求】 1. 責任心強,性格活潑,具備良好的人際交往能力; 2. 對網絡安全感興趣,對行業有基本了解; 3. 良好的文案寫作能力和活動組織協調能力。
簡歷投遞至 strategy@dbappsecurity.com.cn
設計師(實習生)
————————
【職位描述】負責設計公司日常宣傳圖片、軟文等與設計相關工作,負責產品品牌設計。【職位要求】1、從事平面設計相關工作1年以上,熟悉印刷工藝;具有敏銳的觀察力及審美能力,及優異的創意設計能力;有 VI 設計、廣告設計、畫冊設計等專長;2、有良好的美術功底,審美能力和創意,色彩感強;精通photoshop/illustrator/coreldrew/等設計製作軟體;3、有品牌傳播、產品設計或新媒體視覺工作經歷;【關於崗位的其他信息】企業名稱:杭州安恆信息技術股份有限公司辦公地點:杭州市濱江區安恆大廈19樓學歷要求:本科及以上工作年限:1年及以上,條件優秀者可放寬
簡歷投遞至 strategy@dbappsecurity.com.cn
安全招聘————————公司:安恆信息崗位:Web安全 安全研究員部門:戰略支援部薪資:13-30K工作年限:1年+工作地點:杭州(總部)、廣州、成都、上海、北京
工作環境:一座大廈,健身場所,醫師,帥哥,美女,高級食堂…【崗位職責】1.定期面向部門、全公司技術分享;2.前沿攻防技術研究、跟蹤國內外安全領域的安全動態、漏洞披露並落地沉澱;3.負責完成部門滲透測試、紅藍對抗業務;4.負責自動化平臺建設5.負責針對常見WAF產品規則進行測試並落地bypass方案【崗位要求】1.至少1年安全領域工作經驗;2.熟悉HTTP協議相關技術3.擁有大型產品、CMS、廠商漏洞挖掘案例;4.熟練掌握php、java、asp.net代碼審計基礎(一種或多種)5.精通Web Fuzz模糊測試漏洞挖掘技術6.精通OWASP TOP 10安全漏洞原理並熟悉漏洞利用方法7.有過獨立分析漏洞的經驗,熟悉各種Web調試技巧8.熟悉常見程式語言中的至少一種(Asp.net、Python、php、java)【加分項】1.具備良好的英語文檔閱讀能力;2.曾參加過技術沙龍擔任嘉賓進行技術分享;3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相關資質者;4.具有大型SRC漏洞提交經驗、獲得年度表彰、大型CTF奪得名次者;5.開發過安全相關的開源項目;6.具備良好的人際溝通、協調能力、分析和解決問題的能力者優先;7.個人技術博客;8.在優質社區投稿過文章;
崗位:安全紅隊武器自動化工程師薪資:13-30K工作年限:2年+工作地點:杭州(總部)【崗位職責】1.負責紅藍對抗中的武器化落地與研究;2.平臺化建設;3.安全研究落地。【崗位要求】1.熟練使用Python、java、c/c++等至少一門語言作為主要開發語言;2.熟練使用Django、flask 等常用web開發框架、以及熟練使用mysql、mongoDB、redis等數據存儲方案;3:熟悉域安全以及內網橫向滲透、常見web等漏洞原理;4.對安全技術有濃厚的興趣及熱情,有主觀研究和學習的動力;5.具備正向價值觀、良好的團隊協作能力和較強的問題解決能力,善於溝通、樂於分享。【加分項】1.有高並發tcp服務、分布式等相關經驗者優先;2.在github上有開源安全產品優先;3:有過安全開發經驗、獨自分析過相關開源安全工具、以及參與開發過相關後滲透框架等優先;4.在freebuf、安全客、先知等安全平臺分享過相關技術文章優先;5.具備良好的英語文檔閱讀能力。
簡歷投遞至 strategy@dbappsecurity.com.cn
專注滲透測試技術
全球最新網絡攻擊技術
END