漏洞重温之XSS(中)


XSS挑战之旅 level8-level13

level8

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

a标签axios带header_xss攻击

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

a标签axios带header_右键_02

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

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

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

javascript:alert(1)

a标签axios带header_右键_03

第八关,通关。


level9

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

a标签axios带header_右键_04

老规矩,上测试代码。

a标签axios带header_右键_05

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

a标签axios带header_数据_06

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

" onclick=alert(1) "

a标签axios带header_数据_07

a标签axios带header_数据_08

第九关,通关。


level10

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

a标签axios带header_右键_09

话不多说,上测试代码。

a标签axios带header_数据_10

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

右键查看网页源码。

a标签axios带header_a标签axios带header_11

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

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

a标签axios带header_数据_12

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

a标签axios带header_a标签axios带header_13

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

完整攻击代码

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

a标签axios带header_数据_14

第十关,通关。


level11

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

a标签axios带header_a标签axios带header_15

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

a标签axios带header_xss攻击_16

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

a标签axios带header_右键_17

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

a标签axios带header_数据_18

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

a标签axios带header_a标签axios带header_19

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

a标签axios带header_右键_20

第十一关,通关。


level12

a标签axios带header_右键_21

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

a标签axios带header_a标签axios带header_22

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

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

上抓包工具

a标签axios带header_a标签axios带header_23

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

a标签axios带header_右键_24

十二关,通关。


level13

a标签axios带header_右键_25

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

a标签axios带header_数据_26

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

直接请上抓包工具。

a标签axios带header_数据_27

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

a标签axios带header_a标签axios带header_28

第十三关,通关。