搜索
查看: 3063|回复: 0

xss攻关笔记

[复制链接]

693

主题

1005

帖子

2528

积分

管理员

本论坛第一帅

Rank: 9Rank: 9Rank: 9

积分
2528

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2021-6-21 19:13:12 | 显示全部楼层 |阅读模式

XSS是一种发生在Web前端的漏洞,所以其危害的对象也主要是前端用户。 XSS漏洞可以用来进行认证测试、前端js挖矿、盗取用户cookie,甚至对主机进行远程控制。

安装

项目地址:https://gitee.com/Zcodetea/xss-labs

level

level1 我们首先对核心代码进行分析

通过GET方法,将name的值赋值为变量$srt并将其直接输出。 即!如果name=alert()时,将会把结果直接输出。 构造POC

http://192.168.123.240/level1.php?name=%3Cscript%3Ealert('bbskali.cn')%3C/script%3E

leve2

level2 代码解读

我们对数据进行抓包分析 后台过滤了符号,对其进行了实体化。但是我们发现了另一个可搞的地方。input标签的value值,正是我们的输入内容,且没有过滤。 修改payload:">alert() 提前将input标签闭合,让独立出来。

leve3

代码分析 发现value里的也被实体化掉了 以采用“事件”,常用的有两个,onclickonmouseover。 这里用onmouseover,payload:' onmouseover='javascript:alert(1) 这个为什么会起作用呢?你把它带进input的value就明白了。带入: 源码中就会被修改成:` ` 注入成功后,鼠标移动到input输入框,就会触发

leve4

和leve3的原理一样,只不过需要将'改为" payload:" onmouseover='alert(1)'

leve5

发现事件也被过滤掉了。不要感到束手无策,前两题我们用事件是因为,不能用。但是这关没限制呀。我们只是不能用script,还有好多标签可用,比如,。 所以我们提前闭合input给`即可 payload:" /> bbskali.cn`

leve6

同样的套路,但是发现超链接屏蔽了。 href进行了屏蔽,那么有么有屏蔽Href等大小写组合呢? OK 成功!

leve7

script字符串被整个的过滤掉了,输入的on被过滤掉了,javascript的script也过滤了。 payload:">alert()

leve8

发现输入框的value会被填进超链接的href里面去。所以我们只需构造href就好了。 javascript被过滤了。这里你发现调整大小写也没有用。怎么办? 我们就可以使用&#116替换javascript中的t,从而绕过过滤。 payload:javascript:alert()

leve9

输入中要有http://才能被识别写入。 paylaod:javascript:alert()//http://

leve10

没有输入框,也没有超链接了。 通过发现,将输入框隐藏了而已。 payload:t_sort=" type="text" onmouseover=alert() "

leve11

对其源码分析


window.alert = function()  
{     
confirm("完成的不错!");
 window.location.href="level12.php?keyword=good job!"; 
}

欢迎来到level11


欢迎来到level11
没有找到和good job!相关的结果.







payload的长度:9

其中多了一个input,它的value很有趣,就是第10关的url。 在第十关完成的瞬间,我们使用burp抓取数据包

未完待续……

有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表