xsschallenge1~13通关详细教程

文章目录

  • XSS 挑战靶场通关
    • level1
    • level2
    • level3
    • level4
    • level5
    • level6
    • level7
    • level8
    • level9
    • level10
    • level11
    • level12
    • level13

XSS 挑战靶场通关

level1

通过观察发现这个用户信息可以修改

xsschallenge1~13通关详细教程_第1张图片

那么我们直接输入攻击代码

<script>alert(/wuhu/)script>

xsschallenge1~13通关详细教程_第2张图片

弹框如下:

xsschallenge1~13通关详细教程_第3张图片

level2

发现一个输入框,输入攻击代码观察页面反应

xsschallenge1~13通关详细教程_第4张图片

页面将我们的攻击代码进行了打印。

查看网页源代码,发现将我们输入的尖括号进行了转义。

xsschallenge1~13通关详细教程_第5张图片

源码

xsschallenge1~13通关详细教程_第6张图片

htmlspecialchars(string): 把预定义的字符: “<” (小于)、 “>” (大于)、& 、‘’、“” 转换为HTML实体,防止浏览器将其作为HTML元素。

impossible级别的代码先判断name是否为空,不为空的话然后验证其token,来防范CSRF攻击。然后再用htmlspecialchars函数将name中的预定义字符 “<” (小于)和 “>” (大于)转换成html实体,这样就防止了填入标签。

预定义的字符如下:

& 成为 &
" 成为 "
' 成为 '
< 成为 <
> 成为 >

这里我们可以闭合该value参数,添加一个onclick属性

onclick 是一个 HTML 属性,用于在用户点击(或触摸)指定的 HTML 元素时触发相应的 JavaScript 代码。

xsschallenge1~13通关详细教程_第7张图片

那么我们可以构造其他攻击代码

" οnclick="alert(99)"

xsschallenge1~13通关详细教程_第8张图片

闭合input标签,将语句独立出来

"><script>alert(/xss/)script>

xsschallenge1~13通关详细教程_第9张图片

xsschallenge1~13通关详细教程_第10张图片

level3

查看网页源代码,发现该闭合方式是单引号

xsschallenge1~13通关详细教程_第11张图片

构造我们的攻击代码

' onclick='alert(/wuhu/) 

xsschallenge1~13通关详细教程_第12张图片

level4

查看页面源代码

xsschallenge1~13通关详细教程_第13张图片

发现闭合方式是双引号闭合。

构造我们的攻击代码

" onclick="alert(/wuhu/)

xsschallenge1~13通关详细教程_第14张图片

level5

注入我们的攻击代码

" οnclick="alert(/wuhu/)

页面没有反应

xsschallenge1~13通关详细教程_第15张图片

查看页面源代码

xsschallenge1~13通关详细教程_第16张图片

这里将我们输入的事件onclick的on之间添加了下划线。

试一下

xsschallenge1~13通关详细教程_第37张图片

页面没有任何反应,查看网页源代码,发现了三个隐藏的输入框参数分别为t_link,t_history,t_sort。

xsschallenge1~13通关详细教程_第38张图片

尝试给这三个参数赋值

xsschallenge1~13通关详细教程_第39张图片

发现只有t_sort有值

xsschallenge1~13通关详细教程_第40张图片

查看源代码

xsschallenge1~13通关详细教程_第41张图片

这里对左右尖括号进行了过滤

那么我们采用给t_sort赋值的方式注入攻击代码:

t_sort=" type="text" onclick = "alert(/xss/)

xsschallenge1~13通关详细教程_第42张图片

查看页面源代码,将之前隐藏的输入框显示出来,并且添加了一个数据鼠标点击事件。

xsschallenge1~13通关详细教程_第43张图片

然后点击输入框后弹框

xsschallenge1~13通关详细教程_第44张图片

level11

xsschallenge1~13通关详细教程_第45张图片

和level10相似,直接查看网页源代码

xsschallenge1~13通关详细教程_第46张图片

分别给t_link,t_history和t_sort赋值

xsschallenge1~13通关详细教程_第47张图片

发现还是只有t_sort有值

按照上一关的思路进行构造攻击代码

t_sort=" type="text" onclick = "alert(/xss/)

页面还是没有反应,查看源代码

xsschallenge1~13通关详细教程_第48张图片

发现提交给t_sort的参数被过滤了。

查看源码,既然t_sort不行,这里尝试使用t_ref参数。

xsschallenge1~13通关详细教程_第49张图片

t_ref中的value参数获取的是 s t r 33 , str33, str33str33变量获取的是 s t r 22 , str22, str22str22变量获取的是 s t r 11 , str11, str11str11变量获取的是HTTP_PEFERER参数。

修改Referer字段,在该字段构造我们的攻击代码

" type="text" onclick = "alert(/xss/)

xsschallenge1~13通关详细教程_第50张图片

点击输入框

xsschallenge1~13通关详细教程_第51张图片

弹框如下

xsschallenge1~13通关详细教程_第52张图片

level12

查看源代码

xsschallenge1~13通关详细教程_第53张图片

发现这次传递的是USER_AGENT参数

修改USER_AGENT字段,在该字段构造我们的攻击代码

" type="button" onclick = "alert(/xss/)

xsschallenge1~13通关详细教程_第54张图片

点击页面中的按钮,弹框如下

xsschallenge1~13通关详细教程_第55张图片

level13

查看源代码

xsschallenge1~13通关详细教程_第56张图片

发现这次传递的是COOKIE参数

修改COOKIE字段,在该字段构造我们的攻击代码

" type="button" onclick = "alert(/xss/)

xsschallenge1~13通关详细教程_第57张图片

点击页面中的输入框,弹框如下

xsschallenge1~13通关详细教程_第58张图片

你可能感兴趣的:(网络安全,xss)