xss-labs靶场(1-5)


前言

这是一个弹窗即胜利的靶场,并没有太多对xss的利用,主要就是学习应对各种存在xss漏洞的场景。这种靶场就存在一个显而易见的问题,直接前端随便改个标签就能过(onclick来了全杀了),当然了我们为了学习,还是要尊重一下题目的,顺便认识几个没见过的php)。

第一关

页面

啥都没有,看到URL里面get一个name,?name=试试,没问题直接过。

 源码

 没有任何过滤,直接输出。

第二关

页面

 有一个表单,看到URL里面get了一个keyword,就是从输入的这个表单里get。试试直接来

 发现输入的值被放在了标签里,那么我们构造标签闭合,让script独立出来,尝试输入">//,解决。

源码

 htmlspecialchars:将预定义的字符"<"和">"转化为html实体,也就是失去了原来的语法特性。

把读到的str放在标签里,没有其他问题,直接构造闭合即可。

 第三关

页面

有一个表单,和上一关很像,尝试一下上一关的">//,发现没有弹窗,看一眼标签:

发现尖括号和引号变成了冷冰冰的实体(bushi但queshishi),放弃闭合标签另起炉灶的想法,改成直接修改这个标签,加个onclick属性,构造闭合:' onclick='alert(1)

解决!

         

源码

 把str经过htmlspecialchars标签处理后输入到标签里,丧失了生机(,没有其他过滤。

     

第四关

页面

一个表单,惯例,尝试">

 发现尖括号被过滤掉了,尝试构造onclick:

 搞定!

源码

 str_replace的过滤区分大小写,与之相对应的有一个str_ireplace是不区分大小写的。过滤掉了尖括号,无其他过滤。

   

第五关

页面

惯例,来一个">

发现script被过滤了,尝试onclick:

发现on也被过滤了,那我们就采取第三种办法,构造href链接!输入">

点击按钮旁边的链接,通过。

 

源码

过滤了

       

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Back     此页面的语言为中文(简体)   翻译为        
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语