济宁专业做网站,惠阳网站建设公司,一套vi设计大概多少钱,速成网站建设反射型XSS可以用来窃取cookie
Low
输入1111进行测试#xff0c;发现1111被打印 输入scriptalert(document.cookie)/script#xff0c;出现弹窗#xff0c;获得cookie
Medium
查看后端代码#xff0c;发现对script进行了转义#xff0c;但是…反射型XSS可以用来窃取cookie
Low
输入1111进行测试发现1111被打印 输入scriptalert(document.cookie)/script出现弹窗获得cookie
Medium
查看后端代码发现对script进行了转义但是可以通过双写大小写等进行绕过
?phpheader (X-XSS-Protection: 0);// Is there any input?
if( array_key_exists( name, $_GET ) $_GET[ name ] ! NULL ) {// Get input$name str_replace( script, , $_GET[ name ] );// Feedback for end user$html . preHello {$name}/pre;
}?High
观察后端代码“*” 代表一个或多个任意字符“i” 代表不区分大小写script标签被完全过滤。但是我们可以通过其他的标签例如 img、body 等标签的事件注入。 参考XSS Payload List
?phpheader (X-XSS-Protection: 0);// Is there any input?
if( array_key_exists( name, $_GET ) $_GET[ name ] ! NULL ) {// Get input$name preg_replace( /(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i, , $_GET[ name ] );// Feedback for end user$html . preHello {$name}/pre;
}?eg:img src 1 onerror alert(document.cookie)
Impossible
观察后端代码使用 htmlspecialchars 函数将参数中的特殊字符如 , , , 等转换为 HTML 实体。
?php// Is there any input?
if( array_key_exists( name, $_GET ) $_GET[ name ] ! NULL ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ user_token ], $_SESSION[ session_token ], index.php );// Get input$name htmlspecialchars( $_GET[ name ] );// Feedback for end user$html . preHello {$name}/pre;
}// Generate Anti-CSRF token
generateSessionToken();?我们打印一下输入scriptalert(document.cookie)/script转义后的字符串 这样浏览器会将其作为普通文本显示而不是执行。
防御
1.http-only禁止js语句获取cookie 2.过滤输入的字符例如 “ ’ ”“ ”“”“” 等非法字符 3.对输入到页面的数据进行编码