惊雷无声 发表于 2024-8-24 15:54:31

菜鸟通关Xss-labs记录(1-16)

基础情况

小皮面板8.1
所需知识

XSS毛病概述

跨站攻击脚本(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets)的缩写肴杂,故将跨站脚本攻击缩写为XSS
恶意攻击者会往web页面里插入恶意script代码,当用户浏览该页时,嵌入此中web里面的script代码会被实行,从而到达恶意攻击用户的目的
攻击流程:
https://i-blog.csdnimg.cn/direct/967222ddb7564bb0991e8d38c9eb3505.png
毛病出现的原因:
程序对输入和输出的控制不敷严格,导致脚本输入后,在输出到前段时被浏览器看成有效代码解析实行从而产生危害
https://i-blog.csdnimg.cn/direct/4172c6e00a944eee841e0f417ab8e7b6.png
XSS类型

1.反射型:
反射型XSS又称非持久性XSS,这种攻击往往具有一次性
攻击者通过邮件等情势将包罗XSS代码的链接发送给正常用户,当用户点击时,服务器接受该用户的哀求并进行处理,然后把带有XSS的代码发送给用户。用户浏览器解析实行代码,触发XSS毛病
2.存储型:
存储型XSS又称持久型XSS,攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性
攻击者在论坛、博客、留言板中,发帖的过程中嵌入XSS攻击代码,帖子被目标服务器存储在数据库中。当用户进行正常访问时,触发XSS代码
3.DOM型:
DOM型XSS全称Document Object Model,使用DOM动态访问更新文档的内容结构及样式
服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代码,触发XSS毛病
一般不与服务器产生数据交互,属于低危毛病
通关过程

通用思路

通过各种可以提交内容的地方,例如导航栏,大概文本框等地方,进行注入,只要有弹窗即为成功。
1.第一关

我们先看看源码
https://i-blog.csdnimg.cn/direct/d3cb7102080e49d7aff7f7983eb6db83.png
源码中可以看出这是个GET类型,那么我们就看导航栏就可以,导航栏中有一段“?name=test”,很显着,我们可以在这里进行注入
?name=<script>alert(123)</script>
https://i-blog.csdnimg.cn/direct/78e223e4209b4acfbb6e4c575a005570.png
可以看到成功了
2.第二关

https://i-blog.csdnimg.cn/direct/1e0234c99c79475fa92e4012c0a1d2d1.png
这里我们接着看源码,暂时没发现什么标题,以是我们先提交上一关的Payload
<script>alert(123)</script>
提交后,并没有弹窗弹出,我们接着看源码
https://i-blog.csdnimg.cn/direct/f2aa475f871c4296803600c92955317b.png
可以看到,这里我们输入的特殊符号被转义掉了,但是在value中返回的没有被转义,因此我们只需要闭合掉value前面"<和即可
"> <script>alert(123)</script>
https://i-blog.csdnimg.cn/direct/0d752b47dd9d478488dda06f683745d7.png
3.第三关

还是跟上一关一样,我们先输入下面这串代码,看看有什么标题
<script>alert(123)</script>
https://i-blog.csdnimg.cn/direct/306230ab7c9343f1ac922884c6b58309.png
可以看到这里相较于上一关,它在value中的值也转义了那我们就看看后端的源码,
https://i-blog.csdnimg.cn/direct/c23d064c75dd4836aa6935d47259b79a.png
可以看到这里用htmlspecialchars()函数进行转义,这个函数默认是只编码双引号的,而且单引号无论如何都不转义。因此我们这里需要用单引号闭合而且还要通过其他方式来注入,这里我们利用onfocus事件绕过,这里引用下百度搜索到的
https://i-blog.csdnimg.cn/direct/70a4c3f3b7e0477da7cd3172d20f71cc.png
因此这里我们的Payload
'οnclick='alert(1)
输入该Payload,提交后,点击输入框即可。
https://i-blog.csdnimg.cn/direct/40180554a3e04229a5cb53aacaeecd33.png
4.第四关

仍旧是输入我们基础的JS弹窗代码,但是你会发现,它会删除<>,因此这里我们仍旧可以使用上一关的Payload,只需要将单引号改为双引号闭合即可
https://i-blog.csdnimg.cn/direct/7806b03703764321a228116877beffed.png
" οnclick="alert(1)
https://i-blog.csdnimg.cn/direct/ac75560ce8dc4daa8a7f0c10f41d8a8e.png
5.第五关

这里可以看到,我们在输入后,script变为了scr_ipt,
https://i-blog.csdnimg.cn/direct/9e54ef0e4f324708b13f6b991ae6e49e.png
这下我们看后端源码,可以看到它是将<script替换成<scr_ipt,把on改成o_n
https://i-blog.csdnimg.cn/direct/0f854202cb27464cb1689258c4b8d773.png
那么此时我们就可以用另外一种方法,
https://i-blog.csdnimg.cn/direct/27cfaebccbda4a118fbcf8b97dfd79cf.png
https://i-blog.csdnimg.cn/direct/561f6e25629449fe9e7d9b3c12457bb5.png
那么我们可以利用这个特性,来构造我们的Payload,固然不要忘记闭合
"><a href="javascript:alert(1)">
https://i-blog.csdnimg.cn/direct/a36fae19b0184d5ba313b1fe1fe2a6ed.png
6.第六关

如果利用前面关卡的思路来不断实行的话,发现它过滤了很多多少关键词,我们来看看看后端源码
https://i-blog.csdnimg.cn/direct/f3669329cd1145fcb26eca940cf21b14.png
果不其然,它全过滤掉了,但是你会发现它没有过滤巨细写,那么这里我们就可以利用巨细写来绕过
//其余的Payload也可以,这里就不多展示了
"> <sCRipt>alert(123)</sCRipt>
https://i-blog.csdnimg.cn/direct/138e1614ee6d405e8b09133dab53ce3c.png
7.第七关

这一关也是一样,你会发现它筛掉了关键词,而且巨细也不管用了,script也被替换为空了,我们看看源码
https://i-blog.csdnimg.cn/direct/4fd668fdd90a47caa68389b19692a20c.png
果然是,但是这里的筛查只筛查一遍,那么如果我们把script写为sscriptcript,那么经过它的筛查,那不就成为script了吗?
"> <sscriptcript>alert(123)</sscriptcript>
https://i-blog.csdnimg.cn/direct/8641dcd1d32d4a6fbeea557bb608fe0d.png
8.第八关

还是老样子,可以看到它这里把值传到了两个地方,一个在value另外一个在href,那么我们可以想象到,这里就是需要我们注入正确的Pyload,然后通过href连接来进行注入,href是支持Unicode解码的,以是这里我们需要转换,转化工具百度上搜索即可
https://i-blog.csdnimg.cn/direct/f206dc73ff9648828c2943a30816f27a.png
javascript:alert()
//编码后
j&#97;v&#97;s&#99;ript&#58;&#97;lert&#40;&#41;
https://i-blog.csdnimg.cn/direct/2d6d188e1f3345ddb0088cbe529d4d5d.png
9.第九关

老样子
看来这里它会把不符合要求的东西替换成”您的连接不合法?有没有“
https://i-blog.csdnimg.cn/direct/c80eadd305f5494f8b5b7701860950a5.png
那么我们看看源码
https://i-blog.csdnimg.cn/direct/8771db26223e4858aad47e894eadaa6b.png
这个代码会查验你输入的内容中有没有”http://“,如果有就正常提交,如果没有,那么就跟上面返回的内容一样了。那么我们只需要加入http://并且表明掉即可
j&#97;v&#97;s&#99;ript&#58;&#97;lert&#40;&#41;/*http://*/
https://i-blog.csdnimg.cn/direct/594d77efc1cb4dac9f8d0284247bb12d.png
10.第十关

这一关很希奇,你会发现没有输入框,而且前端代码里看不出什么东西,那么我们只能看源码了
https://i-blog.csdnimg.cn/direct/cd3bd0943a5e4b1fa52e25d6a0d95cfb.png
可以看到,他在这里做了防止<>的东西,而且把输入框隐蔽了,那么我们需要把这个Type改回来,改成text,我们只需要在构造好的payload后面加入type="text"即可,固然,这是从url注入,
?t_sort=" οnfοcus=javascript:alert() type="text
https://i-blog.csdnimg.cn/direct/ad5a80a122bd4681b34603bd76b782fe.png
11.第十一关

有了上一关的经验,我们直接看源码
https://i-blog.csdnimg.cn/direct/f1cf6459630543789e1d2e5c5716ef56.png
可以看到,这里面与上一关差别,这一关有了t_ref字段,而这个字段是referer头,那么很显着了,这里用到的是referer注入,我们先通过BP来抓包了
https://i-blog.csdnimg.cn/direct/4a0b4b0fda294957b0ac887eda650473.png
这里我们直接添加或修改referer字段即可,这里它把<>过滤掉了,以是我们用这个
Referer: " οnfοcus=javascript:alert() type="text
https://i-blog.csdnimg.cn/direct/3ffaef8a940b4b7eb722b334d95f48d5.png
12.第十二关

https://i-blog.csdnimg.cn/direct/ebbaf490a8274815821cbeefc111c3d7.png
换汤不换药,还是一样的把戏,只不外换字段了,这里用的是User-Agent字段,步骤与上一关基本同等
User-Agent:"οnfοcus=javascript:alert() type="text
https://i-blog.csdnimg.cn/direct/4a24a3fb67bc451ebf115772e5c1301c.png
https://i-blog.csdnimg.cn/direct/aaf40490a1f740eb8d5f262e50af934c.png
13.第十三关

https://i-blog.csdnimg.cn/direct/a0a013fbae6e4126b83bbf02c568a1d7.png
还是一样,这一次是Cookie值,老样子
Cookie: user="οnfοcus=javascript:alert() type="text
https://i-blog.csdnimg.cn/direct/a9d9cfa08d934889a8e8f5841d6cef80.png
14.第十四关

这一关的Payloda是一张图片马,正常情况下打开14关的时间会跳转到一个地方,然后需要在那里上传含有JS代码的图片马,从而到达弹窗的效果,这里由于网站已经制止服务了,如果想做类似这关的标题,可以去试试upload-labs。
15.第十五关

先看源码
https://i-blog.csdnimg.cn/direct/acd787c3d48c4717adc38008078395f5.png
可以看到最后一句话很可疑,ng-include,这肯定是通过的关键
想了解的去看看下面大佬总结的
ng-include指令
总的来说,他就是引用外部html连接,默认情况下,包罗的文件需要包罗在同一个域名下,为了让弹窗,我们选用最简单的第一关,这里我们需要选择标签,而且标签必须是可以点击的,
?src='/level1.php?name=<img src=1 οnerrοr=alert()>'
16.第十六关

https://i-blog.csdnimg.cn/direct/f4e62a2ddf68413e991acb453972d23f.png
https://i-blog.csdnimg.cn/direct/74e04c51ed3543a28e91e484528abb7e.png
十六关最大的差别就是它屏蔽了空格键,那么我们可以用其他符号来代替空格,好比换行符%0a,再者,由于它与15关一样,没有可以交互的东西,以是我们这里创造一个可以交互的东西。
?keyword=<img%0asrc=1%0aonerror=alert(1)>
https://i-blog.csdnimg.cn/direct/f82acdec8e4747e88cfca12edc21347f.png
后续关卡都用到了插件,并且与逆向相干,本人暂时还未学习,等学完后会接着更新

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 菜鸟通关Xss-labs记录(1-16)