漏洞重温之XSS(中)


XSS挑战之旅 level8-level13

level8

第八关开局,发现button从搜索变成了友情链接,发现该页面情况跟前面不同,先右键查看代码,再进行尝试。

上测试代码,查看内容会被传输到何处。

首先,我们可以看到尖括号被转义了。其次,可以发现下方的a标签中有我们之前输入的内容。

在这种情况下,可以进行的尝试有不使用尖括号的js事件进行xss攻击。其次,可以看到,我们输入的内容可以直接传入到下方的a标签,可以尝试直接输入javascript:alert(1)尝试xss攻击。

PS:这里尝试的原因是因为在第五关的时候,可以看到,a标签的href属性可以利用javascirpt:alert(1)进行xss攻击,在第五关的时候,因为页面不存在a标签,所以我们还需要构造a标签来进行攻击。第八关,如果我们输入的内容可以直接被传送到a标签中的href属性中,那么或许可以直接利用该方式进行xss攻击。

javascript:alert(1)

第八关,通关。


level9

进入第九关,发现跟第八关类似,button内容同样为添加友情链接。进入规定步骤,右键查看网页源码。

老规矩,上测试代码。

网页没有发生任何变化,右键查看网页源码,查找问题所在。

可以看到,尖括号被转义,同时其他地方没有显示我们输入的内容。猜测可能不管我们输入什么,href属性都不会有任何更改。所以,如果这个属性认定无用,那就直接舍弃该属性,闭合之后,使用js事件来进行xss攻击。

" onclick=alert(1) "

第九关,通关。


level10

进入第十关,发现网页并不存在任何文本框,但看到url中有keyword值跟网页中显示的一样,尝试在url中插入xss攻击代码,尝试 进行xss攻击。

话不多说,上测试代码。

此处可以发现,我们更改keyword值,的确修改了网页内容,但代码却没有被执行。这表明代码肯定在什么地方出现问题。

右键查看网页源码。

从代码中可以看到,修改keyword值只是修改了网页文本中的内容,并没有在代码中有任何修改。但可以发现,相比于前面几关,第十关多了一个form表单。推测此处的xss跟该表单存在联系,尝试在url后面拼接表单中的值,尝试发现能通过前段修改的位置。

&t_link=" type="text" 1&t_history=" type="text" 2&t_sort=" type="text" 3

通过页面反馈,我们通过修改表单中的数据,的确可以成功的将代码插入到网页中,但因为我们开始是讲所有数据都尝试了,并无法确认究竟是哪个数据导致网页发生变化(PS:这里可能是一处,也可能是全部。),所以,我们直接右键查看网页源码,查找究竟是那个位置导致了网页的变化。

从这个地方,可以看到,t_sort是受我们影响的数据。所以,我们可以通过修改该位置,来完成xss攻击。

完整攻击代码

&t_sort=" type="text" onclick="alert(1)

第十关,通关。


level11

进入第十一关,发现跟该网页跟第十关类似,有了第十关的经验,所以放弃无所谓的尝试,直接右键查看网页源码。

PS:该思路是闯关思路,因为前面的经验,所以可以跳过,在正常测试过程中,建议先利用测试代码进行尝试,以找到问题所在。XSS最常用的,不是各种高级绕过,或者各种千奇百怪的XSS,而是最为基础的几种测试语句,因为这个语句,能够告诉我们这个地方应该怎么处理。所以不要看不起测试语句,一定要记住,任何情况都能写出来。

跟上一关一样,该位置多了一个from表单,并且此处多了一个t_ref,作为关卡,我不认为他会凭空多出来一条没用的数据。所以,按照第十关的方式测试,但是这个时候我们只需要测试多出来的数据就好了。

网页没有发生任何变化,那肯定是代码出现了问题,右键查看网页源码,找寻问题所在。

可以看到,我们的内容,根本没有插入到代码中。这个时候,发现,t_ref的值是数据包中的referer内容,猜测该位置可能无法直接从网页中改变,而是需要通过抓包工具在数据包中修改才能达到xss攻击的目的。

" type="text" onclick="alert(1)

第十一关,通关。


level12

可以看到,该关同样没有文本框,无法让我们执行见框就插原则,又因为前面几关的经验,让我们知道修改url中的Keyword收效甚微,所以我们直接右键查看网页源码,查找可以利用的部分。

可以看到,该处表单中多了一条t_ua,根据后面的数据,我们可以猜测到数据里面里面的内容为我们访问的UA(User-Agent)简单来理解,就是我们访问服务器的时候,PC的版本,系统,浏览器的版本等信息。

根据十一关的经验,猜测该位置可能需要替换t_ua的value来完成xss攻击。

上抓包工具

可以看到,在我们修改掉UA后,网页内容也发生了改变。

十二关,通关。


level13

第十三关,可以看到,该页面同样不存在文本框,直接右键打开查看源码。

可以发现,这时候表单里面多的内容为t_cook,根据前面几关的联想,可以猜测,该位置,是利用数据包中的cookie进行xss,攻击。

直接请上抓包工具。

PS:经过测试,前方的ctduid可以直接删除,对于我们的xss攻击并无任何影响,但是必须要留下user。经过猜测,可能cookie是网站识别我们的凭证,如果我们凭证中什么都没有,那么可能会导致利用cookie进行xss的想法失效。

第十三关,通关。


漏洞重温之XSS(中)的更多相关文章

  1. 漏洞重温之XSS(下)

    XSS总结 XSS的可利用方式 1.在登录后才可以访问的页面插入xss代码,诱惑用户访问,便可直接偷取用户cookie,达到窃取用户身份信息的目的. 2.修改昵称,或个人身份信息.如果别的用户在登录状 ...

  2. 漏洞重温之XSS(上)

    漏洞简介 跨站脚本攻击(XSS)是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览页面之时,嵌入web网页中的script代码会被执行,从而达到恶意攻击用户的目的. XSS漏洞通常是通过 ...

  3. [80Sec]深掘XSS漏洞场景之XSS Rootkit

    顶80SEC的牛. 深掘XSS漏洞场景之XSS Rootkit[完整修订版] EMail: rayh4c#80sec.com Site: http://www.80sec.com Date: 2011 ...

  4. 漏洞重温之sql注入(五)

    漏洞重温之sql注入(五) sqli-labs通关之旅 填坑来了! Less-17 首先,17关,我们先查看一下页面,发现网页正中间是一个登录框. 显然,该关卡的注入应该为post型. 直接查看源码. ...

  5. 漏洞重温之sql注入(六)

    漏洞重温之sql注入(六) sqli-labs通关之旅 Less-26 进入第26关,首先我们可以从网页的提示看出本关是get型注入. 我们给页面添加上id参数后直接去查看源码. 需要关注的东西我已经 ...

  6. 漏洞重温之sql注入(七)

    漏洞重温之sql注入(七) sqli-labs通关之旅 Less-31 首先,进入31关,我们先添加上id参数. 然后,我们查看源码. 我们门可以看到,index页面源码其实很简单,网页也没有对我们的 ...

  7. SQL点滴2—重温sql语句中的join操作

    原文:SQL点滴2-重温sql语句中的join操作 1.join语句 Sql join语句用来合并两个或多个表中的记录.ANSI标准SQL语句中有四种JOIN:INNER,OUTER,LEFTER,R ...

  8. 漏洞重温之文件上传(FUZZ)

    文件上传FUZZ思路通关upload-labs Pass-16 黑盒阶段 进入第十六关,首先我们能看到,该页面的上传点为图片上传. 首先,先把对方想的简单一点,这里虽然是上传图片,但是可能只是前端js ...

  9. xss中shellcode的调用

    shellcode就是利用漏洞所执行的代码 在完整的xss攻击之中,会将shellcode存放在一定的地方,然后触发漏洞,引发shellcode. 1.远程调用执行js 可将js代码单独放在一个js文 ...

随机推荐

  1. ant design pro 实战 : 使用 ztree

    应当指出,antd 是有 ztree 组件的,但是太简单,无法满足复杂的业务需求. 所以我还是决定使用zTree. 用 npm | cnpm 或者 yarn | tyarn 安装,这一步略. 在 js ...

  2. Vuex里的module选项和移动端布局

    Vuex里的modules 在store文件夹里创建一个modules的文件夹,里面随意创建一个.js文件,然后export输出

  3. java opencsv解析csv文件

    记一次使用opencsv解析csv文件时碰到的坑 最近在开发过程中需要解析csv文件,公司用的解析工具是opencsv,在根据opencsv的官方文档去解析时发现csv文件中含有繁体字,使用其自带的C ...

  4. CDQ分治 & 整体分治

    Part 1:CDQ分治 CDQ分治讲解博客 可以把CDQ分治理解为类似与归并排序求逆序对个数的一种分治算法(至少我现在是这么想的).先处理完左右两边各自对答案的贡献,在处理跨越左右两边的对答案的贡献 ...

  5. 小书MybatisPlus第7篇-代码生成器的原理精讲及使用方法

    本文是本系列文章的第七篇,前6篇访问地址如下: 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总结 小书Mybatis ...

  6. String常用处理方法

    1.去空格 用于删除字符串的头尾空白符. 语法:public String trim() 返回值:删除头尾空白符的字符串. 删除所有空格 str.replace(" ", &quo ...

  7. Lua学习入门(基本数据类型)

    数据类型 Lua 中有 8 个基本类型分别为:nil.boolean.number.string.userdata.function.thread 和 table. 数据类型 描述 nil 这个最简单 ...

  8. 对‘sqrt’未定义的引用

    首先, 引用数学库 #include<math.h> 引用数学库时,要在编译后加上-lm 是每一个都要加!! 如下: gcc su.c -o su.o -lm gcc -g  su.c - ...

  9. Text多行文本框基本用法

    1.Text(root,width,height,bg) 主窗口,宽度,高度,背景色 2.使用 .insert() 方法添加内容 Text 对象.insert(几行.几列,"内容" ...

  10. Hexo 静态博客指南:建站教程(上)

    本文最初发布于我的个人博客Bambrow's Blog,采用 BY-NC-SA 许可协议,转载请注明出处.若有后续更新,将更新于原博客.欢迎去我的博客阅读更多文章! 本文详细记录一下站点建立过程,以便 ...