公司网站设计案例,成都网推公司,php抽奖网站源码,舟山新闻最新消息文章目录 XSS 挑战靶场通关level1level2level3level4level5level6level7level8level9level10level11level12level13 XSS 挑战靶场通关
level1
通过观察发现这个用户信息可以修改 那么我们直接输入攻击代码
scriptalert(/wuhu/)/script弹框如下#xff1a; … 文章目录 XSS 挑战靶场通关level1level2level3level4level5level6level7level8level9level10level11level12level13 XSS 挑战靶场通关
level1
通过观察发现这个用户信息可以修改 那么我们直接输入攻击代码
scriptalert(/wuhu/)/script弹框如下 level2
发现一个输入框输入攻击代码观察页面反应 页面将我们的攻击代码进行了打印。
查看网页源代码发现将我们输入的尖括号进行了转义。 源码 htmlspecialchars(string) 把预定义的字符 “” 小于、 “” 大于、 、‘’、“” 转换为HTML实体防止浏览器将其作为HTML元素。 impossible级别的代码先判断name是否为空不为空的话然后验证其token来防范CSRF攻击。然后再用htmlspecialchars函数将name中的预定义字符 “” 小于和 “” 大于转换成html实体这样就防止了填入标签。 预定义的字符如下 成为 amp成为 quot成为 #039成为 lt成为 gt这里我们可以闭合该value参数添加一个onclick属性 onclick 是一个 HTML 属性用于在用户点击或触摸指定的 HTML 元素时触发相应的 JavaScript 代码。 那么我们可以构造其他攻击代码 οnclickalert(99)闭合input标签将语句独立出来
scriptalert(/xss/)/scriptlevel3
查看网页源代码发现该闭合方式是单引号 构造我们的攻击代码 onclickalert(/wuhu/) level4
查看页面源代码 发现闭合方式是双引号闭合。
构造我们的攻击代码 onclickalert(/wuhu/)level5
注入我们的攻击代码 οnclickalert(/wuhu/)页面没有反应 查看页面源代码 这里将我们输入的事件onclick的on之间添加了下划线。
试一下script标签是否可以
scriptalert(/wuhu/)/script同样页面没有弹框查看页面源代码发现script标签也被添加了下划线。 这里就无法使用事件了可以使用伪协议闭合方式为双引号。
构造攻击代码如下
先将input标签闭合然后构造超链接标签 a hrefjavascript:alert(/xss/)芜湖/a成功弹框 level6
先输入攻击代码查看页面响应
scriptalert(/wuhu/)/script查看页面源码发现script标签被添加了下划线。 使用响应事件来构造攻击代码
a href # onclick alert(/wuhu/)click me!/a同样页面没有响应查看页面源代码发现响应事件被添加了下划线。 使用伪协议来构造攻击代码
a href javascript:alert(/xss/)click me!/a同样页面没有响应查看页面源代码发现href被添加了下划线。 采用大小写绕过的方式构造攻击代码 SCRIPTalert(/wuhu/)/SCRIPTlevel7
先输入攻击代码查看页面响应
scriptalert(/wuhu/)/script页面没有响应查看页面源代码发现我们的script标签被替换为空了。 查看源码 源码中将scriptonsrcdatahref标签及属性转换为空。这里可以先使input便签进行闭合再双写script进行绕过。
构造攻击代码 scrscriptiptalert(/xss/)/scrscriptiptoonnclickalert(/wuhu/)level8
先输入攻击代码查看页面响应
scriptalert(/wuhu/)/script页面没有响应查看页面源代码 发现将我们构造的攻击代码放到了a标签中并且给script标签添加了下划线。
查看源码 这里将scriptonsrcdatahref“进行了过滤并且在尝试的时候关键字双写不管用。那么这里直接选择不去闭合标签直接使用伪协议但是发现javascript也被拆开了。这里可以对伪协议中的字母进行转码。
构造攻击代码
javasc#x72;#x69pt:alert(/xss/)level9
发现这关和上一关中的页面差不多使用上一关构造的攻击代码
javasc#x72;#x69pt:alert(/xss/)页面没有任何响应查看页面源代码 查看源码 先写一个正确的链接然后点击友情链接页面可以正常跳转 查看页面源代码这里显示出正常了链接地址。 源代码 这里查看我们注入的代码中是否有http://如果包含则执行else中的语句将我们构造的攻击代码输入到href中如果不包含则在a标签中的href显示指定字符串。 strpos — 查找字符串首次出现的位置。 构造攻击d代码将http://加入到alert的()中。
javasc#x72;#x69pt:alert(http://)level10
先输入攻击代码查看页面响应
http://127.0.0.1/xsschallenge/level10.php?keywordscriptalert(/wuhu/)/script页面没有任何反应查看网页源代码发现了三个隐藏的输入框参数分别为t_linkt_historyt_sort。 尝试给这三个参数赋值 发现只有t_sort有值 查看源代码 这里对左右尖括号进行了过滤
那么我们采用给t_sort赋值的方式注入攻击代码
t_sort typetext onclick alert(/xss/)查看页面源代码将之前隐藏的输入框显示出来并且添加了一个数据鼠标点击事件。 然后点击输入框后弹框 level11 和level10相似直接查看网页源代码 分别给t_linkt_history和t_sort赋值 发现还是只有t_sort有值
按照上一关的思路进行构造攻击代码
t_sort typetext onclick alert(/xss/)页面还是没有反应查看源代码 发现提交给t_sort的参数被过滤了。
查看源码既然t_sort不行这里尝试使用t_ref参数。 t_ref中的value参数获取的是 s t r 33 str33 str33str33变量获取的是 s t r 22 str22 str22str22变量获取的是 s t r 11 str11 str11str11变量获取的是HTTP_PEFERER参数。
修改Referer字段在该字段构造我们的攻击代码 typetext onclick alert(/xss/)点击输入框 弹框如下 level12
查看源代码 发现这次传递的是USER_AGENT参数
修改USER_AGENT字段在该字段构造我们的攻击代码 typebutton onclick alert(/xss/)点击页面中的按钮弹框如下 level13
查看源代码 发现这次传递的是COOKIE参数
修改COOKIE字段在该字段构造我们的攻击代码 typebutton onclick alert(/xss/)点击页面中的输入框弹框如下