Web For Pentester靶场搭建 - XSS

Web For Pentester是集成了一些简单的Web常见漏洞的靶场,其中有常见的XSS 文件上传 SQL注入 文件包含等常见漏洞,类似于DVWA

Web For Pentester搭建

Web For Pentester官方直接提供了一个ISO的镜像文件
下载地址:https://www.pentesterlab.com/exercises/web_for_pentester/attachments
直接安装在VMware即可使用

占用空间很小,改为桥接模式,给2G空间,内存512MB就可以,当然也可以更小

完成后进入虚拟机,直接输入ip a,查看靶机IP地址为172.16.1.103

使用物理机浏览器访问靶机http://172.16.1.103

搭建完成

XSS Example 1


这里并没有显示源码,就是黑盒测试,可以看到将name传参的内容使用hello + 传参内容拼接输出到了页面
这使用<script>alert('xss')</script>,进行弹窗测试
payload:http://172.16.1.103/xss/example1.php?name=<script>alert('xss')</script>

弹窗成功

XSS Example 2

直接使用<script>alert('xss')</script>弹窗失败

由于看不到源码,猜测可能是将<script>标签进行了过滤,尝试双写绕过<sc<script>ript>alert('xss')</sc</script>ript>

弹窗成功,也有可能只过滤了小写的script标签,所以也可以进行大小写绕过
<SCRIPT>alert('xss')</SCRIPT>

弹窗成功

XSS Example 3

直接进行<sc<script>ript>alert('xss')</sc</script>ript>双写绕过

弹窗成功

XSS Example 4

尝试<script>alert('xss')</script>弹窗,发现返回error

猜测可能是黑名单,使用<script>和</script>测试


很明显这里对<script>标签进行了黑名单检测,使用<img>标签进行测试
payload:<img src=1 onerror=alert('xss') />

使用img标签自动加载特性,请求1,由于加载错误,使用onerror当错误时事情属性,执行alert弹窗

XSS Example 5

经过测试发现,将alert进行了黑名单,但是并没有对<script>进行黑名单

prompt绕过

使用prompt进行弹窗
payload:<script>prompt('xss')</script>

弹窗成功

comfirm绕过

也可以使用comfirm进行弹窗
payload:<script>confirm</script>

弹窗成功

String.fromCharCode Unicode编码绕过

也可以使用Unicode编码进行绕过
javascrptString.fromCharCode方法可以将Unicode转换为字符串
使用在线工具计算alert('xss')的Unicode值,为97,108,101,114,116,40,39,120,115,115,39,41

payload:<script>eval(String.fromCharCode(97,108,101,114,116,40,39,120,115,115,39,41))</script>

弹窗成功

XSS Example 6

传入test进行测试

发现传参直接在<script>中,所以我们需要响闭合SQL注入语句一样闭合js代码
payload:";alert('xss')////在js中是注释,;代表js中一句代码的结束

弹窗成功

XSS Example 7

直接传入hacker进行测试

所以与Example 6关卡一样,不过是将"改为了'闭合的方式
payload:';alert('xss')//

弹窗成功

XSS Example 8

设置了一个输入框,直接进行弹窗测试

没有将<script>标签进行解析为js,这里应该是将我们的标签进行了实例化
通过观察,action为提交体质,method为提交方式POST

action会从获取url中的提交地址,那么我们直接在url中输入/">就可以闭合form标签

其中/代表文件结束,"闭合action属性值,>闭合form标签
在后面紧跟<script>alert('xss')</script>就可以执行弹窗
拼接payload:/"><select>alert('xss')</select>

观察源代码

弹窗成功

XSS Example 9

检查源代码进行分析

通过location.hash直接获取url中#号后面的内容,并且直接写入到了页面
所以直接传入<script>alert('xss')</script>就可以弹窗

这里乱码,在网上查找大佬的教程,这里ChromeFirefox都会对<>进行编码,所以没有执行成功
在IE浏览器中测试成功

posted @ 2022-04-15 11:29  Junglezt  阅读(796)  评论(0编辑  收藏  举报