欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > xss.pwnfunction靶场网站简单8道题练习

xss.pwnfunction靶场网站简单8道题练习

2024/11/14 15:16:08 来源:https://blog.csdn.net/wzzzzz06/article/details/141288928  浏览:    关键词:xss.pwnfunction靶场网站简单8道题练习

本次练习涵盖如图青蓝色标识的8道题目:
在这里插入图片描述1.Ma Spaghet!
2.Jefff
3.Ugandan Knuckles
4.Ricardo Milos
5.Ah That’s Hawt
6.Ligma
7.Mafia
8.Ok,Boomer

1.Ma Spaghet!

该题用到了innerHTML,如果get参数somebody有值就传参,没有就使用默认的somebody
在这里插入图片描述
如图,默认显示somebody ,规则说明:网页要显示警告1337,无须用户操作就要跳出警告,在Chrome浏览器运行
在这里插入图片描述
尝试传参,发现somebody被aaaaa代替了

在这里插入图片描述
尝试用<script>标签执行alert()函数,发现并没有生效,F12查看发现确实传参进去了

在这里插入图片描述
查阅官方文档发现HTML5中<script>标签被认为可能是跨站脚本而被禁用,不过只禁用了<script>一个标签,比如图片底下的<img>仍然可以xss攻击

在这里插入图片描述
根据上方图片的<img src=‘x’ onerrer=‘alert(1)’>给somebody传参,成功显示警告1337

https://sandbox.pwnfunction.com/warmups/ma-spaghet.html?somebody=<img src=1 οnerrοr=‘alert(1337)’>

在这里插入图片描述

2.Jefff

第二题把jeff传参到eval执行函数中了
在这里插入图片描述
闭合字段逃逸出eval()函数并执行alert()函数

https://sandbox.pwnfunction.com/warmups/jefff.html?jeff=aa";alert(1337);"

在这里插入图片描述
另一种方法:

https://sandbox.pwnfunction.com/warmups/jefff.html?jeff=aa"-alert(1337);-"

在这里插入图片描述

3.Ugandan Knuckles

如图,代码过滤了"<“和”>"
在这里插入图片描述
发现页面多了一个框
在这里插入图片描述
于是在原本的<input>标签中加入onclick属性来执行alert()函数,发现能成功,但是需要用户手动点击

在这里插入图片描述
又考虑到有个onfocus可以按tab执行alert()函数,但仍需要用户操作,于是添加autofocus
最终成功告警
https://sandbox.pwnfunction.com/warmups/da-wey.html?wey=aaa" οnfοcus=alert(1337) autofocus="

在这里插入图片描述

4.Ricardo Milos

该代码会2秒后自动提交
在这里插入图片描述
默认提交
在这里插入图片描述

因为没有过滤,尝试写入xss代码,警告成功

https://sandbox.pwnfunction.com/warmups/ricardo.html?ricardo=javascript:alert(1337)

在这里插入图片描述

5.Ah That’s Hawt

改代码过滤了 “[” , “]” , “(” , “)”
在这里插入图片描述
既然()不能用,选择将其转换成URL编码来绕过过滤

在这里插入图片描述
结果无法执行,F12查看代码发现()并没有被URL解释

在这里插入图片描述

思考是不是%的问题,将%也进行URL编码

在这里插入图片描述
加入%25后发现出现了%28和%29,但是没有被URL解释

在这里插入图片描述
将οnerrοr=location后成功警告

https://sandbox.pwnfunction.com/warmups/thats-hawt.html?markassbrownlee=<img src=1 οnerrοr=location=“javascript:alert%25281337%2529”>

在这里插入图片描述

6.Ligma

如图,过滤了大小写和数字
在这里插入图片描述
可以去regex101.com网站测试正则过滤

在这里插入图片描述
jsfuck可以绕过这个正则,只是编码出来的字符串很长

在这里插入图片描述

还需要对其进行URL编码,才能被URL解释

在这里插入图片描述
最终成功警告

在这里插入图片描述

7.Mafia

如图过滤了"" , " ’ " , ’ " ', " + " , " - " , " ! " , " \ " , " [ " , " ] ",还有alert,但是()没有过滤,所以是可以使用函数的

在这里插入图片描述
因为开发者没有考虑到confirm()函数,可以投机取巧弹出警告

在这里插入图片描述
当然,也可以利用JavaScript的特性,构造函数后面加()可以直接执行,Function()(),
因为要绕过alert过滤,将其大写并转换回小写让JavaScript识别。

在这里插入图片描述
如图,成功告警
https://sandbox.pwnfunction.com/warmups/mafia.html?mafia=Function(/ALERT(1337)/.source.toLowerCase())()

在这里插入图片描述
通过查阅官方文档,发现了parseint和tostring两个函数可以进行进制转换

在这里插入图片描述
在这里插入图片描述
F12在控制台尝试转换进制,发现29进制只显示aler,而30进制显示alert,这是因为16进制是0-F,而30进制刚好对应到字母T

在这里插入图片描述
如图,成功告警
https://sandbox.pwnfunction.com/warmups/mafia.html?mafia=eval(8680439…toString(30))(1337)

在这里插入图片描述
location.hash可以输出#aaaa字符串如图,可以使用slice来将#去掉

在这里插入图片描述
外边再添加一个eval执行语句,成功告警

在这里插入图片描述

8.Ok,Boomer

DOMPurify这个过滤很厉害
在这里插入图片描述
尝试用<img>,发现有害字符串都被过滤了
在这里插入图片描述
尝试<a>,发现也被过滤了

在这里插入图片描述
选择不传参,默认页面下发现OK找不到,回到上头发现有一个定时函数提到了OK

在这里插入图片描述
如下图F12控制台,发现该函数下的字符串可以被输出

在这里插入图片描述
考虑到href可以调用函数,尝试加入JavaScript:alert(1337),发现仍被过滤

在这里插入图片描述
通过在github搜索DOMPurify,找到了其变态的过滤机制,发现有白名单

在这里插入图片描述
尝试其中一个cid来代替JavaScript,发现成功告警

在这里插入图片描述
替换成另一个白名单callto发现也能告警

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com