漏洞重温之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. two types of friend

    两类朋友 第一类,普通朋友,并不能分享一些隐私的感情,只能说一些事情,有一些只是认识的人或者虽然认识很多年但是也只能是这样的! 第二类,关心你,可以交流感清,明显更加亲密一点. 不要对第一类朋友说第二 ...

  2. 字符串学习总结(Hash & Manacher & KMP)

    前言 终于开始学习新的东西了,总结一下字符串的一些知识. NO.1 字符串哈希(Hash) 定义 即将一个字符串转化成一个整数,并保证字符串不同,得到的哈希值不同,这样就可以用来判断一个该字串是否重复 ...

  3. JDBC 连接 MySQL 8.0.15+ 常见错误记录

    课后复习 1. No suitable driver found for mysql:jdbc://localhost:3306/test 错误原因: mysql:jdbc://localhost:3 ...

  4. docker 入门教程(5)——总结与学习资料

    总结 registry:docker镜像仓库,集中存储和管理镜像,类似maven仓库. image:docker镜像,定义容器运行的文件和参数,可以看作是面向对象编程的类. container:doc ...

  5. Java7/8 中的 HashMap 和 ConcurrentHashMap

    Java7 HashMap  数组+链表 Java7 ConcurrentHashMap   Segment数组+HashEntry数组链表+ReenTrantLock分段锁 Java8 HashMa ...

  6. Redis(一)简介及安装、测试

    一.Redis简介: 关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 库是基于特殊的结构,并将数据存储到内存的数据库.从性能上而言, ...

  7. mysql字符集 utf8 和utf8mb4 的区别

    一.导读我们新建mysql数据库的时候,需要指定数据库的字符集,一般我们都是选择utf8这个字符集,但是还会又一个utf8mb4这个字符集,好像和utf8有联系,今天就来解析一下这两者的区别. 二.起 ...

  8. 用大白话讲Java动态代理的原理

    动态代理是什么 首先说下代理模式,代理模式是常见的一种java设计模式,特征是代理类与委托类实现了同样的接口,代理类主要负责为委托类预处理.过滤.转发,以及事后处理等.代理类与委托类之间通常会存在关联 ...

  9. PHP is_object() 函数

    is_object() 函数用于检测变量是否是一个对象. PHP 版本要求: PHP 4, PHP 5, PHP 7高佣联盟 www.cgewang.com 语法 bool is_object ( m ...

  10. 笨办法学python 第四版 中文pdf高清版|网盘下载内附提取码

    笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机了解不多,没有学过编程,但对编程感兴趣的朋友学习使用.这本书以习题的方式引导读者一步一步学习编 程,从简单的打印一 ...