iwebsec靶场 XSS漏洞通关笔记
目录
前言
https://blog.csdn.net/mooyuan/article/details/1.反射性XSS
2.存储型XSS
3.DOM型XSS
第0https://blog.csdn.net/mooyuan/article/details/1关 反射型XSS漏洞
https://blog.csdn.net/mooyuan/article/details/1.打开靶场
2.源码分析
3.渗透
第02关 存储型XSS漏洞
https://blog.csdn.net/mooyuan/article/details/1.打开靶场
2.源码分析
4.渗透
方法https://blog.csdn.net/mooyuan/article/details/1:
方法2
方法3
第03关 DOM XSS漏洞
https://blog.csdn.net/mooyuan/article/details/1.打开靶场
2.源码分析
3.渗透分析
3.渗透过程
(https://blog.csdn.net/mooyuan/article/details/1)渗透方法https://blog.csdn.net/mooyuan/article/details/1
(2)渗透方法2
(3)渗透方法3
第04关 XSS修复示例
https://blog.csdn.net/mooyuan/article/details/1.打开靶场
2.源码分析
3.渗透实战
前言
Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
https://blog.csdn.net/mooyuan/article/details/1.反射性XSS
反射型XXS是一种非持久性的攻击,它指的是恶意攻击者往Web页面里插入恶意代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的目的。
2.存储型XSS
存储型XSS又名持久型XSS,攻击的恶意代码会被存储在数据库、文件系统等存储介质,因为是永久存储所以功效持久。通常来讲攻击者可以把payload放在网站留言板、评论等位置,等用户访问网站并有匹配payload的行为时,即可触发攻击。
3.DOM型XSS
DOM XSS的XSS代码并不需要服务器解析响应的直接参与,触发XSS靠的就是浏览器端的DOM解析,可以认为完全是客户端的事情,无法通过WAF防护。
第0https://blog.csdn.net/mooyuan/article/details/1关 反射型XSS漏洞
https://blog.csdn.net/mooyuan/article/details/1.打开靶场
2.源码分析
如下所示,未对传入参数name进行任何过滤,存在xss漏洞
反射型XSS漏洞反射型XSS漏洞
/0https://blog.csdn.net/mooyuan/article/details/1.php?name=iwebsec
很明显,这是一个反射型的XSS漏洞
3.渗透
传入参数alert('ljn')
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:8https://blog.csdn.net/mooyuan/article/details/1/xss/0https://blog.csdn.net/mooyuan/article/details/1.php?name=渗透成功,效果如下所示
第02关 存储型XSS漏洞
https://blog.csdn.net/mooyuan/article/details/1.打开靶场
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:8https://blog.csdn.net/mooyuan/article/details/1/xss/02.php如下所示,这是一个留言板相关内容的网页
2.源码分析
如下所示对传入的参数name并未做任何过滤,具备XSS漏洞。
存储型XSS漏洞存储型XSS漏洞
请输入你的留言信息
同时对参数name使用SQL语句进行insert存储,关键源码如下
$sql="INSERT INTO xss set name='$name'"; $result=mysql_query($sql);
接下来再使用select查询语句将其展示出来,关键源码如下
$sql="SELECT * FROM xss"; $result=mysql_query($sql);
很明显这是具有存储型XSS漏洞,注入的XSS命令会永久存储到服务器,从而触发XSS漏洞。
4.渗透
方法https://blog.csdn.net/mooyuan/article/details/1:
这里要注意的是,因为涉及到SQL语句,第一个SQL插入源码如下所示,闭合方式为单引号。
$sql="INSERT INTO xss set name='$name'";
故而name的赋值不可以有单引号,故而如果想输出ljn,那么参数不能是alert('ljn')这是因为包含了单引号
alert(/xss/)
如下所示
渗透结果如下所示
方法2
因为使用SQL语句单引号闭合,故而可以选择使用双引号来进行渗透
alert("hello ljn")
在留言处输入参数后如下所示
如下所示,渗透成功
方法3
alert(2022https://blog.csdn.net/mooyuan/article/details/1https://blog.csdn.net/mooyuan/article/details/128)
如下所示渗透成功
第03关 DOM XSS漏洞
https://blog.csdn.net/mooyuan/article/details/1.打开靶场
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:8https://blog.csdn.net/mooyuan/article/details/1/xss/03.php
2.源码分析
如下代码中存在domxss函数,可能存在dom型xss漏洞
DOM XSS漏洞DOM XSS漏洞
请输入内容
3.渗透分析
输入参数,判断是否有过滤信息
'"?%66666ljn
在当前页面元素,搜索框中输入关键字搜索ljn,寻找刚刚输入的内容,很明显所有字符都还在,并不存在过滤单引号和双引号等特殊字符, 并将输入内容显示到页面中。
接下来分析一下闭合关系,查看器中的内容如下,于是可以输入完整的xss语句,通过将内容输出到页面,再出发显示到页面的内容执行xss脚本。
'"<>?%66666ljn
3.渗透过程
(https://blog.csdn.net/mooyuan/article/details/1)渗透方法https://blog.csdn.net/mooyuan/article/details/1
基于此可以构造闭合,参数输入xss恶意脚本(点击ljn后输出你好)
ljn
输入后提交如下所示
在页面的ljn处点击鼠标,则弹出你好,渗透成功
(2)渗透方法2
参数为xss恶意脚本(因图标执行错误而出发弹框输出ljn)
如下所示,渗透成功
(3)渗透方法3
参数为xss恶意脚本(鼠标移动到图标后输出ljn)
提交后如下图所示
当鼠标移动到图标处时,弹出弹框,渗透成功
第04关 XSS修复示例
https://blog.csdn.net/mooyuan/article/details/1.打开靶场
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:8https://blog.csdn.net/mooyuan/article/details/1/xss/04.php
2.源码分析
如下所示对参数使用了htmlspecialchars函数过滤,这样就可以防范恶意的xss攻击
XSS修复示例XSS修复示例
/04.php?name=iwebsec
3.渗透实战
再次尝试第0https://blog.csdn.net/mooyuan/article/details/1关渗透成功的内容
alert('ljn')
如下所示,渗透失败,说明xss漏洞修复成功