您现在的位置是:首页 > 学无止境 > Web网站首页Web XSS跨站注入分析-DVWA
XSS跨站注入分析-DVWA
- Web
- 2019-05-22
简介XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。字数
801.5
一、进入DVWA测试系统
选择左侧XSS菜单,分别有3个,XSS(Reflected)表示反射型XSS,XSS(DOM)是基于DOM类型的XSS,XSS(Stored)表示存储型XSS,以XSS(Reflected)为例的内容页显示为:
二、分析不同类型的源代码并进行操作
1、XSS(Reflected)的实验代码分析:
内容页只有一个输入窗口,后台的源程序(目录:…\vulnerabilities\xss_r\source\low.php)如下:
在实验以前,初步分析源代码存在的问题。现在我们来做实验看看
实验步骤步骤:
a)安全级别选择Low,然后选择XSS(Reflected),在输入框输入<script>alert(/XSS/)</script>,看看结果
b)安全级别选择medium,先来看看源代码:
从源代码第8行可以看到做了防XSS过滤,采用str_replace函数将输入中的<script>替换为空(即删除掉),那么来看看是否可以通过构造script脚本进行过滤:
输入:<sc<script>ript>alert(/xss/)</script>,看看结果,请思考该条语句是怎样绕过的,还有没有其他方法,请思考1种以上的方法。
解释:我们可以知道str_replace替换后移动下一个,所以先把<sc<script>ript>中的绿色替换为空,就剩下了<script>,又组成一个新的script标签。
其他绕开方法只要替换重新组合即可以,比如:
<<script>script>
<s<script>cript>
<scr<script>ipt>
<scri<script>pt>
<scrip<script>t>
<script<script>>
2、XSS(Stored)的实验代码分析:
a)安全级别选择Low,然后选择XSS(Stored):
然后在name输入框中输入name,Message 输入框中输入<script>while(true) alert('好好学习,天天向上'); </script>,然后点击“Sign Guestbook”,看看网页运行结果,再想法关掉网页。
接着,打开数据库管理工具,查看“dvwa”数据中的guestbook表,看看里边的内容发生了什么变化?
发现在数据库guestbook表里面的comment增加了我刚才输入的<script>while(true) alert('好好学习,天天向上'); </script>
重新进行步骤:安全级别选择Low,然后选择XSS(Stored),看看是什么结果,再进入数据库删除guestbook表注入的XSS脚本,让网站回归正常。
b)安全级别(medium)
重复a)中的步骤,看看结果有什么不同?通过阅读对应源代码思考。
源码:
分析:
使用strip_tags:去掉 HTML 及 PHP 的标记
而addslashes是使用反斜线引用字符串,将这样’等才能插入到数据库中
使用htmlspecialchars将特殊字符转换为实体字符,如<我们转换为<
在名字那边我们也去除掉<script>标签
3、扩展
我试着做了下绕过name输入限制
首先,我们输入name 为 123,message 为123
然后使用burp suite抓包后,然后进行修改
然后点击forward将其转发出去,插入成功,只可惜这个软件不能插入中文。
转载:
感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/228.html”。
- Web
- 2019-05-22
一、进入DVWA测试系统
选择左侧XSS菜单,分别有3个,XSS(Reflected)表示反射型XSS,XSS(DOM)是基于DOM类型的XSS,XSS(Stored)表示存储型XSS,以XSS(Reflected)为例的内容页显示为:
二、分析不同类型的源代码并进行操作
1、XSS(Reflected)的实验代码分析:
内容页只有一个输入窗口,后台的源程序(目录:…\vulnerabilities\xss_r\source\low.php)如下:
在实验以前,初步分析源代码存在的问题。现在我们来做实验看看
实验步骤步骤:
a)安全级别选择Low,然后选择XSS(Reflected),在输入框输入<script>alert(/XSS/)</script>,看看结果
b)安全级别选择medium,先来看看源代码:
从源代码第8行可以看到做了防XSS过滤,采用str_replace函数将输入中的<script>替换为空(即删除掉),那么来看看是否可以通过构造script脚本进行过滤:
输入:<sc<script>ript>alert(/xss/)</script>,看看结果,请思考该条语句是怎样绕过的,还有没有其他方法,请思考1种以上的方法。
解释:我们可以知道str_replace替换后移动下一个,所以先把<sc<script>ript>中的绿色替换为空,就剩下了<script>,又组成一个新的script标签。
其他绕开方法只要替换重新组合即可以,比如:
<<script>script> <s<script>cript> <scr<script>ipt> <scri<script>pt> <scrip<script>t> <script<script>> |
2、XSS(Stored)的实验代码分析:
a)安全级别选择Low,然后选择XSS(Stored):
然后在name输入框中输入name,Message 输入框中输入<script>while(true) alert('好好学习,天天向上'); </script>,然后点击“Sign Guestbook”,看看网页运行结果,再想法关掉网页。
接着,打开数据库管理工具,查看“dvwa”数据中的guestbook表,看看里边的内容发生了什么变化?
发现在数据库guestbook表里面的comment增加了我刚才输入的<script>while(true) alert('好好学习,天天向上'); </script>
重新进行步骤:安全级别选择Low,然后选择XSS(Stored),看看是什么结果,再进入数据库删除guestbook表注入的XSS脚本,让网站回归正常。
b)安全级别(medium)
重复a)中的步骤,看看结果有什么不同?通过阅读对应源代码思考。
源码:
分析:
使用strip_tags:去掉 HTML 及 PHP 的标记 而addslashes是使用反斜线引用字符串,将这样’等才能插入到数据库中 使用htmlspecialchars将特殊字符转换为实体字符,如<我们转换为< 在名字那边我们也去除掉<script>标签 |
3、扩展
我试着做了下绕过name输入限制
首先,我们输入name 为 123,message 为123
然后使用burp suite抓包后,然后进行修改
然后点击forward将其转发出去,插入成功,只可惜这个软件不能插入中文。
转载: 感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/228.html”。
上一篇:认识404页面的好处及其作用