繞過電子郵件格式過濾進行SQL注入
在此之前先給大家講個冷笑話。這篇文章原文乍一看是英文的,但仔細一看我就懵了。沒錯!它並不是英文,而是印度尼西亞文。還好內容並不多,不然還不得吐血~
—— 小編日常懵比
前不久,我加入了一家印度尼西亞金融科技公司的bug賞金計劃。經過一番測試,我在“忘記密碼”功能中找到了一個電子郵件輸入框。依據經驗,我開始嘗試以下輸入。
首先,我嘗試了不帶空格的輸入:
[email protected]=>有效 “a”@.com =>有效
然後,嘗試了帶空格的輸入:
dimaz [email protected] =>無效 “dimaz arno”@test.com =>有效
從以上結果我們可以看出,當地址中出現空格將會被過濾,而加了雙引號就會被認為是一個完整的字串則為合法。這符合會話中的 ofollow,noindex" target="_blank">RFC 3696 郵件檢驗標準。
但字元 “(“ 和 “)”並不會被阻止,這對於構造sql注入payload非常“有用”。
以下為測試所用payload列表:
通過列舉最終確定資料庫字元長度為10。
總結
當你在測試中碰到了一些限制特殊字元的電子郵件過濾器,你可以像我一樣嘗試在@符之前新增雙引號,這可能會幫你繞過過濾機制。
格式如下:
“injection_here”@email.com
例如:
“<script src=//xsshere?”@email.com “1-’or’1'=’1”@email.com
最後,祝你好運!
*參考來源: medium ,FB小編 secist 編譯,轉載請註明來自FreeBuf.COM