首先查看下漏洞頁面,發現輸入的1111, 直接傳參到herf 中,
查閱資料得知:
輸出出現在a標簽的href屬性里面,可以使用javascript協議來執行js
查看源代碼:
if(isset($_GET['submit'])){ if(empty($_GET['message'])){ $html.="<p class='notice'>叫你輸入個url,你咋不聽?</p>"; } if($_GET['message'] == 'www.baidu.com'){ $html.="<p class='notice'>我靠,我真想不到你是這樣的一個人</p>"; }else { $message=htmlspecialchars($_GET['message'],ENT_QUOTES); $html.="<a href='{$message}'> 閣下自己輸入的url還請自己點一下吧</a>"; } }
可以看到 先輸入了一個submit參數,如果不等於baidu.com, 就對參數進行htmlspecialchars轉義 ,其中ENT_QUOTES是對單雙引號都進行轉義了。然后將我們的參數輸出到a標簽的 herf屬性中。這時候,我們就可以構造我們的payload: javascript:alert(1)
從結果中可以看出,上面這種漏洞中我們可以輕易地利用javascript協議來執行任何我們構造的js代碼。