XSS靶场通关

XSS(跨站脚本攻击)是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
XSS按照利用方式主要分为:反射型XSS、存储型XSS、DOM型XSS。反射型XSS是攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS即存储型XSS,非常危险,容易造成蠕虫,大量盗窃cookie。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。

leve1

反射型xss,将name后面的值test改为

 

XSS靶场通关_第1张图片

level2

查看后端代码

得先将前面闭合 ,并且用//将后面的代码注释掉

左边的">去闭合原先的",右边的//去注释原先的">

">//

XSS靶场通关_第2张图片

level3

输入test进行尝试,发现没有成功,观察后端代码

猜测服务器端在这两处都用htmlspecialchars()函数进行了处理。

通过标签的一些特殊事件来执行js代码

构造代码:'onfocus=javascript:alert('zrtonnn') > //&submit=搜索

网页上的一个输入框,当使用鼠标点击该输入框时输入框被选中可以

输入内容的时候就是该输入框获得焦点的时候,此时输入框就会触发onfocus事件.因此

点击当前页面的输入框就可以完成弹框了。

XSS靶场通关_第3张图片

level4

查看后端代码

和上一关一样的思路,用onfocus来执行,

" onclick ="javascript:alert(zrtonnn)"//

XSS靶场通关_第4张图片

 level5

分析图片,还是get方式请求参数,所以还是反射型的xss

上弹窗代码:

测试一下,发现不行

查看后端代码,发现script过滤了,onclick也过滤了

尝试构造a标签:

">zrtonnn//

XSS靶场通关_第5张图片

level6

尝试恶意代码:

发现失败,查看后端代码

可以看到在value属性值中也插入了_符号防止xss的发生

尝试利用大小写混写绕过

">

 XSS靶场通关_第6张图片

level7

上恶意代码测试一下:

查看后端代码

可以看到onfocus事件直接把on字符删除了,javascript中的script字符也被删除了。

接着尝试和上一关一样试试大小写绕过,发现没法成功,接下来试试双写绕过

">alert(1)

XSS靶场通关_第7张图片

level8

查看后端源代码

<>被编码了

在href属性值中script字符被插入了_字符破坏语义

XSS靶场通关_第8张图片

用来闭合引号的引号也被编码了,onfocus一类的事件也被破坏了,大小写绕过也不行

我从网上得知,可以尝试使用Unicode编码进行绕过尝试

javascript:alert(1)

XSS靶场通关_第9张图片

level9

先进行检测

<>"'script onclick

发现双引号和尖括号都给过滤了

查看后端源代码

XSS靶场通关_第10张图片

 语句显示在href中,但是javascript字符中插入了_

我们尝试使用编码绕过

javascript:alert(1)//http://www.baidu.com

XSS靶场通关_第11张图片

level10

来到第十关,可以发现不再有搜索框,也不再有超链接可以给我们点了,连常规语句也不行。

查看源代码,在源码中有一个隐藏的表单。

其中含有t_link  t_history    t_sort这样三个隐藏的标签

构造语句看看哪一个能被突破

?keyword=&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"

出现弹窗

XSS靶场通关_第12张图片

页面响应来看,有一个标签的状态可以被改变。这个标签就是名为t_sort标签,之前都是隐藏状态,但是通过构造参数响应发现只有它里面的值被改变了,因此可以从该标签进行突破,尝试能不能注入恶意代码进行弹窗。

我们使用onclick来处理,输入后点击即可

&t_sort=" type='text' onclick='javascript:alert(1)'>//

XSS靶场通关_第13张图片

level11

XSS靶场通关_第14张图片

点击f12查看网页源代码

XSS靶场通关_第15张图片

 

同第十关一样有隐藏的表单,不同的是多了一个名为t_ref标签,尝试用上一关的方法看看能不能从这几个标签进行突破注入代码。

?keyword=good job!&t_link="type="text&t_history="type="text&t_sort="type="text&t_ref="type="text

查看页面源代码

XSS靶场通关_第16张图片

t_sort仍然是接受参数值的,但是里面的双引号被编码了,这样浏览器只能正常显示字符但是却无法起到闭合的作用了。

使用bp抓包

XSS靶场通关_第17张图片

发现数据包中并没有refer这个请求头

添加referer:111

可以看到我们添加的referer头的值出现在了t_ref标签的value属性值中了,接下来就是从这里突破注入恶意代码了。

referer:"type="text" onclick="alert('zrtonnn')

 XSS靶场通关_第18张图片

level12

XSS靶场通关_第19张图片

 查看页面源代码

看到了t_ua这样一个标签,并且其中的value属性的值发现了一串类似user-agent的东西 ,我们尝试使用bp抓包后进行修改,将ua后面插入恶意代码

"type="text" onclick="alert('zrtonnn')

XSS靶场通关_第20张图片

触发了onclick恶意代码

level13

XSS靶场通关_第21张图片

 查看一下页面源代码看看

XSS靶场通关_第22张图片

可以看出cookie中的值被插入进了value当中,基于此,我们可以修改cookie插入恶意代码达到我们想要的效果

XSS靶场通关_第23张图片

将cookie里的信息修改为: 

user=" type='text' onclick='javascript:alert(1)'>//

XSS靶场通关_第24张图片

level14

十四关有点毛病,无法通关

level15

查看源代码看看

XSS靶场通关_第25张图片

参数值被插入到了

标签中,测试一下

xss/level16.php?keyword=“ ‘ <> script onerror  onclick

通过查看源代码XSS靶场通关_第26张图片

 

发现过滤了script和" '还有空格

尝试加个a标签,空格用回车编码代替,点击图片过关

XSS靶场通关_第27张图片

 

你可能感兴趣的:(xss,webview,javascript)