dvwa学习笔记之xss
反射型
Low
直接输入<script>alert(/xss/)</script>
就可以发现弹窗
Medium
检查源码 可以看到网站对输入字符进行了过滤,尝试双写绕过,构造
<scr<script>ipt>alert(/xss/)</script> 输入进行尝试,弹窗xss说明ok!另一种方法就是大小写混写 构造一个 <Script>alert(/xss/)</Script>,成功,说明攻击成功!
High
先输入<Script>alert(/xss/)</Script>发现不管用了,然后打开源码,发现网站利用函数
$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
过滤了字符,使得上面两种方法失效了。虽然无法使用标签注入XSS代码,但是可以通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码。下面构造语句
<img src="" onerror="alert('XSS')"> 成功。
Impossible
核心代码: $name = htmlspecialchars( $_GET[ 'name' ] );
总结: htmlspecialchars 函数可以有效防止反射性xss
存储型
Low
查看源码,可以看出并没有防范xss的措施,直接在message框里面写入<script>alert(/xss/)</script>,成功执行。
Medium
strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签,但允许使用标签。
addslashes() 函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。
可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了字符串,仍然存在存储型的XSS。打开burp抓包,1.把name改成<sc<script>ript>alert(/xss/)</script>。Go 成功!2.大小写混淆绕过,改成<Script>alert(/xss/)</script>
High
打开源码可以看到,这里使用正则表达式过滤了标签,但是却忽略了img、iframe等其它危险的标签,因此name参数依旧存在存储型XSS。老办法,抓包改name参数为
<img src=1 onerror=alert(1)> 或者<img src="" onerror="alert('XSS')"> 成功弹窗
Impossible
打开源码,可以看到,通过使用htmlspecialchars函数,解决了XSS,但是要注意的是,如果htmlspecialchars函数使用不当,攻击者就可以通过编码的方式绕过函数进行XSS注入,尤其是DOM型的XSS。
想法:
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
• & (和号)成为 &
• " (双引号)成为 "
• ' (单引号)成为 '
• < (小于)成为 <
• > (大于)成为 >
提示:如需把特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。
那么如果在有转义的地方,可不可以用decode这个函数转回字符,可以继续攻击呢?欢迎交流!
DOM型xss
low
default=<script>alert('xss')</script>弹窗
Medium
></option></select><img src=1 onerror=alert('hack')>
High
URL中#号之后的内容,不会被提交到服务器,可以直接与浏览器进行交互
default=English#<script>alert(1)</script>
dvwa学习笔记之xss的更多相关文章
- DVWA学习笔记
原来装的DVWA没有认认真真地做一遍,靶场环境也有点问题了,到github上面重新下载了一遍:https://github.com/ethicalhack3r/DVWA 复习常见的高危漏洞,产生,利用 ...
- DVWA学习笔记-----环境搭建
DVWA是一款渗透测试的演练系统,在圈子里是很出名的.如果你需要入门,那么就选它了. 我们通常将演练系统称为靶机,下面请跟着我一起搭建DVWA测试环境. 安装PHP集成环境 我这里用的是phpstu ...
- ASP代码审计学习笔记 -2.XSS跨站脚本
XSS漏洞: 漏洞代码: <% xss=request("xss") response.write(xss) %> 漏洞利用: 漏洞修复: Server.HTMLEnc ...
- Web安全学习笔记 XSS上
Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...
- DVWA-CSRF学习笔记
DVWA-CSRF学习笔记 一.CSRF(跨站请求伪造) CSRF(跨站请求伪造),是指利用受害者尚未失效的身份认证信息(cookie.session会话等),诱骗其点击恶意链接或者访问包含攻击代码的 ...
- ASP.Net开发基础温故知新学习笔记
申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在H ...
- 两千行PHP学习笔记
亲们,如约而至的PHP笔记来啦~绝对干货! 以下为我以前学PHP时做的笔记,时不时的也会添加一些基础知识点进去,有时还翻出来查查. MySQL笔记:一千行MySQL学习笔记http://www.cnb ...
- ajax跨域请求学习笔记
原文:ajax跨域请求学习笔记 前言 ajax,用苍白的话赞扬:很好. 我们可以使用ajax实现异步获取数据,减少服务器运算时间,大大地改善用户体验:我们可以使用ajax实现小系统组合大系统:我们还可 ...
- Web 学习笔记 - 网络安全
前言 作为 前端开发者,了解一点 Web 安全方面的基本知识是有很必要的,未必就要深入理解.本文主要介绍常见的网络攻击类型,不作深入探讨. 正文 网络攻击的形式种类繁多,从简单的网站敏感文件扫描.弱口 ...
随机推荐
- 【2016蓝桥杯省赛】试题C++ B组试题
一. 煤球数目 作答:171700 #include <iostream> using namespace std; int main() { ,x=; ;i<=;i++){ ...
- Js 中的事件委托/事件代理
什么叫事件委托/事件代理呢 ? JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件. 事件冒泡: 当事件发生后,这个事件就要开始传 ...
- windows禁用端口命令
netstat -aon|findstr 1099 找出占用1099端口的进程 然后关闭占用该端口的进程:taskkill -f -pid 3756(进程id)
- 包学会之浅入浅出Vue.js:结业篇
在第一篇<包学会之浅入浅出Vue.js:开学篇>和上一篇<包学会之浅入浅出Vue.js:升学篇>的学习中,我们首先了解了Vue环境的搭建以及两个重要思想——路由和组件的学习,通 ...
- GitHub 源码,Framework 框架
https://github.com/CoderLN/Apple-GitHub-Codeidea Apple 译文.GitHub 源码,随原作者 (大版本) 迭代注解.--- 不知名开发者 https ...
- #leetcode刷题之路48-旋转图像
给定一个 n × n 的二维矩阵表示一个图像.将图像顺时针旋转 90 度.说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像.示例 1:给定 matrix ...
- PHP访问数缓存处理
利用Redis或Memcache作为MySQL的缓存,采用是ThinkPHP框架. 方法一 采用ThinkPHP的S方法: $savedata['uid']=session('uid'); $save ...
- CTF-i春秋网鼎杯第二场misc部分writeup
CTF-i春秋网鼎杯第二场misc部分writeup 套娃 下载下来是六张图片 直接看并没有什么信息 一个一个查看属性 没有找到有用信息 到winhexv里看一下 都是标准的png图片,而且没有fla ...
- JavaEE笔记(七)
Struts获取如何获取请求响应和回话 //获取HttpServletRequest HttpServletRequest request = ServletActionContext.getRequ ...
- 会话控制(session和cookie)、跨页面传值
1.session 登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器: (2)session每个人(登陆者)存一份: (3)session ...