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 安全方面的基本知识是有很必要的,未必就要深入理解.本文主要介绍常见的网络攻击类型,不作深入探讨. 正文 网络攻击的形式种类繁多,从简单的网站敏感文件扫描.弱口 ...
随机推荐
- linux 的常用命令---------第一阶段
ls -a 列出所有的文件,包括以 . 开头的隐藏文件 ls -d 列出目录本身,并不包含目录中的文件 ls -h 人类易读 ls -h 长输出 man 帮助使用手册 ...
- 关于SpringApplication包无法导入报错问题
问题描述:一直再报红线,包始终无法导入,参考过好几个博友分享的解决方案,依然没有效果,对了补充一点SprinBoot版本为2.0.3. 问题解决:目前通过更换版本得到解决1.5.6或者1.5.8都可以 ...
- Linux Shell常用技巧(一)
一. 特殊文件: /dev/null和/dev/tty Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty.其中/dev/null将会丢掉所有写入它 ...
- UNIX网络编程之旅-配置unp.h头文件环境
最近在学习Unix网络编程(UNP),书中steven在处理网络编程时只用了一个#include “unp.h” 相当有个性并且也很便捷 于是我把第三版的源代码编译实现了这个过程,算是一种个性化的开 ...
- GitHub 源码,Framework 框架
https://github.com/CoderLN/Apple-GitHub-Codeidea Apple 译文.GitHub 源码,随原作者 (大版本) 迭代注解.--- 不知名开发者 https ...
- 使用jquery获取url上的参数(笔记)
使用jquery获取url上的参数(笔记) 一.做作业时经常要获取url上的参数 1.当url上有多个参数时 从互联网找到了一个方法 (function ($) { $.getUrlParam = f ...
- c语言指针篇
不保证绝对正确,学习中所记录的一些笔记罢了,可能随着经历的增多,逐渐的完善, 不要完全相信我所记录的内容,可能因为编译协议版本的不同出现不同的结果. 也可能我写的根本就是错的,请相信自己动手得出来的结 ...
- Ubuntu:未找到合法的活动链接
编辑/etc/NetworkManager/NetworkManager.conf,将managed=false改成managed=true 然后重启. 在桌面环境下,用gedit会出现无法保存的问题 ...
- mssqlserver的md5函数
参考:https://www.cnblogs.com/JuneZhang/p/6396896.html?utm_source=itdadao&utm_medium=referral 简单说明: ...
- sqlserver分区视图中分区列的规则
分区列规则 分区列存在于每个成员表上,并且通过 CHECK 约束标识特定表中的可用数据.分区列必须遵守如下规则: 每个基表都拥有键值由 CHECK 约束所强制的分区列.每个表的 CHECK 约束的键范 ...